Closed xotmatrix closed 6 months ago
TAPEOUT
accesses are patched out because they crash the IIc. I will fix the keyboard issue.
My intuition was that it was done to appease the Apple //c because it has reserved $C02x
but I also played Wings of Fury on the //c in my youth, so it wasn't quite adding up. I didn't find any information at first but looking at the //c Plus Preliminary Reference just now, it sounds like ROM may be banked by it. Any additional insight is welcome.
Choplifter used it and it definitely crashed on the IIc. I probably assumed that WoF would be affected similarly, and patched it badly.
yes, that was exactly what happened. Fixed in a362597c09f5059a69d67b84c9fc9b522ecfed9a
I was looking into the Wings of Fury keyboard code for pointless reddit reasons and stumbled onto something very strange. The keyboard handling in this version fails to detect keypresses a high percentage of the time because the keyboard strobe is regularly cleared shortly before the keyboard is read. The problem is confirmed to affect real hardware.
I've looked at several other versions and this keyboard strobe clearing code (which is in many places) appears to have been disabled by a patch with seemingly inert code ... or the Total Replay version has patched out writing to
TAPEOUT
for unknown reasons. Working versions include the Woz-a-Day (so the differences appear to be official), as well as qkumba'swings of fury PRODOS (san inc crack).po
and the BB and Mr. Slick cracks. I have not yet seen a version that matches what's in Total Replay.I do not claim what follows is an exhaustive list of differences. Once the game reached a breakpoint at
$8E
, I searched forSTA $C010 KBDSTRB
andSTA $C020 TAPEOUT
. These instructions overlap at many addresses. The Total Replay version doesn't seem to ever touchTAPEOUT
but the other versions often do instead of touchingKBDSTRB
. I noticed some other differences in keyboard adjacent code starting at01/ACC4
so it does seem like the differences are more extensive than just changing some addresses. I did not spend a lot of time trying to understand the code.Problematic:
Working:
I did not perform this exact search on the Woz-a-Day version because my emulator does not yet support this disk format. However, using Crossrunner, I did spot-check all of the
STA $C020
matches found in the cracked versions and they were present in the woz.I don't know what's going on. I feel like I am missing some important information or context so I have not attempted to fix anything.