[raphero] Arcadia/Rapid Hero

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: 842
Joined: Tue Dec 01, 2020 1:24 pm

[raphero] Arcadia/Rapid Hero

Post 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>
jman
Posts: 842
Joined: Tue Dec 01, 2020 1:24 pm

[arcadian]+ Arcadia/Rapid Hero

Post 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>
Post Reply