I'm looking for Game Genie codes for Super Probotector The Alien Wars Pal Version for Super Nintendo. Infinite health for both side scrolling levels and overhead levels.
Announcement
Collapse
No announcement yet.
Request Super Probotector Codes
Collapse
X
-
I hope the Infinite Lives or Invincibility codes are what you are after, I didn't see a health meter in this game.Code:Infinite Lives - Side View Levels (both players) CBB8-0461 Infinite Lives - Top View Levels (both players) CBBB-6F0B Player 1 Invincible (Side View Levels) 89C1-D469 + 89BD-0761 Credit: Converted Hackwiz's Contra III code to Super Probotector Player 2 Invincible (Side View Levels) 89CB-D709 + 89B8-0DD1 Credit: Converted Hackwiz's Contra III code to Super Probotector Both Players Invincible (Top View Levels) 8961-6F08 Credit: Hackwiz's Contra III code, works without conversion
I'd never heard of Super Probotector, however through a quick Google search I found out Super Probotector is the same game as Contra III, just with some GFX changes for European release by the looks of it. As such, most of the game code is the same, however there are differences in the ROM addresses meaning most codes will need conversion.
If you look at the GG codes for Contra III (USA), most of them should be able to be converted to Super Probotector. In some cases they may not need conversion at all. The RAW codes should work without needing any conversion as both games appear to use the same RAM addresses for everything.
As a note for the more adventurous, some of the GG codes can be converted with a simple offset change.
If the decoded version starts with 01xxxx you should be able to convert it to Super Probotector by subtracting the hex value 1D7 from the base address. This can be done with the Windows calculator.
As an example the Game Genie code 89B3-6F01 decodes to 019AE5:B5. If you take the address 9AE5, subtract 1D7 (using Windows calculator, click View and switch to Programmer mode) you end up with 990E. Put the code back together as 01990E:B5, then use an online GG code converter and the result is 89BD-0761. That code should then work on Probotector.
Anyways I just wanted to mention that in case you're handy with hex values and encoding/decoding GG codes. If you want any other codes converted I am happy to help, just let me know.
Have fun!
Code Development Notes:
Spoiler Alert! Click to view...
Infinite Lives - Side View Levels (both players)
CBB8-0461
Infinite Lives - Top View Levels (both players)
CBBB-6F0B
Code:After doing some RAM searches, I found that $7E:1F8A holds 1P number of lives, and $7E:1FCA holds 2P number of lives. It turns out these are the same RAM addresses that Contra III uses, so that's convenient. 1P: $01/99BA DE 8A 1D DEC $1D8A,x[$05:1F8A] A:0000 X:0200 Y:0000 P:envmxdiZC $01/99BD F0 03 BEQ $03 [$99C2] A:0000 X:0200 Y:0000 P:envmxdiZC 2P: $01/99BA DE 8A 1D DEC $1D8A,x[$05:1FCA] A:0000 X:0240 Y:0000 P:envmxdiZC $01/99BD F0 03 BEQ $03 [$99C2] A:0000 X:0240 Y:0000 P:envmxdizC The same routine runs for both players when a life is lost. Change DEC into LDA to prevent life counter from decrementing: 0199BA:A9 = CBB8-0461 (Infinite Lives - Side View Levels) Top-view levels use a different routine, therefore need a different code: $02/9695 DE CA 10 DEC $10CA,x[$05:1F8A] A:0003 X:0EC0 Y:0000 P:eNvmxdizc $02/9698 10 03 BPL $03 [$969D] A:0003 X:0EC0 Y:0000 P:envmxdizc 029695:A9 = CBBB-6F0B (Infinite Lives - Top View Levels)
Player 1 Invincible (Side View Levels)
89C1-D469 + 89BD-0761
Player 2 Invincible (Side View Levels)
89CB-D709 + 89B8-0DD1
Code:Looking at Hackwiz's codes for Contra III the Alien Wars for conversion to Probotector: Contra III Versions: 89B3-6F01 89C0-6D09 decoded: 019AE5:B5 01A641:B5 Set execution BP for $01:A641: w/ Always invincible code enabled: $01/A641 B5 16 LDA $16,x [$00:0216] A:0001 X:0200 Y:0000 P:envmxdizC $01/A643 89 03 00 BIT #$0003 A:0003 X:0200 Y:0000 P:envmxdizC $01/A646 D0 05 BNE $05 [$A64D] A:0003 X:0200 Y:0000 P:envmxdizC $01/A64D A9 00 3A LDA #$3A00 A:0003 X:0200 Y:0000 P:envmxdizC $01/A650 22 CF A6 01 JSL $01A6CF[$01:A6CF] A:3A00 X:0200 Y:0000 P:envmxdizC $01/A6CF 95 02 STA $02,x [$00:0202] A:3A00 X:0200 Y:0000 P:envmxdizC w/o code #1 enabled: $01/A641 95 16 STA $16,x [$00:0216] A:0001 X:0200 Y:0000 P:envmxdizC $01/A643 89 03 00 BIT #$0003 A:0001 X:0200 Y:0000 P:envmxdizC $01/A646 D0 05 BNE $05 [$A64D] A:0001 X:0200 Y:0000 P:envmxdizC $01/A64D A9 00 3A LDA #$3A00 A:0001 X:0200 Y:0000 P:envmxdizC $01/A650 22 CF A6 01 JSL $01A6CF[$01:A6CF] A:3A00 X:0200 Y:0000 P:envmxdizC $01/A6CF 95 02 STA $02,x [$00:0202] A:3A00 X:0200 Y:0000 P:envmxdizC w/o code #2 enabled: $01/9AE5 95 16 STA $16,x [$00:0216] A:8000 X:0200 Y:00C8 P:eNvmxdizc $01/9AE7 9E 88 1D STZ $1D88,x[$05:1F88] A:8000 X:0200 Y:00C8 P:eNvmxdizc $01/9AEA 6B RTL A:8000 X:0200 Y:00C8 P:eNvmxdizc $01/A69E A5 BC LDA $BC [$00:00BC] A:8000 X:0200 Y:00C8 P:eNvmxdizc $01/A6A0 F0 0E BEQ $0E [$A6B0] A:0001 X:0200 Y:00C8 P:envmxdizc $01/A6A2 A9 00 60 LDA #$6000 A:0001 X:0200 Y:00C8 P:envmxdizc $01/A6A5 85 B8 STA $B8 [$00:00B8] A:6000 X:0200 Y:00C8 P:envmxdizc $01/A6A7 A9 00 61 LDA #$6100 A:6000 X:0200 Y:00C8 P:envmxdizc So both codes are preventing writes to address $7E0216 by changing STA to LDA. To find Probotector equivalent, set read a BP for $7E0216: $01/A46A 95 16 STA $16,x [$00:0216] A:0001 X:0200 Y:0000 P:envmxdizC $01/A46C 89 03 00 BIT #$0003 A:0001 X:0200 Y:0000 P:envmxdizC $01/A46F D0 05 BNE $05 [$A476] A:0001 X:0200 Y:0000 P:envmxdizC $01/A476 A9 00 3A LDA #$3A00 A:0001 X:0200 Y:0000 P:envmxdizC $01/A479 22 F8 A4 01 JSL $01A4F8[$01:A4F8] A:3A00 X:0200 Y:0000 P:envmxdizC $01/A4F8 95 02 STA $02,x [$00:0202] A:3A00 X:0200 Y:0000 P:envmxdizC $01/A4FA 22 5A C1 00 JSL $00C15A[$00:C15A] A:3A00 X:0200 Y:0000 P:envmxdizC 01A46A:B5 = 89C1-D469 (Player 1 Invincible - Side View Levels 1/2) 2nd code: $01/990E 95 16 STA $16,x [$00:0216] A:8000 X:0200 Y:00C8 P:eNvmxdizc $01/9910 9E 88 1D STZ $1D88,x[$05:1F88] A:8000 X:0200 Y:00C8 P:eNvmxdizc $01/9913 6B RTL A:8000 X:0200 Y:00C8 P:eNvmxdizc $01/A4C7 A5 BC LDA $BC [$00:00BC] A:8000 X:0200 Y:00C8 P:eNvmxdizc $01/A4C9 F0 0E BEQ $0E [$A4D9] A:0001 X:0200 Y:00C8 P:envmxdizc $01/A4CB A9 00 60 LDA #$6000 A:0001 X:0200 Y:00C8 P:envmxdizc $01/A4CE 85 B8 STA $B8 [$00:00B8] A:6000 X:0200 Y:00C8 P:envmxdizc $01/A4D0 A9 00 61 LDA #$6100 A:6000 X:0200 Y:00C8 P:envmxdizc 01990E:B5 = 89BD-0761 (Player 1 Invincible - Side View Levels 2/2) Subtract Probotector code address from Contra III code address to find offset: Code #1 offset: A641 - A46A = 1D7 Code #2 offset: 9AE5 - 990E = 1D7 So we can likely convert most codes by subtracting 0x1D7 from Contra III GG codes. Definitely not guaranteed, but makes a good shot in the dark for a first attempt. P2 Invincible - Side View Levels Contra III GG codes by Hackwiz: 01A674:B5 019B87:B5 Attempted conversion to Probotector by subtracting 0x1D7 from addresses: 01A49D:B5 = 89CB-D709 (Player 2 Invincible - Side View Levels 1/2) 0199B0:B5 = 89B8-0DD1 (Player 2 Invincible - Side View Levels 2/2) Tested and works great! :)
Code:Looking at Hackwiz's code for Contra III: 8961-6F08 decoded: 028E65:B5 Contra III disassembly: $02/8E65 95 16 STA $16,x $02/8E67 A9 02 00 LDA #$0002 $02/8E6A 29 02 00 AND #$0002 $02/8E6D 4A LSR A $02/8E6E 95 00 STA $00,x Probotector disassembly: $02/8E65 95 16 STA $16,x $02/8E67 A9 02 00 LDA #$0002 $02/8E6A 29 02 00 AND #$0002 $02/8E6D 4A LSR A $02/8E6E 95 00 STA $00,x Exact same in this area of ROM, so Hackwiz's code will work on Probotector.
"One man's garbage is another man-person's good un-garbage." -- Ricky from Trailer Park Boys
- 2 likes
Comment