AND, OF COURSE, it was my own buggy code all along. :roll:I have to run pretty quick, so I'll fill in the details later, but basically I committed the classic boneheaded ASM mistake: I forgot a '#' in front of a constant:
lda GameFlags ora PLAYERCONTROL_BIT|SCROLLPF_BIT sta GameFlags
Can't believe it.
Well, mystery solved anyway.Will post fixed binary and source later.
EDIT: Fixed source and binary attached. RR20060301.zip
And a big thanks to Eckhard to sending me his modified version of z26 (that forced undefined bits high), seeing the problem in an emulator made it possible for me to track the problem down through the z26 log files, where I saw that the reason for the weird behavior was due to the game flags somehow becoming corrupted. It was a bit tedious, but it wasn't hard, ultimately, to track down exactly where they became corrupted; it was code that looked like this:
lda bf ora CXP1FB sta bf
Well, this will help me to be humble, anyway.