itch.io is community of indie game creators and players

Devlogs

Converting my game to the MAX Machine / Ultimax cartridge format

Wave Hero
A downloadable game

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:

  • Re-arrange the memory (move code, data and graphics to the 8KB ROM bank at $e000, and align it properly)
  • Replace some self-modifying code (use additional variables in zero page instead)
  • Add some initialization code for I/O (the MAX Machine has no ROMs, and thus no chip initialization is done on reset)
  • Adjust the raster interrupt code (some code for dispatching IRQ routines is now located in zero page)

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.)

RAM usage (2 KB)

StartEndDescription
$0002$001bIRQ dispatch code (copied from ROM at startup)
$001c$0033Last and best distances
$0034$009cGame variables
$009d$00ffUnused
$0100$01ffCPU stack
$0200$02ffUnused
$0300$033fBlank sprite
$0340$03ffDynamic sprites (PWC driver and distance travelled)
$0400$07ffScreen and sprite pointers

ROM usage (8KB)

StartEndDescription
$e000$eb2eGame code
$eb2f$f023Game data
$f024$f8ffUnused (the game could certainly be enhanced!)
$f900$fbffSprite graphics
$fc00$ff9fCharacter graphics
$ffa0$fff9Unused
$fffa$fffbNMI vector
$fffc$fffdReset vector
$fffe$ffffIRQ vector

Files

  • WaveHero_Ultimax_v1.0.crt 8 kB
    Sep 03, 2022
  • WaveHero_Ultimax_v1.4.crt 8 kB
    10 days ago
Download Wave Hero
Read comments (8)