Page 1 of 1

[raphero] Arcadia/Rapid Hero

Posted: Fri May 13, 2022 1:31 pm
by jman

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>maincpu.mw@5950 = 6006</action> <!-- bullet -->
        <action>maincpu.mw@6512 = 600c</action> <!-- enemy -->
    </script>
    <script state="off">
        <action>maincpu.mw@5950 = 6100</action>
        <action>maincpu.mw@6512 = 526e</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mb@462f = 01</action>
        <action>maincpu.mb@474c = 5f</action>
    </script>
    <script state="off">
        <action>maincpu.mb@462f = 20</action>
        <action>maincpu.mb@474c = 53</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter min="0x01" max="0x08" step="0x01" />
    <script state="on">
        <action>maincpu.mq@02ad6 = 4eb900071fc06a0a</action>
        <action>maincpu.mq@71fc0 = 2030000474004842</action>
        <action>maincpu.mq@71fc8 = 4a8067066a024482</action>
        <action>maincpu.mq@71fd0 = 2002740048424a81</action>
        <action>maincpu.mq@71fd8 = 67066a0244822202</action>
        <action>maincpu.mq@71fe0 = 22014e75ffffffff</action>
        <!--
        71fc0 | 2030 0004 : move.l ($4,A0,D0.w),D0
        71fc4 | 74xx      : moveq  #$xx,D2
        71fc6 | 4842      : swap   D2
        71fc8 | 4a80      : tst.l  D0
        71fca | 6706      : beq    $71fd2
        71fcc | 6a02      : bpl    $71fd0
        71fce | 4482      : neg.l  D2
        71fd0 | 2002      : move.l D2,D0
        71fd2 | 74xx      : moveq  #$xx,D2
        71fd4 | 4842      : swap   D2
        71fd6 | 4a81      : tst.l  D1
        71fd8 | 6706      : beq    $71fe0
        71fda | 6a02      : bpl    $71fde
        71fdc | 4482      : neg.l  D2
        71fde | 2001      : move.l D2,D1
        71fe0 | 2201      : move.l D1,D1
        71fe2 | 4e75      : rts
        -->
    </script>
    <script state="change">
        <action>maincpu.mb@71fc5 = param</action>
        <action>maincpu.mb@71fd3 = param</action>
    </script>
    <script state="off">
        <action>maincpu.mq@02ad6 = 2030000422016a0a</action>
        <action>maincpu.mq@71fc0 = 2030000474004842</action>
        <action>maincpu.mq@71fc8 = 4a8067066a024482</action>
        <action>maincpu.mq@71fd0 = 2002740048424a81</action>
        <action>maincpu.mq@71fd8 = 67066a0244822202</action>
        <action>maincpu.mq@71fe0 = 22014e75ffffffff</action>
    </script>
</cheat>

<cheat desc="bullet speed - main shot">
    <parameter>
        <item value="0x08">01 (slow)</item>
        <item value="0x10">02       </item>
        <item value="0x18">03       </item>
        <item value="0x20">04       </item>
        <item value="0x28">05 (fast)</item>
    </parameter>
    <script state="on">
        <action>maincpu.mq@046d6 = 4eb900071fb02b5a</action>
        <action>maincpu.mq@71fb0 = 3b7c000000203b7c</action>
        <action>maincpu.mq@71fb8 = 000000384e75ffff</action>
        <!--
        71fb0 | 3b7c 00xx 0020 : move.w #$xx,($20,A5)
        71fb6 | 3b7c 0000 0038 : move.w #$0,($38,A5)
        71fbc | 4e75           : rts
        -->
    </script>
    <script state="change">
        <action>maincpu.mb@71fb3 = param</action>
    </script>
    <script state="off">
        <action>maincpu.mq@046d6 = 3b7c000000382b5a</action>
        <action>maincpu.mq@71fb0 = ffffffffffffffff</action>
        <action>maincpu.mq@71fb8 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="max bullets up">
    <script state="on">
        <action>maincpu.mb@18237 = 0c</action>
        <action>maincpu.mb@18243 = 0c</action>
        <action>maincpu.mb@18253 = 0c</action>
        <action>maincpu.mb@18263 = 06</action>
    </script>
    <script state="off">
        <action>maincpu.mb@18237 = 06</action>
        <action>maincpu.mb@18243 = 06</action>
        <action>maincpu.mb@18253 = 06</action>
        <action>maincpu.mb@18263 = 04</action>
    </script>
