Login
Back to forumSee the full topicGo to last reply

Posted By

Waz
on 2024-02-22
17:27:14
 Re: Rockman built-in cheat mode

Thanks for that info @MIK - really useful, and as @Ulysses777 says, a reset appears to work (which is what I did when testing, I did reset rather than RUN/STOP and reset.)

All it basically does is to place an RTS at the routine at $1E53 that checks so returns straight back from the subroutine called. That subroutine uses $7E and $7F in zero page as counters, $7E to do a count to $0C, and only then read the value of $7F to set the notedata offset from $14C4,X, which has 60 ($3C) bytes of notes in a table, which are set into $FF0F as needed and then with a small subroutine to set $FF11 also. Bear in mind on some memory maps I've read, those $7E and $7F zero page bytes can be temporary set for note and volume also.

If you never wanted to even go there, you could either fill $14C4-$14FF with zero (and add a RTS at $1E75 so that $FF11 isn't set either), or the JSR $1E53 is at $1CDF in memory, so you could replace those bytes with say NOPs instead.

It may be worth seeing if any of these methods work on the revision A board with the C16 and Plus4 compatible version, and should be compatible also with other releases, so you can use either of:

Zero bytes in ingame music data and RTS to stop $FF11 being set:
FOR A=0 TO 59:POKE 5316+A,0:NEXT:POKE 7797,96

Stop subroutine being called:
POKE 7391,234: POKE7392,234: POKE7393,234

These may be alternatives to try but don't have a C16 Rev A to test here.



Back to top


Copyright © Plus/4 World Team, 2001-2025. Support Plus/4 World on Patreon