First of all, this game has in-game ROM check. So you need to set "skip rom check" then don't turn off.
In the database based on 0.259, "invincibility" is ROM code. It will cause the game freeze.
sranger.xml
Code: Select all
<!-- Super Ranger (v2.0) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@47E9 = 00</action> <!-- enemy -->
<action>maincpu.mb@4ACF = 18</action> <!-- firearms -->
</script>
<script state="off">
<action>maincpu.mb@47E9 = 02</action>
<action>maincpu.mb@4ACF = 28</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<!-- <action>maincpu.mb@2FF8 = C9</action> // action speed up but side effect you can shoot in jumping -->
<action>maincpu.mb@32FB = 00</action> <!-- set fire flag -->
<action>maincpu.mb@40C7 = 00</action> <!-- recover ammo -->
</script>
<script state="off">
<!-- <action>maincpu.mb@2FF8 = C8</action> -->
<action>maincpu.mb@32FB = 04</action>
<action>maincpu.mb@40C7 = D8</action>
</script>
</cheat>
<cheat desc="multiple jump">
<script state="on">
<action>maincpu.mw@02F47 = B600 </action> <!-- vertical jump -->
<action>maincpu.md@030A1 = FEB605CD </action> <!-- left/right jump -->
<action>maincpu.mq@3F600 = C9023E2FD4C3023E</action>
<!--
B600 | 3E 02 : ld a,$02 // vertical jump
B602 | C3 D4 2F : jp $2FD4
B605 | 3E 02 : ld a,$02 // left/right jump
B607 | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.mw@02F47 = 2FD4 </action>
<action>maincpu.md@030A1 = FE007EDD </action>
<action>maincpu.mq@3F600 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="timer speed">
<parameter>
<item value="0xff">01 (slow)</item>
<item value="0x7f">02 </item>
<item value="0x3f">03 </item>
<item value="0x1f">04 </item>
<item value="0x00">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@378D = param</action>
</script>
<script state="off">
<action>maincpu.mb@378D = 3F</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- you can't stop voice by sound stop button -->
<comment>set "skip rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mq@00807 = B680C3C00232163E</action>
<action>maincpu.mq@2B680 = 77BEC0023AC90121</action>
<action>maincpu.mq@2B688 = FE350120FBFE2BC8</action>
<action>maincpu.mq@2B690 = 0420FDFE340120F7</action>
<action>maincpu.mq@2B698 = 0520FEFE0618F03E</action>
<action>maincpu.mq@2B6A0 = 20EFFEC97786103E</action>
<action>maincpu.mq@2B6A8 = 3EC0DFFE05187E03</action>
<action>maincpu.mq@2B6B0 = FFFFFFC9C8103244</action>
<!--
0807 | 3E 16 : ld a,$16 // set bank
0809 | 32 02 C0 : ld ($C002),a
080C | C3 80 B6 : jp $B680
===============================
B680 | 21 01 C9 : ld hl,$C901 // temporary input address
B683 | 3A 02 C0 : ld a,($C002) // read input
B686 | BE : cp (hl)
B687 | 77 : ld (hl),a
B688 | C8 : ret z
B689 | 2B : dec hl // sound code address ($c901)
B68A | FE FB : cp $FB
B68C | 20 01 : jr nz,$B68F
B68E | 35 : dec (hl) // decrease code -01
B68F | FE F7 : cp $F7
B691 | 20 01 : jr nz,$B694
B693 | 34 : inc (hl) // increase code +01
B694 | FE FD : cp $FD
B696 | 20 04 : jr nz,$B69C
B698 | 3E F0 : ld a,$F0 // decrease code -10
B69A | 18 06 : jr $B6A2
B69C | FE FE : cp $FE
B69E | 20 05 : jr nz,$B6A5
B6A0 | 3E 10 : ld a,$10 // increase code +10
B6A2 | 86 : add a,(hl)
B6A3 | 77 : ld (hl),a
B6A4 | C9 : ret
B6A5 | FE EF : cp $EF
B6A7 | 20 03 : jr nz,$B6AC
B6A9 | 7E : ld a,(hl) // play sound
B6AA | 18 05 : jr $B6B1
B6AC | FE DF : cp $DF
B6AE | C0 : ret nz
B6AF | 3E 44 : ld a,$44 // stop sound
B6B1 | 32 10 C8 : ld ($C810),a // send sound code
B6B4 | C9 : ret
-->
</script>
<script state="run">
<output format="----- super ranger sound test mode -----" line="10" align="center" />
<output format="left : decrease code -01" line="11" align="center" />
<output format="right : increase code +01" line="12" align="center" />
<output format="down : decrease code -10" line="13" align="center" />
<output format="up : increase code +10" line="14" align="center" />
<output format="button 1 : play sound" line="15" align="center" />
<output format="button 2 : stop sound" line="16" align="center" />
<output format="----------------------------" line="17" align="center" />
<output format="<< sound code %02X >>" line="19" align="center" >
<argument>maincpu.pb@C900</argument>
</output>
</script>
<script state="off">
<action>maincpu.mq@00807 = 002208112138E4CD</action>
<action>maincpu.mq@2B680 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2B688 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2B690 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2B698 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2B6A0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2B6A8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2B6B0 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip rom check">
<script state="on">
<action>maincpu.mw@0325 = 078C</action> <!-- boot -->
<action>maincpu.mb@0A7C = C9 </action> <!-- ingame -->
<action>maincpu.mb@1537 = C9 </action> <!-- ingame -->
<action>maincpu.mb@2F92 = C9 </action> <!-- ingame -->
<action>maincpu.mb@356A = C9 </action> <!-- ingame -->
<action>maincpu.mb@36ED = C9 </action> <!-- ingame -->
<action>maincpu.mb@3F4D = C9 </action> <!-- ingame -->
<action>maincpu.mb@438E = C9 </action> <!-- ingame -->
<action>maincpu.mb@6158 = C9 </action> <!-- ingame -->
<action>maincpu.mb@62DB = C9 </action> <!-- ingame -->
<action>maincpu.mb@6B3B = C9 </action> <!-- ingame -->
<action>maincpu.mb@6F7C = C9 </action> <!-- ingame -->
</script>
<script state="off">
<action>maincpu.mw@0325 = 02D6</action>
<action>maincpu.mb@0A7C = C0 </action>
<action>maincpu.mb@1537 = C0 </action>
<action>maincpu.mb@2F92 = C0 </action>
<action>maincpu.mb@356A = C0 </action>
<action>maincpu.mb@36ED = C0 </action>
<action>maincpu.mb@3F4D = C0 </action>
<action>maincpu.mb@438E = C0 </action>
<action>maincpu.mb@6158 = C0 </action>
<action>maincpu.mb@62DB = C0 </action>
<action>maincpu.mb@6B3B = C0 </action>
<action>maincpu.mb@6F7C = C0 </action>
</script>
</cheat>
</mamecheat>
rranger.xml
Code: Select all
<!-- Rough Ranger (v2.0) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@47E9 = 00</action> <!-- enemy -->
<action>maincpu.mb@4ACF = 18</action> <!-- firearms -->
</script>
<script state="off">
<action>maincpu.mb@47E9 = 02</action>
<action>maincpu.mb@4ACF = 28</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<!-- <action>maincpu.mb@2FF8 = C9</action> // action speed up but side effect you can shoot in jumping -->
<action>maincpu.mb@32FB = 00</action> <!-- set fire flag -->
<action>maincpu.mb@40C7 = 00</action> <!-- recover ammo -->
</script>
<script state="off">
<!-- <action>maincpu.mb@2FF8 = C8</action> -->
<action>maincpu.mb@32FB = 04</action>
<action>maincpu.mb@40C7 = D8</action>
</script>
</cheat>
<cheat desc="multiple jump">
<script state="on">
<action>maincpu.mw@02F47 = B600 </action> <!-- vertical jump -->
<action>maincpu.md@030A1 = FEB605CD </action> <!-- left/right jump -->
<action>maincpu.mq@3F600 = C9023E2FD4C3023E</action>
<!--
B600 | 3E 02 : ld a,$02 // vertical jump
B602 | C3 D4 2F : jp $2FD4
B605 | 3E 02 : ld a,$02 // left/right jump
B607 | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.mw@02F47 = 2FD4 </action>
<action>maincpu.md@030A1 = FE007EDD </action>
<action>maincpu.mq@3F600 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="timer speed">
<parameter>
<item value="0xff">01 (slow)</item>
<item value="0x7f">02 </item>
<item value="0x3f">03 </item>
<item value="0x1f">04 </item>
<item value="0x00">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@378D = param</action>
</script>
<script state="off">
<action>maincpu.mb@378D = 3F</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- you can't stop voice by sound stop button -->
<comment>set "skip rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mq@00807 = B680C3C00232163E</action>
<action>maincpu.mq@2B680 = 77BEC0023AC90121</action>
<action>maincpu.mq@2B688 = FE350120FBFE2BC8</action>
<action>maincpu.mq@2B690 = 0420FDFE340120F7</action>
<action>maincpu.mq@2B698 = 0520FEFE0618F03E</action>
<action>maincpu.mq@2B6A0 = 20EFFEC97786103E</action>
<action>maincpu.mq@2B6A8 = 3EC0DFFE05187E03</action>
<action>maincpu.mq@2B6B0 = FFFFFFC9C8103244</action>
<!--
0807 | 3E 16 : ld a,$16 // set bank
0809 | 32 02 C0 : ld ($C002),a
080C | C3 80 B6 : jp $B680
===============================
B680 | 21 01 C9 : ld hl,$C901 // temporary input address
B683 | 3A 02 C0 : ld a,($C002) // read input
B686 | BE : cp (hl)
B687 | 77 : ld (hl),a
B688 | C8 : ret z
B689 | 2B : dec hl // sound code address ($c901)
B68A | FE FB : cp $FB
B68C | 20 01 : jr nz,$B68F
B68E | 35 : dec (hl) // decrease code -01
B68F | FE F7 : cp $F7
B691 | 20 01 : jr nz,$B694
B693 | 34 : inc (hl) // increase code +01
B694 | FE FD : cp $FD
B696 | 20 04 : jr nz,$B69C
B698 | 3E F0 : ld a,$F0 // decrease code -10
B69A | 18 06 : jr $B6A2
B69C | FE FE : cp $FE
B69E | 20 05 : jr nz,$B6A5
B6A0 | 3E 10 : ld a,$10 // increase code +10
B6A2 | 86 : add a,(hl)
B6A3 | 77 : ld (hl),a
B6A4 | C9 : ret
B6A5 | FE EF : cp $EF
B6A7 | 20 03 : jr nz,$B6AC
B6A9 | 7E : ld a,(hl) // play sound
B6AA | 18 05 : jr $B6B1
B6AC | FE DF : cp $DF
B6AE | C0 : ret nz
B6AF | 3E 44 : ld a,$44 // stop sound
B6B1 | 32 10 C8 : ld ($C810),a // send sound code
B6B4 | C9 : ret
-->
</script>
<script state="run">
<output format="----- rough ranger sound test mode -----" line="10" align="center" />
<output format="left : decrease code -01" line="11" align="center" />
<output format="right : increase code +01" line="12" align="center" />
<output format="down : decrease code -10" line="13" align="center" />
<output format="up : increase code +10" line="14" align="center" />
<output format="button 1 : play sound" line="15" align="center" />
<output format="button 2 : stop sound" line="16" align="center" />
<output format="----------------------------" line="17" align="center" />
<output format="<< sound code %02X >>" line="19" align="center" >
<argument>maincpu.pb@C900</argument>
</output>
</script>
<script state="off">
<action>maincpu.mq@00807 = 002208112138E4CD</action>
<action>maincpu.mq@2B680 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2B688 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2B690 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2B698 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2B6A0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2B6A8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2B6B0 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip rom check">
<script state="on">
<action>maincpu.mw@0325 = 078C</action> <!-- boot -->
<action>maincpu.mb@0A7C = C9 </action> <!-- ingame -->
<action>maincpu.mb@1537 = C9 </action> <!-- ingame -->
<action>maincpu.mb@2F92 = C9 </action> <!-- ingame -->
<action>maincpu.mb@356A = C9 </action> <!-- ingame -->
<action>maincpu.mb@36ED = C9 </action> <!-- ingame -->
<action>maincpu.mb@3F4D = C9 </action> <!-- ingame -->
<action>maincpu.mb@438E = C9 </action> <!-- ingame -->
<action>maincpu.mb@6158 = C9 </action> <!-- ingame -->
<action>maincpu.mb@62DB = C9 </action> <!-- ingame -->
<action>maincpu.mb@6B3B = C9 </action> <!-- ingame -->
<action>maincpu.mb@6F7C = C9 </action> <!-- ingame -->
</script>
<script state="off">
<action>maincpu.mw@0325 = 032B</action>
<action>maincpu.mb@0A7C = C0 </action>
<action>maincpu.mb@1537 = C0 </action>
<action>maincpu.mb@2F92 = C0 </action>
<action>maincpu.mb@356A = C0 </action>
<action>maincpu.mb@36ED = C0 </action>
<action>maincpu.mb@3F4D = C0 </action>
<action>maincpu.mb@438E = C0 </action>
<action>maincpu.mb@6158 = C0 </action>
<action>maincpu.mb@62DB = C0 </action>
<action>maincpu.mb@6B3B = C0 </action>
<action>maincpu.mb@6F7C = C0 </action>
</script>
</cheat>
</mamecheat>
rrangerb.xml
Code: Select all
<!-- Rough Ranger (v2.0, bootleg) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@47E9 = 00</action> <!-- enemy -->
<action>maincpu.mb@4ACF = 18</action> <!-- firearms -->
</script>
<script state="off">
<action>maincpu.mb@47E9 = 02</action>
<action>maincpu.mb@4ACF = 28</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<!-- <action>maincpu.mb@2FF8 = C9</action> // action speed up but side effect you can shoot in jumping -->
<action>maincpu.mb@32FB = 00</action> <!-- set fire flag -->
<action>maincpu.mb@40C7 = 00</action> <!-- recover ammo -->
</script>
<script state="off">
<!-- <action>maincpu.mb@2FF8 = C8</action> -->
<action>maincpu.mb@32FB = 04</action>
<action>maincpu.mb@40C7 = D8</action>
</script>
</cheat>
<cheat desc="multiple jump">
<script state="on">
<action>maincpu.mw@02F47 = B600 </action> <!-- vertical jump -->
<action>maincpu.md@030A1 = FEB605CD </action> <!-- left/right jump -->
<action>maincpu.mq@3F600 = C9023E2FD4C3023E</action>
<!--
B600 | 3E 02 : ld a,$02 // vertical jump
B602 | C3 D4 2F : jp $2FD4
B605 | 3E 02 : ld a,$02 // left/right jump
B607 | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.mw@02F47 = 2FD4 </action>
<action>maincpu.md@030A1 = FE007EDD </action>
<action>maincpu.mq@3F600 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="timer speed">
<parameter>
<item value="0xff">01 (slow)</item>
<item value="0x7f">02 </item>
<item value="0x3f">03 </item>
<item value="0x1f">04 </item>
<item value="0x00">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@378D = param</action>
</script>
<script state="off">
<action>maincpu.mb@378D = 3F</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- you can't stop voice by sound stop button -->
<comment>set "skip rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mq@00807 = B680C3C00232163E</action>
<action>maincpu.mq@2B680 = 77BEC0023AC90121</action>
<action>maincpu.mq@2B688 = FE350120FBFE2BC8</action>
<action>maincpu.mq@2B690 = 0420FDFE340120F7</action>
<action>maincpu.mq@2B698 = 0520FEFE0618F03E</action>
<action>maincpu.mq@2B6A0 = 20EFFEC97786103E</action>
<action>maincpu.mq@2B6A8 = 3EC0DFFE05187E03</action>
<action>maincpu.mq@2B6B0 = FFFFFFC9C8103244</action>
<!--
0807 | 3E 16 : ld a,$16 // set bank
0809 | 32 02 C0 : ld ($C002),a
080C | C3 80 B6 : jp $B680
===============================
B680 | 21 01 C9 : ld hl,$C901 // temporary input address
B683 | 3A 02 C0 : ld a,($C002) // read input
B686 | BE : cp (hl)
B687 | 77 : ld (hl),a
B688 | C8 : ret z
B689 | 2B : dec hl // sound code address ($c901)
B68A | FE FB : cp $FB
B68C | 20 01 : jr nz,$B68F
B68E | 35 : dec (hl) // decrease code -01
B68F | FE F7 : cp $F7
B691 | 20 01 : jr nz,$B694
B693 | 34 : inc (hl) // increase code +01
B694 | FE FD : cp $FD
B696 | 20 04 : jr nz,$B69C
B698 | 3E F0 : ld a,$F0 // decrease code -10
B69A | 18 06 : jr $B6A2
B69C | FE FE : cp $FE
B69E | 20 05 : jr nz,$B6A5
B6A0 | 3E 10 : ld a,$10 // increase code +10
B6A2 | 86 : add a,(hl)
B6A3 | 77 : ld (hl),a
B6A4 | C9 : ret
B6A5 | FE EF : cp $EF
B6A7 | 20 03 : jr nz,$B6AC
B6A9 | 7E : ld a,(hl) // play sound
B6AA | 18 05 : jr $B6B1
B6AC | FE DF : cp $DF
B6AE | C0 : ret nz
B6AF | 3E 44 : ld a,$44 // stop sound
B6B1 | 32 10 C8 : ld ($C810),a // send sound code
B6B4 | C9 : ret
-->
</script>
<script state="run">
<output format="----- rough ranger sound test mode -----" line="10" align="center" />
<output format="left : decrease code -01" line="11" align="center" />
<output format="right : increase code +01" line="12" align="center" />
<output format="down : decrease code -10" line="13" align="center" />
<output format="up : increase code +10" line="14" align="center" />
<output format="button 1 : play sound" line="15" align="center" />
<output format="button 2 : stop sound" line="16" align="center" />
<output format="----------------------------" line="17" align="center" />
<output format="<< sound code %02X >>" line="19" align="center" >
<argument>maincpu.pb@C900</argument>
</output>
</script>
<script state="off">
<action>maincpu.mq@00807 = 002208112138E4CD</action>
<action>maincpu.mq@2B680 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2B688 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2B690 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2B698 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2B6A0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2B6A8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2B6B0 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip rom check">
<script state="on">
<action>maincpu.mw@0325 = 078C</action> <!-- boot -->
<action>maincpu.mb@0A7C = C9 </action> <!-- ingame -->
<action>maincpu.mb@1537 = C9 </action> <!-- ingame -->
<action>maincpu.mb@2F92 = C9 </action> <!-- ingame -->
<action>maincpu.mb@356A = C9 </action> <!-- ingame -->
<action>maincpu.mb@36ED = C9 </action> <!-- ingame -->
<action>maincpu.mb@3F4D = C9 </action> <!-- ingame -->
<action>maincpu.mb@438E = C9 </action> <!-- ingame -->
<action>maincpu.mb@6158 = C9 </action> <!-- ingame -->
<action>maincpu.mb@62DB = C9 </action> <!-- ingame -->
<action>maincpu.mb@6B3B = C9 </action> <!-- ingame -->
<action>maincpu.mb@6F7C = C9 </action> <!-- ingame -->
</script>
<script state="off">
<action>maincpu.mw@0325 = 032B</action>
<action>maincpu.mb@0A7C = C0 </action>
<action>maincpu.mb@1537 = C0 </action>
<action>maincpu.mb@2F92 = C0 </action>
<action>maincpu.mb@356A = C0 </action>
<action>maincpu.mb@36ED = C0 </action>
<action>maincpu.mb@3F4D = C0 </action>
<action>maincpu.mb@438E = C0 </action>
<action>maincpu.mb@6158 = C0 </action>
<action>maincpu.mb@62DB = C0 </action>
<action>maincpu.mb@6B3B = C0 </action>
<action>maincpu.mb@6F7C = C0 </action>
</script>
</cheat>
</mamecheat>
srangero.xml
Code: Select all
<!-- Super Ranger (older) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@4422 = 00</action> <!-- enemy -->
<action>maincpu.mb@4708 = 18</action> <!-- firearms -->
</script>
<script state="off">
<action>maincpu.mb@4422 = 02</action>
<action>maincpu.mb@4708 = 28</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<!-- <action>maincpu.mb@2C66 = C9</action> // action speed up but side effect you can shoot in jumping -->
<action>maincpu.mb@2F69 = 00</action> <!-- set fire flag -->
<action>maincpu.mb@3D06 = 00</action> <!-- recover ammo -->
</script>
<script state="off">
<!-- <action>maincpu.mb@2C66 = C8</action> -->
<action>maincpu.mb@2F69 = 04</action>
<action>maincpu.mb@3D06 = D8</action>
</script>
</cheat>
<cheat desc="multiple jump">
<script state="on">
<action>maincpu.mw@02BB5 = B600 </action> <!-- vertical jump -->
<action>maincpu.md@02D0F = FEB605CD </action> <!-- left/right jump -->
<action>maincpu.mq@3F600 = C9023E2C42C3023E</action>
<!--
B600 | 3E 02 : ld a,$02 // vertical jump
B602 | C3 42 2C : jp $2C42
B605 | 3E 02 : ld a,$02 // left/right jump
B607 | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.mw@02BB5 = 2C42 </action>
<action>maincpu.md@02D0F = FE007EDD </action>
<action>maincpu.mq@3F600 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="timer speed">
<parameter>
<item value="0xff">01 (slow)</item>
<item value="0x7f">02 </item>
<item value="0x3f">03 </item>
<item value="0x1f">04 </item>
<item value="0x00">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@33CC = param</action>
</script>
<script state="off">
<action>maincpu.mb@33CC = 3F</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- you can't stop voice by sound stop button -->
<comment>set "skip rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mq@0079C = B680C3C00232163E</action>
<action>maincpu.mq@2B680 = 77BEC0023AC90121</action>
<action>maincpu.mq@2B688 = FE350120FBFE2BC8</action>
<action>maincpu.mq@2B690 = 0420FDFE340120F7</action>
<action>maincpu.mq@2B698 = 0520FEFE0618F03E</action>
<action>maincpu.mq@2B6A0 = 20EFFEC97786103E</action>
<action>maincpu.mq@2B6A8 = 3EC0DFFE05187E03</action>
<action>maincpu.mq@2B6B0 = FFFFFFC9C8103244</action>
<!--
079C | 3E 16 : ld a,$16 // set bank
079E | 32 02 C0 : ld ($C002),a
07A1 | C3 80 B6 : jp $B680
===============================
B680 | 21 01 C9 : ld hl,$C901 // temporary input address
B683 | 3A 02 C0 : ld a,($C002) // read input
B686 | BE : cp (hl)
B687 | 77 : ld (hl),a
B688 | C8 : ret z
B689 | 2B : dec hl // sound code address ($c901)
B68A | FE FB : cp $FB
B68C | 20 01 : jr nz,$B68F
B68E | 35 : dec (hl) // decrease code -01
B68F | FE F7 : cp $F7
B691 | 20 01 : jr nz,$B694
B693 | 34 : inc (hl) // increase code +01
B694 | FE FD : cp $FD
B696 | 20 04 : jr nz,$B69C
B698 | 3E F0 : ld a,$F0 // decrease code -10
B69A | 18 06 : jr $B6A2
B69C | FE FE : cp $FE
B69E | 20 05 : jr nz,$B6A5
B6A0 | 3E 10 : ld a,$10 // increase code +10
B6A2 | 86 : add a,(hl)
B6A3 | 77 : ld (hl),a
B6A4 | C9 : ret
B6A5 | FE EF : cp $EF
B6A7 | 20 03 : jr nz,$B6AC
B6A9 | 7E : ld a,(hl) // play sound
B6AA | 18 05 : jr $B6B1
B6AC | FE DF : cp $DF
B6AE | C0 : ret nz
B6AF | 3E 44 : ld a,$44 // stop sound
B6B1 | 32 10 C8 : ld ($C810),a // send sound code
B6B4 | C9 : ret
-->
</script>
<script state="run">
<output format="----- super ranger sound test mode -----" line="10" align="center" />
<output format="left : decrease code -01" line="11" align="center" />
<output format="right : increase code +01" line="12" align="center" />
<output format="down : decrease code -10" line="13" align="center" />
<output format="up : increase code +10" line="14" align="center" />
<output format="button 1 : play sound" line="15" align="center" />
<output format="button 2 : stop sound" line="16" align="center" />
<output format="----------------------------" line="17" align="center" />
<output format="<< sound code %02X >>" line="19" align="center" >
<argument>maincpu.pb@C900</argument>
</output>
</script>
<script state="off">
<action>maincpu.mq@0079C = 77CBC8393A3523CD</action>
<action>maincpu.mq@2B680 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2B688 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2B690 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2B698 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2B6A0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2B6A8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2B6B0 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip rom check">
<script state="on">
<action> maincpu.mw@02D0 = 072E</action> <!-- boot -->
<action> maincpu.mb@0A16 = C9 </action> <!-- ingame -->
<action> maincpu.mb@12B8 = C9 </action> <!-- ingame -->
<action> maincpu.mb@2C00 = C9 </action> <!-- ingame -->
<action> maincpu.mb@31A9 = C9 </action> <!-- ingame -->
<action> maincpu.mb@332C = C9 </action> <!-- ingame -->
<action> maincpu.mb@3B8C = C9 </action> <!-- ingame -->
<action> maincpu.mb@3FC7 = C9 </action> <!-- ingame -->
<action> maincpu.mb@5392 = C9 </action> <!-- ingame -->
<action> maincpu.mb@5ABE = C9 </action> <!-- ingame -->
<action> maincpu.mb@631E = C9 </action> <!-- ingame -->
<action> maincpu.mb@6759 = C9 </action> <!-- ingame -->
<action> maincpu.mb@692E = C9 </action> <!-- ingame -->
<action> maincpu.mb@71E0 = C9 </action> <!-- ingame -->
<action> maincpu.mb@7A7E = C9 </action> <!-- ingame -->
<action>audiocpu.mb@010B = C0 </action> <!-- short wait -->
</script>
<script state="off">
<action> maincpu.mw@02D0 = 02D6</action>
<action> maincpu.mb@0A16 = C0 </action>
<action> maincpu.mb@12B8 = C0 </action>
<action> maincpu.mb@2C00 = C0 </action>
<action> maincpu.mb@31A9 = C0 </action>
<action> maincpu.mb@332C = C0 </action>
<action> maincpu.mb@3B8C = C0 </action>
<action> maincpu.mb@3FC7 = C0 </action>
<action> maincpu.mb@5392 = C0 </action>
<action> maincpu.mb@5ABE = C0 </action>
<action> maincpu.mb@631E = C0 </action>
<action> maincpu.mb@6759 = C0 </action>
<action> maincpu.mb@692E = C0 </action>
<action> maincpu.mb@71E0 = C0 </action>
<action> maincpu.mb@7A7E = C0 </action>
<action>audiocpu.mb@010B = 00 </action>
</script>
</cheat>
</mamecheat>
srangern.xml
Code: Select all
<!-- Super Ranger (older, NOVA license) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@4422 = 00</action> <!-- enemy -->
<action>maincpu.mb@4708 = 18</action> <!-- firearms -->
</script>
<script state="off">
<action>maincpu.mb@4422 = 02</action>
<action>maincpu.mb@4708 = 28</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<!-- <action>maincpu.mb@2C66 = C9</action> // action speed up but side effect you can shoot in jumping -->
<action>maincpu.mb@2F69 = 00</action> <!-- set fire flag -->
<action>maincpu.mb@3D06 = 00</action> <!-- recover ammo -->
</script>
<script state="off">
<!-- <action>maincpu.mb@2C66 = C8</action> -->
<action>maincpu.mb@2F69 = 04</action>
<action>maincpu.mb@3D06 = D8</action>
</script>
</cheat>
<cheat desc="multiple jump">
<script state="on">
<action>maincpu.mw@02BB5 = B600 </action> <!-- vertical jump -->
<action>maincpu.md@02D0F = FEB605CD </action> <!-- left/right jump -->
<action>maincpu.mq@3F600 = C9023E2C42C3023E</action>
<!--
B600 | 3E 02 : ld a,$02 // vertical jump
B602 | C3 42 2C : jp $2C42
B605 | 3E 02 : ld a,$02 // left/right jump
B607 | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.mw@02BB5 = 2C42 </action>
<action>maincpu.md@02D0F = FE007EDD </action>
<action>maincpu.mq@3F600 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="timer speed">
<parameter>
<item value="0xff">01 (slow)</item>
<item value="0x7f">02 </item>
<item value="0x3f">03 </item>
<item value="0x1f">04 </item>
<item value="0x00">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@33CC = param</action>
</script>
<script state="off">
<action>maincpu.mb@33CC = 3F</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- you can't stop voice by sound stop button -->
<comment>set "skip rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mq@0079C = B680C3C00232163E</action>
<action>maincpu.mq@2B680 = 77BEC0023AC90121</action>
<action>maincpu.mq@2B688 = FE350120FBFE2BC8</action>
<action>maincpu.mq@2B690 = 0420FDFE340120F7</action>
<action>maincpu.mq@2B698 = 0520FEFE0618F03E</action>
<action>maincpu.mq@2B6A0 = 20EFFEC97786103E</action>
<action>maincpu.mq@2B6A8 = 3EC0DFFE05187E03</action>
<action>maincpu.mq@2B6B0 = FFFFFFC9C8103244</action>
<!--
079C | 3E 16 : ld a,$16 // set bank
079E | 32 02 C0 : ld ($C002),a
07A1 | C3 80 B6 : jp $B680
===============================
B680 | 21 01 C9 : ld hl,$C901 // temporary input address
B683 | 3A 02 C0 : ld a,($C002) // read input
B686 | BE : cp (hl)
B687 | 77 : ld (hl),a
B688 | C8 : ret z
B689 | 2B : dec hl // sound code address ($c901)
B68A | FE FB : cp $FB
B68C | 20 01 : jr nz,$B68F
B68E | 35 : dec (hl) // decrease code -01
B68F | FE F7 : cp $F7
B691 | 20 01 : jr nz,$B694
B693 | 34 : inc (hl) // increase code +01
B694 | FE FD : cp $FD
B696 | 20 04 : jr nz,$B69C
B698 | 3E F0 : ld a,$F0 // decrease code -10
B69A | 18 06 : jr $B6A2
B69C | FE FE : cp $FE
B69E | 20 05 : jr nz,$B6A5
B6A0 | 3E 10 : ld a,$10 // increase code +10
B6A2 | 86 : add a,(hl)
B6A3 | 77 : ld (hl),a
B6A4 | C9 : ret
B6A5 | FE EF : cp $EF
B6A7 | 20 03 : jr nz,$B6AC
B6A9 | 7E : ld a,(hl) // play sound
B6AA | 18 05 : jr $B6B1
B6AC | FE DF : cp $DF
B6AE | C0 : ret nz
B6AF | 3E 44 : ld a,$44 // stop sound
B6B1 | 32 10 C8 : ld ($C810),a // send sound code
B6B4 | C9 : ret
-->
</script>
<script state="run">
<output format="----- super ranger sound test mode -----" line="10" align="center" />
<output format="left : decrease code -01" line="11" align="center" />
<output format="right : increase code +01" line="12" align="center" />
<output format="down : decrease code -10" line="13" align="center" />
<output format="up : increase code +10" line="14" align="center" />
<output format="button 1 : play sound" line="15" align="center" />
<output format="button 2 : stop sound" line="16" align="center" />
<output format="----------------------------" line="17" align="center" />
<output format="<< sound code %02X >>" line="19" align="center" >
<argument>maincpu.pb@C900</argument>
</output>
</script>
<script state="off">
<action>maincpu.mq@0079C = 77CBC8393A3523CD</action>
<action>maincpu.mq@2B680 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2B688 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2B690 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2B698 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2B6A0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2B6A8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2B6B0 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip rom check">
<script state="on">
<action> maincpu.mw@02D0 = 072E</action> <!-- boot -->
<action> maincpu.mb@0A16 = C9 </action> <!-- ingame -->
<action> maincpu.mb@12B8 = C9 </action> <!-- ingame -->
<action> maincpu.mb@2C00 = C9 </action> <!-- ingame -->
<action> maincpu.mb@31A9 = C9 </action> <!-- ingame -->
<action> maincpu.mb@332C = C9 </action> <!-- ingame -->
<action> maincpu.mb@3B8C = C9 </action> <!-- ingame -->
<action> maincpu.mb@3FC7 = C9 </action> <!-- ingame -->
<action> maincpu.mb@5392 = C9 </action> <!-- ingame -->
<action> maincpu.mb@5ABE = C9 </action> <!-- ingame -->
<action> maincpu.mb@631E = C9 </action> <!-- ingame -->
<action> maincpu.mb@6759 = C9 </action> <!-- ingame -->
<action> maincpu.mb@692E = C9 </action> <!-- ingame -->
<action> maincpu.mb@71E0 = C9 </action> <!-- ingame -->
<action> maincpu.mb@7A7E = C9 </action> <!-- ingame -->
<action>audiocpu.mb@010B = C0 </action> <!-- short wait -->
</script>
<script state="off">
<action> maincpu.mw@02D0 = 02D6</action>
<action> maincpu.mb@0A16 = C0 </action>
<action> maincpu.mb@12B8 = C0 </action>
<action> maincpu.mb@2C00 = C0 </action>
<action> maincpu.mb@31A9 = C0 </action>
<action> maincpu.mb@332C = C0 </action>
<action> maincpu.mb@3B8C = C0 </action>
<action> maincpu.mb@3FC7 = C0 </action>
<action> maincpu.mb@5392 = C0 </action>
<action> maincpu.mb@5ABE = C0 </action>
<action> maincpu.mb@631E = C0 </action>
<action> maincpu.mb@6759 = C0 </action>
<action> maincpu.mb@692E = C0 </action>
<action> maincpu.mb@71E0 = C0 </action>
<action> maincpu.mb@7A7E = C0 </action>
<action>audiocpu.mb@010B = 00 </action>
</script>
</cheat>
</mamecheat>
srangerw.xml
Code: Select all
<!-- Super Ranger (older, WDK license) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@4422 = 00</action> <!-- enemy -->
<action>maincpu.mb@4708 = 18</action> <!-- firearms -->
</script>
<script state="off">
<action>maincpu.mb@4422 = 02</action>
<action>maincpu.mb@4708 = 28</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<!-- <action>maincpu.mb@2C66 = C9</action> // action speed up but side effect you can shoot in jumping -->
<action>maincpu.mb@2F69 = 00</action> <!-- set fire flag -->
<action>maincpu.mb@3D06 = 00</action> <!-- recover ammo -->
</script>
<script state="off">
<!-- <action>maincpu.mb@2C66 = C8</action> -->
<action>maincpu.mb@2F69 = 04</action>
<action>maincpu.mb@3D06 = D8</action>
</script>
</cheat>
<cheat desc="multiple jump">
<script state="on">
<action>maincpu.mw@02BB5 = B600 </action> <!-- vertical jump -->
<action>maincpu.md@02D0F = FEB605CD </action> <!-- left/right jump -->
<action>maincpu.mq@3F600 = C9023E2C42C3023E</action>
<!--
B600 | 3E 02 : ld a,$02 // vertical jump
B602 | C3 42 2C : jp $2C42
B605 | 3E 02 : ld a,$02 // left/right jump
B607 | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.mw@02BB5 = 2C42 </action>
<action>maincpu.md@02D0F = FE007EDD </action>
<action>maincpu.mq@3F600 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="timer speed">
<parameter>
<item value="0xff">01 (slow)</item>
<item value="0x7f">02 </item>
<item value="0x3f">03 </item>
<item value="0x1f">04 </item>
<item value="0x00">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@33CC = param</action>
</script>
<script state="off">
<action>maincpu.mb@33CC = 3F</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- you can't stop voice by sound stop button -->
<comment>set "skip rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mq@0079C = B680C3C00232163E</action>
<action>maincpu.mq@2B680 = 77BEC0023AC90121</action>
<action>maincpu.mq@2B688 = FE350120FBFE2BC8</action>
<action>maincpu.mq@2B690 = 0420FDFE340120F7</action>
<action>maincpu.mq@2B698 = 0520FEFE0618F03E</action>
<action>maincpu.mq@2B6A0 = 20EFFEC97786103E</action>
<action>maincpu.mq@2B6A8 = 3EC0DFFE05187E03</action>
<action>maincpu.mq@2B6B0 = FFFFFFC9C8103244</action>
<!--
079C | 3E 16 : ld a,$16 // set bank
079E | 32 02 C0 : ld ($C002),a
07A1 | C3 80 B6 : jp $B680
===============================
B680 | 21 01 C9 : ld hl,$C901 // temporary input address
B683 | 3A 02 C0 : ld a,($C002) // read input
B686 | BE : cp (hl)
B687 | 77 : ld (hl),a
B688 | C8 : ret z
B689 | 2B : dec hl // sound code address ($c901)
B68A | FE FB : cp $FB
B68C | 20 01 : jr nz,$B68F
B68E | 35 : dec (hl) // decrease code -01
B68F | FE F7 : cp $F7
B691 | 20 01 : jr nz,$B694
B693 | 34 : inc (hl) // increase code +01
B694 | FE FD : cp $FD
B696 | 20 04 : jr nz,$B69C
B698 | 3E F0 : ld a,$F0 // decrease code -10
B69A | 18 06 : jr $B6A2
B69C | FE FE : cp $FE
B69E | 20 05 : jr nz,$B6A5
B6A0 | 3E 10 : ld a,$10 // increase code +10
B6A2 | 86 : add a,(hl)
B6A3 | 77 : ld (hl),a
B6A4 | C9 : ret
B6A5 | FE EF : cp $EF
B6A7 | 20 03 : jr nz,$B6AC
B6A9 | 7E : ld a,(hl) // play sound
B6AA | 18 05 : jr $B6B1
B6AC | FE DF : cp $DF
B6AE | C0 : ret nz
B6AF | 3E 44 : ld a,$44 // stop sound
B6B1 | 32 10 C8 : ld ($C810),a // send sound code
B6B4 | C9 : ret
-->
</script>
<script state="run">
<output format="----- super ranger sound test mode -----" line="10" align="center" />
<output format="left : decrease code -01" line="11" align="center" />
<output format="right : increase code +01" line="12" align="center" />
<output format="down : decrease code -10" line="13" align="center" />
<output format="up : increase code +10" line="14" align="center" />
<output format="button 1 : play sound" line="15" align="center" />
<output format="button 2 : stop sound" line="16" align="center" />
<output format="----------------------------" line="17" align="center" />
<output format="<< sound code %02X >>" line="19" align="center" >
<argument>maincpu.pb@C900</argument>
</output>
</script>
<script state="off">
<action>maincpu.mq@0079C = 77CBC8393A3523CD</action>
<action>maincpu.mq@2B680 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2B688 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2B690 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2B698 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2B6A0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2B6A8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@2B6B0 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip rom check">
<script state="on">
<action> maincpu.mw@02D0 = 072E</action> <!-- boot -->
<action> maincpu.mb@0A16 = C9 </action> <!-- ingame -->
<action> maincpu.mb@12B8 = C9 </action> <!-- ingame -->
<action> maincpu.mb@2C00 = C9 </action> <!-- ingame -->
<action> maincpu.mb@31A9 = C9 </action> <!-- ingame -->
<action> maincpu.mb@332C = C9 </action> <!-- ingame -->
<action> maincpu.mb@3B8C = C9 </action> <!-- ingame -->
<action> maincpu.mb@3FC7 = C9 </action> <!-- ingame -->
<action> maincpu.mb@5392 = C9 </action> <!-- ingame -->
<action> maincpu.mb@5ABE = C9 </action> <!-- ingame -->
<action> maincpu.mb@631E = C9 </action> <!-- ingame -->
<action> maincpu.mb@6759 = C9 </action> <!-- ingame -->
<action> maincpu.mb@692E = C9 </action> <!-- ingame -->
<action> maincpu.mb@71E0 = C9 </action> <!-- ingame -->
<action> maincpu.mb@7A7E = C9 </action> <!-- ingame -->
<action>audiocpu.mb@010B = C0 </action> <!-- short wait -->
</script>
<script state="off">
<action> maincpu.mw@02D0 = 02D6</action>
<action> maincpu.mb@0A16 = C0 </action>
<action> maincpu.mb@12B8 = C0 </action>
<action> maincpu.mb@2C00 = C0 </action>
<action> maincpu.mb@31A9 = C0 </action>
<action> maincpu.mb@332C = C0 </action>
<action> maincpu.mb@3B8C = C0 </action>
<action> maincpu.mb@3FC7 = C0 </action>
<action> maincpu.mb@5392 = C0 </action>
<action> maincpu.mb@5ABE = C0 </action>
<action> maincpu.mb@631E = C0 </action>
<action> maincpu.mb@6759 = C0 </action>
<action> maincpu.mb@692E = C0 </action>
<action> maincpu.mb@71E0 = C0 </action>
<action> maincpu.mb@7A7E = C0 </action>
<action>audiocpu.mb@010B = 00 </action>
</script>
</cheat>
</mamecheat>