</cheat>

<cheat desc="sound test mode">
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action>maincpu.mq@089a4 = 4ef90005cd004279</action>
        <action>maincpu.mq@5cd00 = 41f9001f100043f9</action>
        <action>maincpu.mq@5cd08 = 0010001f12001039</action>
        <action>maincpu.mq@5cd10 = 00100003b20067f4</action>
        <action>maincpu.mq@5cd18 = 0c0000fd66025310</action>
        <action>maincpu.mq@5cd20 = 0c0000fe66025210</action>
        <action>maincpu.mq@5cd28 = 0c0000fb66040410</action>
        <action>maincpu.mq@5cd30 = 00100c0000f76604</action>
        <action>maincpu.mq@5cd38 = 061000100c0000ef</action>
        <action>maincpu.mq@5cd40 = 660212900c0000df</action>
        <action>maincpu.mq@5cd48 = 6602421160beffff</action>
        <!--
        5cd00 | 41f9 001f 1000 : lea    $1f1000.l,A0 // sound code address
        5cd06 | 43f9 0010 001f : lea    $10001f.l,A1 // sound latch address
        5cd0c | 1200           : move.b D0, D1
        5cd0e | 1039 0010 0003 : move.b $100003.l,D0 // read input
        5cd14 | b200           : cmp.b  D0,D1
        5cd16 | 67f4           : beq    $5cd0c
        5cd18 | 0c00 00fd      : cmpi.b #-$3,D0
        5cd1c | 6602           : bne    $5cd20
        5cd1e | 5310           : subq.b #1,(A0)      // decrease code -01
        5cd20 | 0c00 00fe      : cmpi.b #-$2,D0
        5cd24 | 6602           : bne    $5cd28
        5cd26 | 5210           : addq.b #1,(A0)      // increase code +01
        5cd28 | 0c00 00fb      : cmpi.b #-$5,D0
        5cd2c | 6604           : bne    $5cd32
        5cd2e | 0410 0010      : subi.b #$10,(A0)    // decrease code -10
        5cd32 | 0c00 00f7      : cmpi.b #-$9,D0
        5cd36 | 6604           : bne    $5cd3c
        5cd38 | 0610 0010      : addi.b #$10,(A0)    // increase code +10
        5cd3c | 0c00 00ef      : cmpi.b #-$11,D0
        5cd40 | 6602           : bne    $5cd44
        5cd42 | 1290           : move.b (A0),(A1)    // play sound
        5cd44 | 0c00 00df      : cmpi.b #-$21,D0
        5cd48 | 6602           : bne    $5cd4c
        5cd4a | 4211           : clr.b  (A1)         // stop sound
        5cd4c | 60be           : bra    $5cd0c
        -->
    </script>
    <script state="run">
        <output format="----- rapid hero 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="up : increase code +10"                 line="13" align="center" />
        <output format="down : decrease 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@1f1000</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mq@089a4 = 4279001f90624279</action>
        <action>maincpu.mq@5cd00 = ffffffffffffffff</action>
        <action>maincpu.mq@5cd08 = ffffffffffffffff</action>
        <action>maincpu.mq@5cd10 = ffffffffffffffff</action>
        <action>maincpu.mq@5cd18 = ffffffffffffffff</action>
        <action>maincpu.mq@5cd20 = ffffffffffffffff</action>
        <action>maincpu.mq@5cd28 = ffffffffffffffff</action>
        <action>maincpu.mq@5cd30 = ffffffffffffffff</action>
        <action>maincpu.mq@5cd38 = ffffffffffffffff</action>
        <action>maincpu.mq@5cd40 = ffffffffffffffff</action>
        <action>maincpu.mq@5cd48 = ffffffffffffffff</action>
    </script>
