Although the cover has the text "C16" and "Plus/4", the game appears to be C16 only. To be more precise, it may or may not run on a Plus/4 or a 64K expanded C16, depending on a "random" memory location.
The relevant game code is at $185B:
. 185B AD 1D FF LDA $FF1D . 185E 0D 04 1C ORA $DC04 ; ??? . 1861 29 3F AND #$3F . 1863 AA TAX . 1864 E8 INX . 1865 E0 26 CPX #$26 . 1867 B0 F2 BCS $185B
This is an oddly written loop that checks the current vertical scan position. The baffling thing is ORing that value with the memory location $DC04. The game never writes here (being a C16 game, the code only reaches $3FFF). On a C16, due to the 16K segments, this memory location is mapped to $1C04. That byte happens to contain an RTS opcode ($60). This is once again very odd (and looks like a bug).
What the above means is: that the game will work on a C16 (because in a roundabout way, it will always read $60), but on a Plus/4 or a 64K expanded C16, it may or may not work depending on what byte is found on the uninitialized location $DC04.
Since the above code is odd and does not make sense, we verified our TAP files to make sure it's not a damaged TAP. It appears that it isn't, and the same "buggy" code is also found in the CSM crack, which is from 1990. Therefore we can conclude that the original game contains that bug.
The CSM crack (which is 64K only) happens to write $00 to the memory location $DC04, which means this crack will always work. This likely happened by fluke.
The 16K PRG file version we have on this site has that one byte corrected, so the game will run correctly on all machines as intended. |