Making the game actually work on a MAX Machine
Back in September 2022, I converted Wave Hero to an 8KB cartridge image in the so-called Ultimax format, and wrote a devlog about it. The game worked as expected in the VICE emulator, using various model settings (MAX Machine, C64 NTSC and C64 PAL.)
Then, about a month ago, I read a comment to my devlog from kopsec. The game would not work on an actual MAX Machine, while a game I converted to the MAX one month later (Old Mine Hoist) worked just fine.
I made some adjusted versions of Wave Hero, which kopsec then tested on the MAX. Some of the adjustments were:
- Adding code to set different border colors during the start-up sequence, to try to determine whether the game just «froze» at a certain point
- Changing the order of some of the initialization code
- Removing a PAL/NTSC check
Unfortunately, none of the above made the game work, nor help in understanding what the problem might be.
I already knew that bit 5 in VIC register $D016, if set, will supposedly stop the VIC chip on a MAX Machine, while it will have no effect on any of the C64 models. But I had already verified that the game's code did not touch this bit.
Or so I thought. It turns out that due to some raster interrupts firing while the game's title screen is being set up, a variable which had not been initialized yet could actually cause bit 5 in register $D016 to be set, resulting in no video output from the VIC chip on a MAX.
The fix was therefore to ensure that the variable in question is initialized very early in the start-up sequence. The file WaveHero_Ultimax_v1.4.crt is the fixed version of the game.
A huge thanks to kopsec for all help with testing the various adjusted versions on an actual MAX Machine!
Some more information about the «mysterious» bit 5 is available here:
- A discussion thread on CSDB
- A discussion thread on Lemon64
Files
Get Wave Hero
Wave Hero
How far can you go on your personal watercraft, without hitting any rocks or reefs?
Status | Released |
Author | Geir Straume |
Genre | Action |
Tags | 8-Bit, Commodore 64 |
Languages | English |
Comments
Log in with itch.io to leave a comment.
Hello Geir. I'm a Commodore MAX owner and recently I asked C64lover.com to make a cartridge with Wave Hero, so I could play this lovely game on my real machine. He produced a cartridge with version 1.4 of the game, which suppose to be the working one. Unfortunatelly it turned out that the game still doesn't work on MAX. I recorded a video, so you can see how it looks like. The game launches, but it doesn't react to fire button. I even did a test in BASIC to proove that the port and the joystick itself work, then I plug the cartridge in. As you can see - no reaction to fire. What can be also observerd - after ca. one minute the game freezes and after another half minute - some artifacts are popping up on the screen. Sometimes it happens that the background becomes orange/red after another minute, but I couldn't reproduce it while recording.
The cartridge itself is fine, because I tested in on C64 and the game works great on it.
Here is the link to the video I made:
Thanks for creating the video! The screen corruption/artifacts seen here might be the same problem as described in this discussion thread in the Lemon64 forum. The pin-outs for a MAX Machine cartridge differ slightly from a standard C64 cartridge (a loopback between two pins is required).
I assume that you have tried connecting the joystick to both ports? This game expects the joystick to be in port two, but I'm actually not sure if that is the left or the right port on the MAX.
Hi Geir. I own you an update. So it turned out that pins 9 and 10 need to be soldered together to make game work. I did it and now it works fine and other problems are gone as well.
Here is a short video:
Thanks for this simple, but very nice and addictive game :)That's great news! And thank you for the new video - it's very cool to see the game being played on an actual MAX Machine!