Announcement

Collapse
No announcement yet.

Snake's Revenge NES (Request)

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Snake's Revenge NES (Request)

    Game genie invincibility and cannot be detected? That would be amazing, thanks for reading!

  • #2
    https://gamehacking.org/game/30882

    Hope to help you.
    Let's be together !!

    Comment


    • #3
      Code:
      Gyrocopter enemies don't notice you
      AVOEUESL
      
      No enemies when spotted by spotlight
      ATNAVGSZ
      
      Standing guards don't notice you
      NYUETAAO
      I managed to come up with a couple of codes to prevent being detected, they should help a lot. I only play-tested them on the first level though so hopefully they are good for other areas of the game too. Let me know if there are any issues with them!

      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

      Comment

      Working...
      X