I've had the intention of putting together a single-load PRG games collection for the Commodore 64 for a long time. Spending more time at home recently as a result of the COVID-19 pandemic has given me the impetus to finally make my idea a reality. And thus the OneLoad64 Games Collection is born.
The key objectives of this project are:
- Have single-load games that can be loaded up quickly in C64 emulators with a minimum of fuss.
- Make the loading experience feel a little more like using cartridge images.
The games have been dumped from the C64s memory using emulators and their built-in machine code monitors (I use both CCS64 and Vice for this task). The general process involves finding a games starting address and dumping memory right at the point the game is about to start. This allows a clean start of the game without any of the glitchiness associated with dumps or snapshots created just after the game has started running. I've written a tiny loader stub in 6502 assembly which utilises the technique of modifying the C64s jump vector table for auto-loading, which complements the ability of C64 emulators to inject them directly into the emulated C64s memory for fast loading. I have written a tool in C# which processes the memory dump and converts it into an executable PRG file.
Each entry includes the original image file (.TAP, .D64, .G64), the memory dump, an XML metadata file recording the dump specifics (e.g. initial memory bank and interrupt setup, patching notes etc), plus two PRG files:
- The first contains the tiny loader stub and is to be used with emulators. These are not intended for use on real hardware due to their size (they represent almost the full 64kb of memory). They may also not play nicely with other hardware such as cartridges due to their arbitrary modification of the system jump vector table.
- The second is a crunched self-extracting version which can be used on real hardware, using floppies or newer storage solutions such as the EasyFlash cartridge, SD2IEC or the 1541 Ultimate. These are created with the fantastic Exomizer compression tool which adds an additional short decrunching step when loading and are denoted by the trailing "-[ex]" in their filename.
Ещё видео!