</cheat>

[arcadian]+ Arcadia/Rapid Hero

Posted: Sun Dec 10, 2023 1:32 pm
by jman
arcadian.xml

Code: Select all

<!-- Arcadia (NMK) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mw@5948 = 6006</action> <!-- bullet -->
            <action>maincpu.mw@650A = 600C</action> <!-- enemy -->
        </script>
        <script state="off">
            <action>maincpu.mw@5948 = 6100</action>
            <action>maincpu.mw@650A = 526E</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@462F = 01</action>
            <action>maincpu.mb@474C = 5F</action>
        </script>
        <script state="off">
            <action>maincpu.mb@462F = 20</action>
            <action>maincpu.mb@474C = 53</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x00008000">01 (slow)</item>
            <item value="0x00028000">02       </item>
            <item value="0x00048000">03       </item>
            <item value="0x00068000">04       </item>
            <item value="0x00088000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@02AD2 = 4EB90005CD004E71</action>
            <action>maincpu.mq@5CD00 = 243C000000002230</action>
            <action>maincpu.mq@5CD08 = 000067066A024482</action>
            <action>maincpu.mq@5CD10 = 2202243C00000000</action>
            <action>maincpu.mq@5CD18 = 2030000467066A02</action>
            <action>maincpu.mq@5CD20 = 448220024E75FFFF</action>
            <!--
            5CD00 | 243C xxxx xxxx : move.l  #$xxxx, D2       // x position
            5CD06 | 2230 0000      : move.l  (A0,D0.w), D1
            5CD0A | 6706           : beq     $5cd12
            5CD0C | 6A02           : bpl     $5cd10
            5CD0E | 4482           : neg.l   D2
            5CD10 | 2202           : move.l  D2, D1
            5CD12 | 243C xxxx xxxx : move.l  #$xxxx, D2       // y position
            5CD18 | 2030 0004      : move.l  ($4,A0,D0.w), D0
            5CD1C | 6706           : beq     $5cd24
            5CD1E | 6A02           : bpl     $5cd22
            5CD20 | 4482           : neg.l   D2
            5CD22 | 2002           : move.l  D2, D0
            5CD24 | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@5CD02 = param</action>
            <action>maincpu.md@5CD14 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@02AD2 = 2230000020300004</action>
            <action>maincpu.mq@5CD00 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CD08 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CD10 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CD18 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CD20 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x0008">01 (slow)</item>
            <item value="0x0010">02       </item>
            <item value="0x0018">03       </item>
            <item value="0x0020">04       </item>
            <item value="0x0028">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@046D6 = 4EB90005CD302B5A</action>
            <action>maincpu.mq@5CD30 = 3B7C00200020426D</action>
            <action>maincpu.mq@5CD38 = 00384E75FFFFFFFF</action>
            <!--
            5CD30 | 3B7C xxxx 0020 : move.w  #$xx, ($20,A5)
            5CD36 | 426D 0038      : clr.w   ($38,A5)
            5CD3A | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@5CD32 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@046D6 = 3B7C000000382B5A</action>
            <action>maincpu.mq@5CD30 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CD38 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="max bullets up - main shot">
        <script state="on">
            <action>maincpu.mb@18237 = 0C</action>
            <action>maincpu.mb@18243 = 0C</action>
            <action>maincpu.mb@18253 = 0C</action>
            <action>maincpu.mb@18263 = 06</action>
        </script>
        <script state="off">
            <action>maincpu.mb@18237 = 06</action>
            <action>maincpu.mb@18243 = 06</action>
            <action>maincpu.mb@18253 = 06</action>
            <action>maincpu.mb@18263 = 04</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <!-- you can't stop sfx (0x80 or later) by sound stop button -->
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mq@0899C = 4EF90005CD404279</action>
            <action>maincpu.mq@5CD40 = 41F9001F000043F9</action>
            <action>maincpu.mq@5CD48 = 0010001F12001029</action>
            <action>maincpu.mq@5CD50 = FFE4B20067F60C00</action>
            <action>maincpu.mq@5CD58 = 00FD660253100C00</action>
            <action>maincpu.mq@5CD60 = 00FE660252100C00</action>
            <action>maincpu.mq@5CD68 = 00FB660404100010</action>
            <action>maincpu.mq@5CD70 = 0C0000F766040610</action>
            <action>maincpu.mq@5CD78 = 00100C0000EF6602</action>
            <action>maincpu.mq@5CD80 = 12900C0000DF6602</action>
            <action>maincpu.mq@5CD88 = 421160C0FFFFFFFF</action>
            <!--
            5CD40 | 41F9 001F 0000 : lea     $1f0000.l, A0 // sound code address
            5CD46 | 43F9 0010 001F : lea     $10001f.l, A1 // sound latch address
            5CD4C | 1200           : move.b  D0, D1
            5CD4E | 1029 FFE4      : move.b  (-$1c,A1), D0 // read input ($100003)
            5CD52 | B200           : cmp.b   D0, D1
            5CD54 | 67F6           : beq     $5cd4c
            5CD56 | 0C00 00FD      : cmpi.b  #-$3, D0
            5CD5A | 6602           : bne     $5cd5e
            5CD5C | 5310           : subq.b  #1, (A0)      // decrease code -01
            5CD5E | 0C00 00FE      : cmpi.b  #-$2, D0
            5CD62 | 6602           : bne     $5cd66
            5CD64 | 5210           : addq.b  #1, (A0)      // increase code +01
            5CD66 | 0C00 00FB      : cmpi.b  #-$5, D0
            5CD6A | 6604           : bne     $5cd70
            5CD6C | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            5CD70 | 0C00 00F7      : cmpi.b  #-$9, D0
            5CD74 | 6604           : bne     $5cd7a
            5CD76 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            5CD7A | 0C00 00EF      : cmpi.b  #-$11, D0
            5CD7E | 6602           : bne     $5cd82
            5CD80 | 1290           : move.b  (A0), (A1)    // play sound
            5CD82 | 0C00 00DF      : cmpi.b  #-$21, D0
            5CD86 | 6602           : bne     $5cd8a
            5CD88 | 4211           : clr.b   (A1)          // stop sound
            5CD8A | 60C0           : bra     $5cd4c
            -->
        </script>
        <script state="run">
            <output format="----- arcadia 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@1F0000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@0899C = 4279001F90624279</action>
            <action>maincpu.mq@5CD40 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CD48 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CD50 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CD58 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CD60 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CD68 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CD70 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CD78 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CD80 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CD88 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
