Posted September 03, 2022 by Geir Straume
After watching a fun and interesting video by 8-Bit Show And Tell about the Commodore MAX Machine, I got inspired to convert one of my own games to the cartridge format used by that system. Also, the Commodore 64 has a memory configuration called Ultimax which is compatible with MAX cartridges.
My game Wave Hero was an obvious candidate for such a cartridge conversion, because the program size is small (less than 6KB uncompressed), and the game doesn't use a lot of RAM when running. (The MAX Machine only has 2KB of RAM available, in addition to color RAM.)
Here's basically what I had to do to convert the game to the MAX Machine cartridge format:
I don't have a MAX Machine or any EPROM programming hardware myself, so I'm unable to make and test an actual physical cartridge with the game. However, the cartridge image file (CRT) seems to work as expected in the VICE emulator, using various model settings (MAX Machine, C64 NTSC and C64 PAL.)
Start | End | Description |
---|---|---|
$0002 | $001b | IRQ dispatch code (copied from ROM at startup) |
$001c | $0033 | Last and best distances |
$0034 | $009c | Game variables |
$009d | $00ff | Unused |
$0100 | $01ff | CPU stack |
$0200 | $02ff | Unused |
$0300 | $033f | Blank sprite |
$0340 | $03ff | Dynamic sprites (PWC driver and distance travelled) |
$0400 | $07ff | Screen and sprite pointers |
Start | End | Description |
---|---|---|
$e000 | $eb2e | Game code |
$eb2f | $f023 | Game data |
$f024 | $f8ff | Unused (the game could certainly be enhanced!) |
$f900 | $fbff | Sprite graphics |
$fc00 | $ff9f | Character graphics |
$ffa0 | $fff9 | Unused |
$fffa | $fffb | NMI vector |
$fffc | $fffd | Reset vector |
$fffe | $ffff | IRQ vector |