[sranger] Super Ranger

This forum is for posting M.A.M.E. Work In Progress "Arcade"cheats that are not quite ready for the prime time. If the cheats are buggy or the cheat descriptions are non-standard then please post them here. Help maybe given but there are no guarantees and they will only be added to the cheat file when the cheat file maintainer is happy with them.
Post Reply
jman
Posts: 850
Joined: Tue Dec 01, 2020 1:24 pm

[sranger] Super Ranger

Post by jman »

First of all, this game has in-game rom check. The following codes will cause the game crash unless set "skip rom check".

Code: Select all

<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@32fb = 00</action> <!-- set fire flag -->
        <action>maincpu.mb@40c7 = 00</action> <!-- recover ammo -->
    </script>
    <script state="off">
        <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 stop button -->
    <comment>set &quot;skip rom check&quot; 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
        0809 | 32 02 c0 : ld  ($C002),a // set bank
        080c | c3 80 b6 : jp  $B680
        ===============================
        b680 | 21 01 c9 : ld  hl,$C901
        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
        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
        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="&lt;&lt; sound code %2.2X &gt;&gt;"       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> <!-- in-game -->
        <action>maincpu.mb@1537 =   c9</action> <!-- in-game -->
        <action>maincpu.mb@2f92 =   c9</action> <!-- in-game -->
        <action>maincpu.mb@356a =   c9</action> <!-- in-game -->
        <action>maincpu.mb@36ed =   c9</action> <!-- in-game -->
        <action>maincpu.mb@3f4d =   c9</action> <!-- in-game -->
        <action>maincpu.mb@438e =   c9</action> <!-- in-game -->
        <action>maincpu.mb@6158 =   c9</action> <!-- in-game -->
        <action>maincpu.mb@62db =   c9</action> <!-- in-game -->
        <action>maincpu.mb@6b3b =   c9</action> <!-- in-game -->
        <action>maincpu.mb@6f7c =   c9</action> <!-- in-game -->
    </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>
"auto fire" enables you to fire even in case of "no ammo" like rolling thunder 2 cheat (http://www.mamecheat.co.uk/forums/viewtopic.php?f=16&t=13290).
jman
Posts: 850
Joined: Tue Dec 01, 2020 1:24 pm

[sranger]+ Super Ranger

Post by jman »

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 &quot;skip rom check&quot; 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="&lt;&lt; sound code %02X &gt;&gt;"        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 &quot;skip rom check&quot; 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="&lt;&lt; sound code %02X &gt;&gt;"        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 &quot;skip rom check&quot; 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="&lt;&lt; sound code %02X &gt;&gt;"        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 &quot;skip rom check&quot; 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="&lt;&lt; sound code %02X &gt;&gt;"        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 &quot;skip rom check&quot; 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="&lt;&lt; sound code %02X &gt;&gt;"        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 &quot;skip rom check&quot; 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="&lt;&lt; sound code %02X &gt;&gt;"        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>
jman
Posts: 850
Joined: Tue Dec 01, 2020 1:24 pm

[sranger]+ Super Ranger

Post by jman »

srangerb.xml

Code: Select all

<!-- Super Ranger (older, bootleg) -->
<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 &quot;skip rom check&quot; 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="&lt;&lt; sound code %02X &gt;&gt;"        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>
Post Reply