raphero.xml

Code: Select all

<!-- Rapid Hero (NMK) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mw@5950 = 6006</action> <!-- bullet -->
            <action>maincpu.mw@6512 = 600C</action> <!-- enemy -->
        </script>
        <script state="off">
            <action>maincpu.mw@5950 = 6100</action>
            <action>maincpu.mw@6512 = 526E</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@462F = 01</action>
            <action>maincpu.mb@474C = 5F</action>
        </script>
        <script state="off">
            <action>maincpu.mb@462F = 20</action>
            <action>maincpu.mb@474C = 53</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x00008000">01 (slow)</item>
            <item value="0x00028000">02       </item>
            <item value="0x00048000">03       </item>
            <item value="0x00068000">04       </item>
            <item value="0x00088000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@02AD2 = 4EB90005CD004E71</action>
            <action>maincpu.mq@5CD00 = 243C000000002230</action>
            <action>maincpu.mq@5CD08 = 000067066A024482</action>
            <action>maincpu.mq@5CD10 = 2202243C00000000</action>
            <action>maincpu.mq@5CD18 = 2030000467066A02</action>
            <action>maincpu.mq@5CD20 = 448220024E75FFFF</action>
            <!--
            5CD00 | 243C xxxx xxxx : move.l  #$xxxx, D2       // x position
            5CD06 | 2230 0000      : move.l  (A0,D0.w), D1
            5CD0A | 6706           : beq     $5cd12
            5CD0C | 6A02           : bpl     $5cd10
            5CD0E | 4482           : neg.l   D2
            5CD10 | 2202           : move.l  D2, D1
            5CD12 | 243C xxxx xxxx : move.l  #$xxxx, D2       // y position
            5CD18 | 2030 0004      : move.l  ($4,A0,D0.w), D0
            5CD1C | 6706           : beq     $5cd24
            5CD1E | 6A02           : bpl     $5cd22
            5CD20 | 4482           : neg.l   D2
            5CD22 | 2002           : move.l  D2, D0
            5CD24 | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@5CD02 = param</action>
            <action>maincpu.md@5CD14 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@02AD2 = 2230000020300004</action>
            <action>maincpu.mq@5CD00 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CD08 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CD10 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CD18 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CD20 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x0008">01 (slow)</item>
            <item value="0x0010">02       </item>
            <item value="0x0018">03       </item>
            <item value="0x0020">04       </item>
            <item value="0x0028">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@046D6 = 4EB90005CD302B5A</action>
            <action>maincpu.mq@5CD30 = 3B7C00200020426D</action>
            <action>maincpu.mq@5CD38 = 00384E75FFFFFFFF</action>
            <!--
            5CD30 | 3B7C xxxx 0020 : move.w  #$xx, ($20,A5)
            5CD36 | 426D 0038      : clr.w   ($38,A5)
            5CD3A | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@5CD32 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@046D6 = 3B7C000000382B5A</action>
            <action>maincpu.mq@5CD30 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CD38 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="max bullets up - main shot">
        <script state="on">
            <action>maincpu.mb@18237 = 0C</action>
            <action>maincpu.mb@18243 = 0C</action>
            <action>maincpu.mb@18253 = 0C</action>
            <action>maincpu.mb@18263 = 06</action>
        </script>
        <script state="off">
            <action>maincpu.mb@18237 = 06</action>
            <action>maincpu.mb@18243 = 06</action>
            <action>maincpu.mb@18253 = 06</action>
            <action>maincpu.mb@18263 = 04</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <!-- you can't stop sfx (0x80 or later) by sound stop button -->
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mq@089A4 = 4EF90005CD404279</action>
            <action>maincpu.mq@5CD40 = 41F9001F000043F9</action>
            <action>maincpu.mq@5CD48 = 0010001F12001029</action>
            <action>maincpu.mq@5CD50 = FFE4B20067F60C00</action>
            <action>maincpu.mq@5CD58 = 00FD660253100C00</action>
            <action>maincpu.mq@5CD60 = 00FE660252100C00</action>
            <action>maincpu.mq@5CD68 = 00FB660404100010</action>
            <action>maincpu.mq@5CD70 = 0C0000F766040610</action>
            <action>maincpu.mq@5CD78 = 00100C0000EF6602</action>
            <action>maincpu.mq@5CD80 = 12900C0000DF6602</action>
            <action>maincpu.mq@5CD88 = 421160C0FFFFFFFF</action>
            <!--
            5CD40 | 41F9 001F 0000 : lea     $1f0000.l, A0 // sound code address
            5CD46 | 43F9 0010 001F : lea     $10001f.l, A1 // sound latch address
            5CD4C | 1200           : move.b  D0, D1
            5CD4E | 1029 FFE4      : move.b  (-$1c,A1), D0 // read input ($100003)
            5CD52 | B200           : cmp.b   D0, D1
            5CD54 | 67F6           : beq     $5cd4c
            5CD56 | 0C00 00FD      : cmpi.b  #-$3, D0
            5CD5A | 6602           : bne     $5cd5e
            5CD5C | 5310           : subq.b  #1, (A0)      // decrease code -01
            5CD5E | 0C00 00FE      : cmpi.b  #-$2, D0
            5CD62 | 6602           : bne     $5cd66
            5CD64 | 5210           : addq.b  #1, (A0)      // increase code +01
            5CD66 | 0C00 00FB      : cmpi.b  #-$5, D0
            5CD6A | 6604           : bne     $5cd70
            5CD6C | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            5CD70 | 0C00 00F7      : cmpi.b  #-$9, D0
            5CD74 | 6604           : bne     $5cd7a
            5CD76 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            5CD7A | 0C00 00EF      : cmpi.b  #-$11, D0
            5CD7E | 6602           : bne     $5cd82
            5CD80 | 1290           : move.b  (A0), (A1)    // play sound
            5CD82 | 0C00 00DF      : cmpi.b  #-$21, D0
            5CD86 | 6602           : bne     $5cd8a
            5CD88 | 4211           : clr.b   (A1)          // stop sound
            5CD8A | 60C0           : bra     $5cd4c
            -->
        </script>
        <script state="run">
            <output format="----- rapid hero 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@1F0000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@089A4 = 4279001F90624279</action>
            <action>maincpu.mq@5CD40 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CD48 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CD50 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CD58 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CD60 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CD68 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CD70 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CD78 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CD80 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CD88 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
