Game genie invincibility and cannot be detected? That would be amazing, thanks for reading!
Announcement
Collapse
No announcement yet.
Snake's Revenge NES (Request)
Collapse
X
-
Code:Gyrocopter enemies don't notice you AVOEUESL No enemies when spotted by spotlight ATNAVGSZ Standing guards don't notice you NYUETAAO
The Infinite Energy code (SXKVKASA) from the DB worked for me, at least for the first level. Are there areas/levels where it doesn't work? VisitntX also posted an Invincibility code (SZEVEPSA) which is listed a bit further down on the DB.
Cheers!
Code Development Notes:
Spoiler Alert! Click to view...
Gyrocopter enemies don't notice you
AVOEUESL
Code:To find this routine, I watched RAM in slow-mo and noticed $5B-onward gets set to new values when enemies are alerted. The stack indicated a return to $ACFC: 01:8CD6:B9 17 8D LDA $8D17,Y @ $8D18 = #$84 01:8CD9:05 5B ORA $005B = #$01 >01:8CDB:85 5B STA $005B = #$01 .... (tracing back to return address) 01:ACF9:20 9B 88 JSR $889B >01:ACFC:BD 84 04 LDA $0484,X @ $048B = #$7D I tried a few things and one was to try canceling the routine at $889B with an RTS. Lucky guess! Now the copters won't spot you. They will however be alerted if you bump into them. 889B:60:BD = AVOEUESL
No enemies when spotted by spotlight
ATNAVGSZ
Code:Again, I set a write breakpoint on $5B and triggered a spotlight. Then followed the code backward: 01:8C76:A5 5B LDA $005B = #$01 01:8C78:09 04 ORA #$04 >01:8C7A:85 5B STA $005B = #$01 01:8C7C:A9 50 LDA #$50 01:8C7E:85 5E STA $005E = #$78 01:8C80:AD E3 05 LDA $05E3 = #$23 01:8C83:C9 41 CMP #$41 01:8C85:F0 03 BEQ $8C8A 01:8C87:4C 03 8D JMP $8D03 The return address on the stack was $862F: 01:8629:20 1B 8D JSR $8D1B 01:862C:20 76 8C JSR $8C76 >01:862F:4C 18 8A JMP $8A18 So I tried cancelling the routine at $8C76 with an RTS, and enemies no longer spawn. Awesome! :) 8C76:60:A5 = ATNAVGSZ
Standing guards don't notice you
NYUETAAO
Code:Again I set a write BP for $5B. This particular routine runs when the guards spot you: 01:80CF:A5 5B LDA $005B = #$85 01:80D1:29 7F AND #$7F >01:80D3:85 5B STA $005B = #$85 01:80D5:4C 18 8A JMP $8A18 Following the return address on the stack, we go back to $D4ED: 07:D4E1:20 2C C4 JSR $C42C 07:D4E4:20 27 A1 JSR $A127 07:D4E7:20 34 C4 JSR $C434 07:D4EA:20 30 80 JSR $8030 >07:D4ED:A5 5B LDA $005B = #$05 07:D4EF:29 0E AND #$0E 07:D4F1:F0 08 BEQ $D4FB I tried cancelling the routine at $8030 with an RTS but it caused other issues. So looking further up the routine at $8030, the value at $55 is compared to $10, then there is a JSR $8001 that sets the enemies in motion. 01:803B:A5 55 LDA $0055 = #$0D 01:803D:C9 10 CMP #$10 01:803F:F0 03 BEQ $8044 01:8041:20 01 80 JSR $8001 01:8044:A5 5B LDA $005B = #$01 01:8046:29 80 AND #$80 01:8048:D0 7B BNE $80C5 01:804A:A5 49 LDA $0049 = #$00 I tried multiple approaches to this one, the most effective way of bypassing it was to change the compare value at $803D to something else. 803E:FF:10 = NYUETAAO
"One man's garbage is another man-person's good un-garbage." -- Ricky from Trailer Park Boys
- 2 likes
Comment
Comment