rapheroa.xml

Code: Select all

<!-- Rapid Hero (Media Trading) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mw@5940 = 6006</action> <!-- bullet -->
            <action>maincpu.mw@6502 = 600C</action> <!-- enemy -->
        </script>
        <script state="off">
            <action>maincpu.mw@5940 = 6100</action>
            <action>maincpu.mw@6502 = 526E</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@462F = 01</action>
            <action>maincpu.mb@474C = 5F</action>
        </script>
        <script state="off">
            <action>maincpu.mb@462F = 20</action>
            <action>maincpu.mb@474C = 53</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x00008000">01 (slow)</item>
            <item value="0x00028000">02       </item>
            <item value="0x00048000">03       </item>
            <item value="0x00068000">04       </item>
            <item value="0x00088000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@02AD2 = 4EB90005CD004E71</action>
            <action>maincpu.mq@5CD00 = 243C000000002230</action>
            <action>maincpu.mq@5CD08 = 000067066A024482</action>
            <action>maincpu.mq@5CD10 = 2202243C00000000</action>
            <action>maincpu.mq@5CD18 = 2030000467066A02</action>
            <action>maincpu.mq@5CD20 = 448220024E75FFFF</action>
            <!--
            5CD00 | 243C xxxx xxxx : move.l  #$xxxx, D2       // x position
            5CD06 | 2230 0000      : move.l  (A0,D0.w), D1
            5CD0A | 6706           : beq     $5cd12
            5CD0C | 6A02           : bpl     $5cd10
            5CD0E | 4482           : neg.l   D2
            5CD10 | 2202           : move.l  D2, D1
            5CD12 | 243C xxxx xxxx : move.l  #$xxxx, D2       // y position
            5CD18 | 2030 0004      : move.l  ($4,A0,D0.w), D0
            5CD1C | 6706           : beq     $5cd24
            5CD1E | 6A02           : bpl     $5cd22
            5CD20 | 4482           : neg.l   D2
            5CD22 | 2002           : move.l  D2, D0
            5CD24 | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@5CD02 = param</action>
            <action>maincpu.md@5CD14 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@02AD2 = 2230000020300004</action>
            <action>maincpu.mq@5CD00 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CD08 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CD10 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CD18 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CD20 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x0008">01 (slow)</item>
            <item value="0x0010">02       </item>
            <item value="0x0018">03       </item>
            <item value="0x0020">04       </item>
            <item value="0x0028">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@046D6 = 4EB90005CD302B5A</action>
            <action>maincpu.mq@5CD30 = 3B7C00200020426D</action>
            <action>maincpu.mq@5CD38 = 00384E75FFFFFFFF</action>
            <!--
            5CD30 | 3B7C xxxx 0020 : move.w  #$xx, ($20,A5)
            5CD36 | 426D 0038      : clr.w   ($38,A5)
            5CD3A | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@5CD32 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@046D6 = 3B7C000000382B5A</action>
            <action>maincpu.mq@5CD30 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CD38 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="max bullets up - main shot">
        <script state="on">
            <action>maincpu.mb@18237 = 0C</action>
            <action>maincpu.mb@18243 = 0C</action>
            <action>maincpu.mb@18253 = 0C</action>
            <action>maincpu.mb@18263 = 06</action>
        </script>
        <script state="off">
            <action>maincpu.mb@18237 = 06</action>
            <action>maincpu.mb@18243 = 06</action>
            <action>maincpu.mb@18253 = 06</action>
            <action>maincpu.mb@18263 = 04</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <!-- you can't stop sfx (0x80 or later) by sound stop button -->
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mq@08994 = 4EF90005CD404279</action>
            <action>maincpu.mq@5CD40 = 41F9001F000043F9</action>
            <action>maincpu.mq@5CD48 = 0010001F12001029</action>
            <action>maincpu.mq@5CD50 = FFE4B20067F60C00</action>
            <action>maincpu.mq@5CD58 = 00FD660253100C00</action>
            <action>maincpu.mq@5CD60 = 00FE660252100C00</action>
            <action>maincpu.mq@5CD68 = 00FB660404100010</action>
            <action>maincpu.mq@5CD70 = 0C0000F766040610</action>
            <action>maincpu.mq@5CD78 = 00100C0000EF6602</action>
            <action>maincpu.mq@5CD80 = 12900C0000DF6602</action>
            <action>maincpu.mq@5CD88 = 421160C0FFFFFFFF</action>
            <!--
            5CD40 | 41F9 001F 0000 : lea     $1f0000.l, A0 // sound code address
            5CD46 | 43F9 0010 001F : lea     $10001f.l, A1 // sound latch address
            5CD4C | 1200           : move.b  D0, D1
            5CD4E | 1029 FFE4      : move.b  (-$1c,A1), D0 // read input ($100003)
            5CD52 | B200           : cmp.b   D0, D1
            5CD54 | 67F6           : beq     $5cd4c
            5CD56 | 0C00 00FD      : cmpi.b  #-$3, D0
            5CD5A | 6602           : bne     $5cd5e
            5CD5C | 5310           : subq.b  #1, (A0)      // decrease code -01
            5CD5E | 0C00 00FE      : cmpi.b  #-$2, D0
            5CD62 | 6602           : bne     $5cd66
            5CD64 | 5210           : addq.b  #1, (A0)      // increase code +01
            5CD66 | 0C00 00FB      : cmpi.b  #-$5, D0
            5CD6A | 6604           : bne     $5cd70
            5CD6C | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            5CD70 | 0C00 00F7      : cmpi.b  #-$9, D0
            5CD74 | 6604           : bne     $5cd7a
            5CD76 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            5CD7A | 0C00 00EF      : cmpi.b  #-$11, D0
            5CD7E | 6602           : bne     $5cd82
            5CD80 | 1290           : move.b  (A0), (A1)    // play sound
            5CD82 | 0C00 00DF      : cmpi.b  #-$21, D0
            5CD86 | 6602           : bne     $5cd8a
            5CD88 | 4211           : clr.b   (A1)          // stop sound
            5CD8A | 60C0           : bra     $5cd4c
            -->
        </script>
        <script state="run">
            <output format="----- rapid hero 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@1F0000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@08994 = 4279001F90624279</action>
            <action>maincpu.mq@5CD40 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CD48 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CD50 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CD58 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CD60 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CD68 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CD70 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CD78 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CD80 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CD88 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>