[ryukendn] Shadow Warriors/Ninja Ryukenden

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

[ryukendn] Shadow Warriors/Ninja Ryukenden

Post by jman »

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <!-- attack -->
        <action>maincpu.mw@0e09c = 0e32</action>
        <!-- sword attack -->
        <action>maincpu.mq@0e15c = 4eb90003a0306720</action>
        <action>maincpu.mq@3a030 = bbfc00061e906708</action>
        <action>maincpu.mq@3a038 = bbfc00061ed06604</action>
        <action>maincpu.mq@3a040 = 424060064eb90000</action>
        <action>maincpu.mq@3a048 = edac4a404e75ffff</action>
        <!--
        3a030 | bbfc 0006 1e90 : cmpa.l #$61e90,A5 // P1
        3a036 | 6708           : beq    $3a040
        3a038 | bbfc 0006 1ed0 : cmpa.l #$61ed0,A5 // P2
        3a03e | 6604           : bne    $3a044
        3a040 | 4240           : clr.w  D0
        3a042 | 6006           : bra    $3a04a
        3a044 | 4eb9 0000 edac : jsr    $edac.l
        3a04a | 4a40           : tst.w  D0
        3a04c | 4e75           : rts
        -->
    </script>
    <script state="off">
        <action>maincpu.mw@0e09c =             0d10</action>
        <action>maincpu.mq@0e15c = 61000c4e4a406720</action>
        <action>maincpu.mq@3a030 = ffffffffffffffff</action>
        <action>maincpu.mq@3a038 = ffffffffffffffff</action>
        <action>maincpu.mq@3a040 = ffffffffffffffff</action>
        <action>maincpu.mq@3a048 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mq@0971e = 4eb90003a000c041</action>
        <action>maincpu.mq@3a000 = 08000009670808f9</action>
        <action>maincpu.mq@3a008 = 000900061e340800</action>
        <action>maincpu.mq@3a010 = 000d670808f9000d</action>
        <action>maincpu.mq@3a018 = 00061e3482790006</action>
        <action>maincpu.mq@3a020 = 1e344e75ffffffff</action>
        <!--
        3a000 | 0800 0009           : btst #$9,D0
        3a004 | 6708                : beq  $3a00e
        3a006 | 08f9 0009 0006 1e34 : bset #$9,$61e34.l // P1
        3a00e | 0800 000d           : btst #$d,D0
        3a012 | 6708                : beq  $3a01c
        3a014 | 08f9 000d 0006 1e34 : bset #$d,$61e34.l // P2
        3a01c | 8279 0006 1e34      : or.w $61e34.l,D1
        3a022 | 4e75                : rts
        -->
    </script>
    <script state="off">
        <action>maincpu.mq@0971e = 827900061e34c041</action>
        <action>maincpu.mq@3a000 = ffffffffffffffff</action>
        <action>maincpu.mq@3a008 = ffffffffffffffff</action>
        <action>maincpu.mq@3a010 = ffffffffffffffff</action>
        <action>maincpu.mq@3a018 = ffffffffffffffff</action>
        <action>maincpu.mq@3a020 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="attack speed up">
    <script state="on">
        <action>maincpu.mq@0bfb8 = 4eb90003a0501d51</action>
        <action>maincpu.mq@3a050 = c019bdfc00061e90</action>
        <action>maincpu.mq@3a058 = 6708bdfc00061ed0</action>
        <action>maincpu.mq@3a060 = 660a0c2e000f000a</action>
        <action>maincpu.mq@3a068 = 660242001d40001a</action>
        <action>maincpu.mq@3a070 = 4e75ffffffffffff</action>
        <!--
        3a050 | c019           : and.b  (A1)+,D0
        3a052 | bdfc 0006 1e90 : cmpa.l #$61e90,A6 // 1P
        3a058 | 6708           : beq    $3a062
        3a05a | bdfc 0006 1ed0 : cmpa.l #$61ed0,A6 // 2P
        3a060 | 660a           : bne    $3a06c
        3a062 | 0c2e 000f 000a : cmpi.b #$f,($a,A6)
        3a068 | 6602           : bne    $3a06c
        3a06a | 4200           : clr.b  D0
        3a06c | 1d40 001a      : move.b D0,($1a,A6)
        3a070 | 4e75           : rts
        -->
    </script>
    <script state="off">
        <action>maincpu.mq@0bfb8 = c0191d40001a1d51</action>
        <action>maincpu.mq@3a050 = ffffffffffffffff</action>
        <action>maincpu.mq@3a058 = ffffffffffffffff</action>
        <action>maincpu.mq@3a060 = ffffffffffffffff</action>
        <action>maincpu.mq@3a068 = ffffffffffffffff</action>
        <action>maincpu.mq@3a070 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="timer speed">
    <parameter>
        <item value="0xff">01 (slow)</item>
        <item value="0x80">02       </item>
        <item value="0x40">03       </item>
        <item value="0x20">04       </item>
        <item value="0x01">05 (fast)</item>
    </parameter>
    <script state="change">
        <action>maincpu.mb@246d = param</action>
    </script>
    <script state="off">
        <action>maincpu.mb@246d = 80</action>
    </script>
</cheat>

<cheat desc="sound test mode">
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action>maincpu.mb@005ba =               60</action> <!-- disable warning sound -->
        <action>maincpu.mq@0063e = 4ef90003a080227c</action>
        <action>maincpu.mq@3a080 = 41f9000601001401</action>
        <action>maincpu.mq@3a088 = 12390007a003b401</action>
        <action>maincpu.mq@3a090 = 67f40c0100fe6602</action>
        <action>maincpu.mq@3a098 = 53100c0100fd6602</action>
        <action>maincpu.mq@3a0a0 = 52100c0100fb6604</action>
        <action>maincpu.mq@3a0a8 = 041000100c0100f7</action>
        <action>maincpu.mq@3a0b0 = 6604061000100c01</action>
        <action>maincpu.mq@3a0b8 = 00ef66041010600a</action>
        <action>maincpu.mq@3a0c0 = 0c0100df660a103c</action>
        <action>maincpu.mq@3a0c8 = 00ff13c00007a803</action>
        <action>maincpu.mq@3a0d0 = 60b4ffffffffffff</action>
        <!--
        3a080 | 41f9 0006 0100 : lea    $60100.l,A0 // sound code address
        3a086 | 1401           : move.b D1,D2
        3a088 | 1239 0007 a003 : move.b $7a003.l,D1 // read input
        3a08e | b401           : cmp.b  D1,D2
        3a090 | 67f4           : beq    $3a086
        3a092 | 0c01 00fe      : cmpi.b #-$2,D1
        3a096 | 6602           : bne    $3a09a
        3a098 | 5310           : subq.b #1,(A0)     // decrease code -01
        3a09a | 0c01 00fd      : cmpi.b #-$3,D1
        3a09e | 6602           : bne    $3a0a2
        3a0a0 | 5210           : addq.b #1,(A0)     // increase code +01
        3a0a2 | 0c01 00fb      : cmpi.b #-$5,D1
        3a0a6 | 6604           : bne    $3a0ac
        3a0a8 | 0410 0010      : subi.b #$10,(A0)   // decrease code -10
        3a0ac | 0c01 00f7      : cmpi.b #-$9,D1
        3a0b0 | 6604           : bne    $3a0b6
        3a0b2 | 0610 0010      : addi.b #$10,(A0)   // increase code +10
        3a0b6 | 0c01 00ef      : cmpi.b #-$11,D1
        3a0ba | 6604           : bne    $3a0c0
        3a0bc | 1010           : move.b (A0),D0     // play sound
        3a0be | 600a           : bra    $3a0ca
        3a0c0 | 0c01 00df      : cmpi.b #-$21,D1
        3a0c4 | 660a           : bne    $3a0d0
        3a0c6 | 103c 00ff      : move.b #$ff,D0     // stop sound
        3a0ca | 13c0 0007 a803 : move.b D0,$7a803.l // send sound code
        3a0d0 | 60b4           : bra    $3a086
        -->
    </script>
    <script state="run">
        <output format="----- ninja ryukenden 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@60100</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mb@005ba =               67</action>
        <action>maincpu.mq@0063e = 207c00060384227c</action>
        <action>maincpu.mq@3a080 = ffffffffffffffff</action>
        <action>maincpu.mq@3a088 = ffffffffffffffff</action>
        <action>maincpu.mq@3a090 = ffffffffffffffff</action>
        <action>maincpu.mq@3a098 = ffffffffffffffff</action>
        <action>maincpu.mq@3a0a0 = ffffffffffffffff</action>
        <action>maincpu.mq@3a0a8 = ffffffffffffffff</action>
        <action>maincpu.mq@3a0b0 = ffffffffffffffff</action>
        <action>maincpu.mq@3a0b8 = ffffffffffffffff</action>
        <action>maincpu.mq@3a0c0 = ffffffffffffffff</action>
        <action>maincpu.mq@3a0c8 = ffffffffffffffff</action>
        <action>maincpu.mq@3a0d0 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="skip ram/rom check">
    <script state="on">
        <action>maincpu.mw@04d0 = 603c</action> <!-- ram -->
        <action>maincpu.mw@0532 = 6024</action> <!-- rom -->
        <action>maincpu.mb@0562 =   60</action> <!-- other rams -->
    </script>
    <script state="off">
        <action>maincpu.mw@04d0 = 207c</action>
        <action>maincpu.mw@0532 = 207c</action>
        <action>maincpu.mb@0562 =   67</action>
    </script>
</cheat>
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[shadoww]+ Shadow Warriors/Ninja Gaiden

Post by jman »

shadoww.xml

Code: Select all

<!-- Shadow Warriors (World, set 1) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <!-- attack -->
            <action>maincpu.mw@E0D8 = 0E32</action>
            <!-- sword attack -->
            <action>maincpu.mq@0E198 = 4EB90003A0006720</action>
            <action>maincpu.mq@3A000 = BBFC00061E906708</action>
            <action>maincpu.mq@3A008 = BBFC00061ED06604</action>
            <action>maincpu.mq@3A010 = 42404E754EB90000</action>
            <action>maincpu.mq@3A018 = EDE84A404E75FFFF</action>
            <!--
            3A000 | BBFC 0006 1E90 : cmpa.l  #$61e90, A5 // player 1
            3A006 | 6708           : beq     $3a010
            3A008 | BBFC 0006 1ED0 : cmpa.l  #$61ed0, A5 // player 2
            3A00E | 6604           : bne     $3a014
            3A010 | 4240           : clr.w   D0
            3A012 | 4E75           : rts
            3A014 | 4EB9 0000 EDE8 : jsr     $ede8.l
            3A01A | 4A40           : tst.w   D0
            3A01C | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.mw@0E0D8 = 0D10            </action>
            <action>maincpu.mq@0E198 = 61000C4E4A406720</action>
            <action>maincpu.mq@3A000 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A008 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A010 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A018 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mq@0975A = 4EB90003A020C041</action>
            <action>maincpu.mq@3A020 = 08000009670808F9</action>
            <action>maincpu.mq@3A028 = 000900061E340800</action>
            <action>maincpu.mq@3A030 = 000D670808F9000D</action>
            <action>maincpu.mq@3A038 = 00061E3482790006</action>
            <action>maincpu.mq@3A040 = 1E344E75FFFFFFFF</action>
            <!--
            3A020 | 0800 0009           : btst    #$9, D0
            3A024 | 6708                : beq     $3a02e
            3A026 | 08F9 0009 0006 1E34 : bset    #$9, $61e34.l // player 1
            3A02E | 0800 000D           : btst    #$d, D0
            3A032 | 6708                : beq     $3a03c
            3A034 | 08F9 000D 0006 1E34 : bset    #$d, $61e34.l // player 2
            3A03C | 8279 0006 1E34      : or.w    $61e34.l, D1
            3A042 | 4E75                : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.mq@0975A = 827900061E34C041</action>
            <action>maincpu.mq@3A020 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A028 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A030 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A038 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A040 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0100">02       </item>
            <item value="0x0200">03       </item>
            <item value="0x0300">04       </item>
            <item value="0x0400">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@B700 =  param</action> <!-- right -->
            <action>maincpu.mw@B704 = -param</action> <!-- left -->
            <action>maincpu.mw@B978 =  param</action> <!-- up -->
            <action>maincpu.mw@B97A = -param</action> <!-- down -->
        </script>
        <script state="off">
            <action>maincpu.mw@B700 = 0100</action>
            <action>maincpu.mw@B704 = FF00</action>
            <action>maincpu.mw@B978 = 0060</action>
            <action>maincpu.mw@B97A = FFA0</action>
        </script>
    </cheat>

    <cheat desc="attack speed up">
        <script state="on">
            <action>maincpu.mq@0BFF4 = 4EB90003A0501D51</action>
            <action>maincpu.mq@3A050 = C019BDFC00061E90</action>
            <action>maincpu.mq@3A058 = 6708BDFC00061ED0</action>
            <action>maincpu.mq@3A060 = 660A0C2E000F000A</action>
            <action>maincpu.mq@3A068 = 660242001D40001A</action>
            <action>maincpu.mq@3A070 = 4E75FFFFFFFFFFFF</action>
            <!--
            3A050 | C019           : and.b   (A1)+, D0
            3A052 | BDFC 0006 1E90 : cmpa.l  #$61e90, A6  // player 1
            3A058 | 6708           : beq     $3a062
            3A05A | BDFC 0006 1ED0 : cmpa.l  #$61ed0, A6  // player 2
            3A060 | 660A           : bne     $3a06c
            3A062 | 0C2E 000F 000A : cmpi.b  #$f, ($a,A6)
            3A068 | 6602           : bne     $3a06c
            3A06A | 4200           : clr.b   D0
            3A06C | 1D40 001A      : move.b  D0, ($1a,A6)
            3A070 | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.mq@0BFF4 = C0191D40001A1D51</action>
            <action>maincpu.mq@3A050 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A058 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A060 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A068 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A070 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="timer speed">
        <parameter>
            <item value="0x00ff">01 (slow)</item>
            <item value="0x0080">02       </item>
            <item value="0x0040">03       </item>
            <item value="0x0020">04       </item>
            <item value="0x0001">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@24A8 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@24A8 = 0080</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mb@005BA = 60              </action> <!-- disable warning sound -->
            <action>maincpu.mq@0063E = 4EF90003A080227C</action>
            <action>maincpu.mq@3A080 = 41F90006000043F9</action>
            <action>maincpu.mq@3A088 = 0007A80312001029</action>
            <action>maincpu.mq@3A090 = F800B20067F60C00</action>
            <action>maincpu.mq@3A098 = 00FE660253100C00</action>
            <action>maincpu.mq@3A0A0 = 00FD660252100C00</action>
            <action>maincpu.mq@3A0A8 = 00FB660404100010</action>
            <action>maincpu.mq@3A0B0 = 0C0000F766040610</action>
            <action>maincpu.mq@3A0B8 = 00100C0000EF6602</action>
            <action>maincpu.mq@3A0C0 = 12900C0000DF6604</action>
            <action>maincpu.mq@3A0C8 = 12BC00FF60BEFFFF</action>
            <!--
            3A080 | 41F9 0006 0000 : lea     $60000.l, A0   // sound code address
            3A086 | 43F9 0007 A803 : lea     $7a803.l, A1   // sound latch address
            3A08C | 1200           : move.b  D0, D1
            3A08E | 1029 F800      : move.b  (-$800,A1), D0 // read input ($7a003)
            3A092 | B200           : cmp.b   D0, D1
            3A094 | 67F6           : beq     $3a08c
            3A096 | 0C00 00FE      : cmpi.b  #-$2, D0
            3A09A | 6602           : bne     $3a09e
            3A09C | 5310           : subq.b  #1, (A0)       // decrease code -01
            3A09E | 0C00 00FD      : cmpi.b  #-$3, D0
            3A0A2 | 6602           : bne     $3a0a6
            3A0A4 | 5210           : addq.b  #1, (A0)       // increase code +01
            3A0A6 | 0C00 00FB      : cmpi.b  #-$5, D0
            3A0AA | 6604           : bne     $3a0b0
            3A0AC | 0410 0010      : subi.b  #$10, (A0)     // decrease code -10
            3A0B0 | 0C00 00F7      : cmpi.b  #-$9, D0
            3A0B4 | 6604           : bne     $3a0ba
            3A0B6 | 0610 0010      : addi.b  #$10, (A0)     // increase code +10
            3A0BA | 0C00 00EF      : cmpi.b  #-$11, D0
            3A0BE | 6602           : bne     $3a0c2
            3A0C0 | 1290           : move.b  (A0), (A1)     // play sound
            3A0C2 | 0C00 00DF      : cmpi.b  #-$21, D0
            3A0C6 | 6604           : bne     $3a0cc
            3A0C8 | 12BC 00FF      : move.b  #$ff, (A1)     // stop sound
            3A0CC | 60BE           : bra     $3a08c
            -->
        </script>
        <script state="run">
            <output format="----- shadow warriors 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@60000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mb@005BA = 67              </action>
            <action>maincpu.mq@0063E = 207C00060384227C</action>
            <action>maincpu.mq@3A080 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A088 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A090 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A098 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A0A0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A0A8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A0B0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A0B8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A0C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A0C8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@04D0 = 603C</action> <!-- ram -->
            <action>maincpu.mw@0532 = 6024</action> <!-- rom -->
            <action>maincpu.mw@0562 = 6000</action> <!-- other rams -->
        </script>
        <script state="off">
            <action>maincpu.mw@04D0 = 207C</action>
            <action>maincpu.mw@0532 = 207C</action>
            <action>maincpu.mw@0562 = 6700</action>
        </script>
    </cheat>

</mamecheat>
shadowwa.xml

Code: Select all

<!-- Shadow Warriors (World, set 2) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <!-- attack -->
            <action>maincpu.mw@E0D8 = 0E32</action>
            <!-- sword attack -->
            <action>maincpu.mq@0E198 = 4EB90003A0006720</action>
            <action>maincpu.mq@3A000 = BBFC00061E906708</action>
            <action>maincpu.mq@3A008 = BBFC00061ED06604</action>
            <action>maincpu.mq@3A010 = 42404E754EB90000</action>
            <action>maincpu.mq@3A018 = EDE84A404E75FFFF</action>
            <!--
            3A000 | BBFC 0006 1E90 : cmpa.l  #$61e90, A5 // player 1
            3A006 | 6708           : beq     $3a010
            3A008 | BBFC 0006 1ED0 : cmpa.l  #$61ed0, A5 // player 2
            3A00E | 6604           : bne     $3a014
            3A010 | 4240           : clr.w   D0
            3A012 | 4E75           : rts
            3A014 | 4EB9 0000 EDE8 : jsr     $ede8.l
            3A01A | 4A40           : tst.w   D0
            3A01C | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.mw@0E0D8 = 0D10            </action>
            <action>maincpu.mq@0E198 = 61000C4E4A406720</action>
            <action>maincpu.mq@3A000 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A008 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A010 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A018 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mq@0975A = 4EB90003A020C041</action>
            <action>maincpu.mq@3A020 = 08000009670808F9</action>
            <action>maincpu.mq@3A028 = 000900061E340800</action>
            <action>maincpu.mq@3A030 = 000D670808F9000D</action>
            <action>maincpu.mq@3A038 = 00061E3482790006</action>
            <action>maincpu.mq@3A040 = 1E344E75FFFFFFFF</action>
            <!--
            3A020 | 0800 0009           : btst    #$9, D0
            3A024 | 6708                : beq     $3a02e
            3A026 | 08F9 0009 0006 1E34 : bset    #$9, $61e34.l // player 1
            3A02E | 0800 000D           : btst    #$d, D0
            3A032 | 6708                : beq     $3a03c
            3A034 | 08F9 000D 0006 1E34 : bset    #$d, $61e34.l // player 2
            3A03C | 8279 0006 1E34      : or.w    $61e34.l, D1
            3A042 | 4E75                : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.mq@0975A = 827900061E34C041</action>
            <action>maincpu.mq@3A020 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A028 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A030 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A038 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A040 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0100">02       </item>
            <item value="0x0200">03       </item>
            <item value="0x0300">04       </item>
            <item value="0x0400">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@B700 =  param</action> <!-- right -->
            <action>maincpu.mw@B704 = -param</action> <!-- left -->
            <action>maincpu.mw@B978 =  param</action> <!-- up -->
            <action>maincpu.mw@B97A = -param</action> <!-- down -->
        </script>
        <script state="off">
            <action>maincpu.mw@B700 = 0100</action>
            <action>maincpu.mw@B704 = FF00</action>
            <action>maincpu.mw@B978 = 0060</action>
            <action>maincpu.mw@B97A = FFA0</action>
        </script>
    </cheat>

    <cheat desc="attack speed up">
        <script state="on">
            <action>maincpu.mq@0BFF4 = 4EB90003A0501D51</action>
            <action>maincpu.mq@3A050 = C019BDFC00061E90</action>
            <action>maincpu.mq@3A058 = 6708BDFC00061ED0</action>
            <action>maincpu.mq@3A060 = 660A0C2E000F000A</action>
            <action>maincpu.mq@3A068 = 660242001D40001A</action>
            <action>maincpu.mq@3A070 = 4E75FFFFFFFFFFFF</action>
            <!--
            3A050 | C019           : and.b   (A1)+, D0
            3A052 | BDFC 0006 1E90 : cmpa.l  #$61e90, A6  // player 1
            3A058 | 6708           : beq     $3a062
            3A05A | BDFC 0006 1ED0 : cmpa.l  #$61ed0, A6  // player 2
            3A060 | 660A           : bne     $3a06c
            3A062 | 0C2E 000F 000A : cmpi.b  #$f, ($a,A6)
            3A068 | 6602           : bne     $3a06c
            3A06A | 4200           : clr.b   D0
            3A06C | 1D40 001A      : move.b  D0, ($1a,A6)
            3A070 | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.mq@0BFF4 = C0191D40001A1D51</action>
            <action>maincpu.mq@3A050 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A058 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A060 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A068 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A070 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="timer speed">
        <parameter>
            <item value="0x00ff">01 (slow)</item>
            <item value="0x0080">02       </item>
            <item value="0x0040">03       </item>
            <item value="0x0020">04       </item>
            <item value="0x0001">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@24A8 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@24A8 = 0080</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mb@005BA = 60              </action> <!-- disable warning sound -->
            <action>maincpu.mq@0063E = 4EF90003A080227C</action>
            <action>maincpu.mq@3A080 = 41F90006000043F9</action>
            <action>maincpu.mq@3A088 = 0007A80312001029</action>
            <action>maincpu.mq@3A090 = F800B20067F60C00</action>
            <action>maincpu.mq@3A098 = 00FE660253100C00</action>
            <action>maincpu.mq@3A0A0 = 00FD660252100C00</action>
            <action>maincpu.mq@3A0A8 = 00FB660404100010</action>
            <action>maincpu.mq@3A0B0 = 0C0000F766040610</action>
            <action>maincpu.mq@3A0B8 = 00100C0000EF6602</action>
            <action>maincpu.mq@3A0C0 = 12900C0000DF6604</action>
            <action>maincpu.mq@3A0C8 = 12BC00FF60BEFFFF</action>
            <!--
            3A080 | 41F9 0006 0000 : lea     $60000.l, A0   // sound code address
            3A086 | 43F9 0007 A803 : lea     $7a803.l, A1   // sound latch address
            3A08C | 1200           : move.b  D0, D1
            3A08E | 1029 F800      : move.b  (-$800,A1), D0 // read input ($7a003)
            3A092 | B200           : cmp.b   D0, D1
            3A094 | 67F6           : beq     $3a08c
            3A096 | 0C00 00FE      : cmpi.b  #-$2, D0
            3A09A | 6602           : bne     $3a09e
            3A09C | 5310           : subq.b  #1, (A0)       // decrease code -01
            3A09E | 0C00 00FD      : cmpi.b  #-$3, D0
            3A0A2 | 6602           : bne     $3a0a6
            3A0A4 | 5210           : addq.b  #1, (A0)       // increase code +01
            3A0A6 | 0C00 00FB      : cmpi.b  #-$5, D0
            3A0AA | 6604           : bne     $3a0b0
            3A0AC | 0410 0010      : subi.b  #$10, (A0)     // decrease code -10
            3A0B0 | 0C00 00F7      : cmpi.b  #-$9, D0
            3A0B4 | 6604           : bne     $3a0ba
            3A0B6 | 0610 0010      : addi.b  #$10, (A0)     // increase code +10
            3A0BA | 0C00 00EF      : cmpi.b  #-$11, D0
            3A0BE | 6602           : bne     $3a0c2
            3A0C0 | 1290           : move.b  (A0), (A1)     // play sound
            3A0C2 | 0C00 00DF      : cmpi.b  #-$21, D0
            3A0C6 | 6604           : bne     $3a0cc
            3A0C8 | 12BC 00FF      : move.b  #$ff, (A1)     // stop sound
            3A0CC | 60BE           : bra     $3a08c
            -->
        </script>
        <script state="run">
            <output format="----- shadow warriors 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@60000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mb@005BA = 67              </action>
            <action>maincpu.mq@0063E = 207C00060384227C</action>
            <action>maincpu.mq@3A080 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A088 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A090 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A098 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A0A0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A0A8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A0B0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A0B8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A0C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A0C8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@04D0 = 603C</action> <!-- ram -->
            <action>maincpu.mw@0532 = 6024</action> <!-- rom -->
            <action>maincpu.mw@0562 = 6000</action> <!-- other rams -->
        </script>
        <script state="off">
            <action>maincpu.mw@04D0 = 207C</action>
            <action>maincpu.mw@0532 = 207C</action>
            <action>maincpu.mw@0562 = 6700</action>
        </script>
    </cheat>

</mamecheat>
gaiden.xml

Code: Select all

<!-- Ninja Gaiden (US) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <!-- attack -->
            <action>maincpu.mw@E0D4 = 0E32</action>
            <!-- sword attack -->
            <action>maincpu.mq@0E194 = 4EB90003A0006720</action>
            <action>maincpu.mq@3A000 = BBFC00061E906708</action>
            <action>maincpu.mq@3A008 = BBFC00061ED06604</action>
            <action>maincpu.mq@3A010 = 42404E754EB90000</action>
            <action>maincpu.mq@3A018 = EDE44A404E75FFFF</action>
            <!--
            3A000 | BBFC 0006 1E90 : cmpa.l  #$61e90, A5 // player 1
            3A006 | 6708           : beq     $3a010
            3A008 | BBFC 0006 1ED0 : cmpa.l  #$61ed0, A5 // player 2
            3A00E | 6604           : bne     $3a014
            3A010 | 4240           : clr.w   D0
            3A012 | 4E75           : rts
            3A014 | 4EB9 0000 EDE4 : jsr     $ede4.l
            3A01A | 4A40           : tst.w   D0
            3A01C | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.mw@0E0D4 = 0D10            </action>
            <action>maincpu.mq@0E194 = 61000C4E4A406720</action>
            <action>maincpu.mq@3A000 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A008 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A010 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A018 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mq@09756 = 4EB90003A020C041</action>
            <action>maincpu.mq@3A020 = 08000009670808F9</action>
            <action>maincpu.mq@3A028 = 000900061E340800</action>
            <action>maincpu.mq@3A030 = 000D670808F9000D</action>
            <action>maincpu.mq@3A038 = 00061E3482790006</action>
            <action>maincpu.mq@3A040 = 1E344E75FFFFFFFF</action>
            <!--
            3A020 | 0800 0009           : btst    #$9, D0
            3A024 | 6708                : beq     $3a02e
            3A026 | 08F9 0009 0006 1E34 : bset    #$9, $61e34.l // player 1
            3A02E | 0800 000D           : btst    #$d, D0
            3A032 | 6708                : beq     $3a03c
            3A034 | 08F9 000D 0006 1E34 : bset    #$d, $61e34.l // player 2
            3A03C | 8279 0006 1E34      : or.w    $61e34.l, D1
            3A042 | 4E75                : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.mq@09756 = 827900061E34C041</action>
            <action>maincpu.mq@3A020 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A028 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A030 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A038 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A040 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0100">02       </item>
            <item value="0x0200">03       </item>
            <item value="0x0300">04       </item>
            <item value="0x0400">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@B6FC =  param</action> <!-- right -->
            <action>maincpu.mw@B700 = -param</action> <!-- left -->
            <action>maincpu.mw@B974 =  param</action> <!-- up -->
            <action>maincpu.mw@B976 = -param</action> <!-- down -->
        </script>
        <script state="off">
            <action>maincpu.mw@B6FC = 0100</action>
            <action>maincpu.mw@B700 = FF00</action>
            <action>maincpu.mw@B974 = 0060</action>
            <action>maincpu.mw@B976 = FFA0</action>
        </script>
    </cheat>

    <cheat desc="attack speed up">
        <script state="on">
            <action>maincpu.mq@0BFF0 = 4EB90003A0501D51</action>
            <action>maincpu.mq@3A050 = C019BDFC00061E90</action>
            <action>maincpu.mq@3A058 = 6708BDFC00061ED0</action>
            <action>maincpu.mq@3A060 = 660A0C2E000F000A</action>
            <action>maincpu.mq@3A068 = 660242001D40001A</action>
            <action>maincpu.mq@3A070 = 4E75FFFFFFFFFFFF</action>
            <!--
            3A050 | C019           : and.b   (A1)+, D0
            3A052 | BDFC 0006 1E90 : cmpa.l  #$61e90, A6  // player 1
            3A058 | 6708           : beq     $3a062
            3A05A | BDFC 0006 1ED0 : cmpa.l  #$61ed0, A6  // player 2
            3A060 | 660A           : bne     $3a06c
            3A062 | 0C2E 000F 000A : cmpi.b  #$f, ($a,A6)
            3A068 | 6602           : bne     $3a06c
            3A06A | 4200           : clr.b   D0
            3A06C | 1D40 001A      : move.b  D0, ($1a,A6)
            3A070 | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.mq@0BFF0 = C0191D40001A1D51</action>
            <action>maincpu.mq@3A050 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A058 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A060 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A068 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A070 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="timer speed">
        <parameter>
            <item value="0x00ff">01 (slow)</item>
            <item value="0x0080">02       </item>
            <item value="0x0040">03       </item>
            <item value="0x0020">04       </item>
            <item value="0x0001">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@24A4 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@24A4 = 0080</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mb@005BA = 60              </action> <!-- disable warning sound -->
            <action>maincpu.mq@0063E = 4EF90003A080227C</action>
            <action>maincpu.mq@3A080 = 41F90006000043F9</action>
            <action>maincpu.mq@3A088 = 0007A80312001029</action>
            <action>maincpu.mq@3A090 = F800B20067F60C00</action>
            <action>maincpu.mq@3A098 = 00FE660253100C00</action>
            <action>maincpu.mq@3A0A0 = 00FD660252100C00</action>
            <action>maincpu.mq@3A0A8 = 00FB660404100010</action>
            <action>maincpu.mq@3A0B0 = 0C0000F766040610</action>
            <action>maincpu.mq@3A0B8 = 00100C0000EF6602</action>
            <action>maincpu.mq@3A0C0 = 12900C0000DF6604</action>
            <action>maincpu.mq@3A0C8 = 12BC00FF60BEFFFF</action>
            <!--
            3A080 | 41F9 0006 0000 : lea     $60000.l, A0   // sound code address
            3A086 | 43F9 0007 A803 : lea     $7a803.l, A1   // sound latch address
            3A08C | 1200           : move.b  D0, D1
            3A08E | 1029 F800      : move.b  (-$800,A1), D0 // read input ($7a003)
            3A092 | B200           : cmp.b   D0, D1
            3A094 | 67F6           : beq     $3a08c
            3A096 | 0C00 00FE      : cmpi.b  #-$2, D0
            3A09A | 6602           : bne     $3a09e
            3A09C | 5310           : subq.b  #1, (A0)       // decrease code -01
            3A09E | 0C00 00FD      : cmpi.b  #-$3, D0
            3A0A2 | 6602           : bne     $3a0a6
            3A0A4 | 5210           : addq.b  #1, (A0)       // increase code +01
            3A0A6 | 0C00 00FB      : cmpi.b  #-$5, D0
            3A0AA | 6604           : bne     $3a0b0
            3A0AC | 0410 0010      : subi.b  #$10, (A0)     // decrease code -10
            3A0B0 | 0C00 00F7      : cmpi.b  #-$9, D0
            3A0B4 | 6604           : bne     $3a0ba
            3A0B6 | 0610 0010      : addi.b  #$10, (A0)     // increase code +10
            3A0BA | 0C00 00EF      : cmpi.b  #-$11, D0
            3A0BE | 6602           : bne     $3a0c2
            3A0C0 | 1290           : move.b  (A0), (A1)     // play sound
            3A0C2 | 0C00 00DF      : cmpi.b  #-$21, D0
            3A0C6 | 6604           : bne     $3a0cc
            3A0C8 | 12BC 00FF      : move.b  #$ff, (A1)     // stop sound
            3A0CC | 60BE           : bra     $3a08c
            -->
        </script>
        <script state="run">
            <output format="----- ninja gaiden 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@60000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mb@005BA = 67              </action>
            <action>maincpu.mq@0063E = 207C00060384227C</action>
            <action>maincpu.mq@3A080 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A088 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A090 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A098 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A0A0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A0A8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A0B0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A0B8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A0C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A0C8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@04D0 = 603C</action> <!-- ram -->
            <action>maincpu.mw@0532 = 6024</action> <!-- rom -->
            <action>maincpu.mw@0562 = 6000</action> <!-- other rams -->
        </script>
        <script state="off">
            <action>maincpu.mw@04D0 = 207C</action>
            <action>maincpu.mw@0532 = 207C</action>
            <action>maincpu.mw@0562 = 6700</action>
        </script>
    </cheat>

</mamecheat>
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[shadoww]+ Shadow Warriors/Ninja Ryukenden

Post by jman »

ryukendn.xml

Code: Select all

<!-- Ninja Ryukenden (Japan, set 1) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <!-- attack -->
            <action>maincpu.mw@E09C = 0E32</action>
            <!-- sword attack -->
            <action>maincpu.mq@0E15C = 4EB90003A0006720</action>
            <action>maincpu.mq@3A000 = BBFC00061E906708</action>
            <action>maincpu.mq@3A008 = BBFC00061ED06604</action>
            <action>maincpu.mq@3A010 = 42404E754EB90000</action>
            <action>maincpu.mq@3A018 = EDAC4A404E75FFFF</action>
            <!--
            3A000 | BBFC 0006 1E90 : cmpa.l  #$61e90, A5 // player 1
            3A006 | 6708           : beq     $3a010
            3A008 | BBFC 0006 1ED0 : cmpa.l  #$61ed0, A5 // player 2
            3A00E | 6604           : bne     $3a014
            3A010 | 4240           : clr.w   D0
            3A012 | 4E75           : rts
            3A014 | 4EB9 0000 EDAC : jsr     $edac.l
            3A01A | 4A40           : tst.w   D0
            3A01C | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.mw@0E09C = 0D10            </action>
            <action>maincpu.mq@0E15C = 61000C4E4A406720</action>
            <action>maincpu.mq@3A000 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A008 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A010 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A018 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mq@0971E = 4EB90003A020C041</action>
            <action>maincpu.mq@3A020 = 08000009670808F9</action>
            <action>maincpu.mq@3A028 = 000900061E340800</action>
            <action>maincpu.mq@3A030 = 000D670808F9000D</action>
            <action>maincpu.mq@3A038 = 00061E3482790006</action>
            <action>maincpu.mq@3A040 = 1E344E75FFFFFFFF</action>
            <!--
            3A020 | 0800 0009           : btst    #$9, D0
            3A024 | 6708                : beq     $3a02e
            3A026 | 08F9 0009 0006 1E34 : bset    #$9, $61e34.l // player 1
            3A02E | 0800 000D           : btst    #$d, D0
            3A032 | 6708                : beq     $3a03c
            3A034 | 08F9 000D 0006 1E34 : bset    #$d, $61e34.l // player 2
            3A03C | 8279 0006 1E34      : or.w    $61e34.l, D1
            3A042 | 4E75                : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.mq@0971E = 827900061E34C041</action>
            <action>maincpu.mq@3A020 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A028 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A030 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A038 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A040 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0100">02       </item>
            <item value="0x0200">03       </item>
            <item value="0x0300">04       </item>
            <item value="0x0400">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@B6C4 =  param</action> <!-- right -->
            <action>maincpu.mw@B6C8 = -param</action> <!-- left -->
            <action>maincpu.mw@B93C =  param</action> <!-- up -->
            <action>maincpu.mw@B93E = -param</action> <!-- down -->
        </script>
        <script state="off">
            <action>maincpu.mw@B6C4 = 0100</action>
            <action>maincpu.mw@B6C8 = FF00</action>
            <action>maincpu.mw@B93C = 0060</action>
            <action>maincpu.mw@B93E = FFA0</action>
        </script>
    </cheat>

    <cheat desc="attack speed up">
        <script state="on">
            <action>maincpu.mq@0BFB8 = 4EB90003A0501D51</action>
            <action>maincpu.mq@3A050 = C019BDFC00061E90</action>
            <action>maincpu.mq@3A058 = 6708BDFC00061ED0</action>
            <action>maincpu.mq@3A060 = 660A0C2E000F000A</action>
            <action>maincpu.mq@3A068 = 660242001D40001A</action>
            <action>maincpu.mq@3A070 = 4E75FFFFFFFFFFFF</action>
            <!--
            3A050 | C019           : and.b   (A1)+, D0
            3A052 | BDFC 0006 1E90 : cmpa.l  #$61e90, A6  // player 1
            3A058 | 6708           : beq     $3a062
            3A05A | BDFC 0006 1ED0 : cmpa.l  #$61ed0, A6  // player 2
            3A060 | 660A           : bne     $3a06c
            3A062 | 0C2E 000F 000A : cmpi.b  #$f, ($a,A6)
            3A068 | 6602           : bne     $3a06c
            3A06A | 4200           : clr.b   D0
            3A06C | 1D40 001A      : move.b  D0, ($1a,A6)
            3A070 | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.mq@0BFB8 = C0191D40001A1D51</action>
            <action>maincpu.mq@3A050 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A058 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A060 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A068 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A070 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="timer speed">
        <parameter>
            <item value="0x00ff">01 (slow)</item>
            <item value="0x0080">02       </item>
            <item value="0x0040">03       </item>
            <item value="0x0020">04       </item>
            <item value="0x0001">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@246C = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@246C = 0080</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mb@005BA = 60              </action> <!-- disable warning sound -->
            <action>maincpu.mq@0063E = 4EF90003A080227C</action>
            <action>maincpu.mq@3A080 = 41F90006000043F9</action>
            <action>maincpu.mq@3A088 = 0007A80312001029</action>
            <action>maincpu.mq@3A090 = F800B20067F60C00</action>
            <action>maincpu.mq@3A098 = 00FE660253100C00</action>
            <action>maincpu.mq@3A0A0 = 00FD660252100C00</action>
            <action>maincpu.mq@3A0A8 = 00FB660404100010</action>
            <action>maincpu.mq@3A0B0 = 0C0000F766040610</action>
            <action>maincpu.mq@3A0B8 = 00100C0000EF6602</action>
            <action>maincpu.mq@3A0C0 = 12900C0000DF6604</action>
            <action>maincpu.mq@3A0C8 = 12BC00FF60BEFFFF</action>
            <!--
            3A080 | 41F9 0006 0000 : lea     $60000.l, A0   // sound code address
            3A086 | 43F9 0007 A803 : lea     $7a803.l, A1   // sound latch address
            3A08C | 1200           : move.b  D0, D1
            3A08E | 1029 F800      : move.b  (-$800,A1), D0 // read input ($7a003)
            3A092 | B200           : cmp.b   D0, D1
            3A094 | 67F6           : beq     $3a08c
            3A096 | 0C00 00FE      : cmpi.b  #-$2, D0
            3A09A | 6602           : bne     $3a09e
            3A09C | 5310           : subq.b  #1, (A0)       // decrease code -01
            3A09E | 0C00 00FD      : cmpi.b  #-$3, D0
            3A0A2 | 6602           : bne     $3a0a6
            3A0A4 | 5210           : addq.b  #1, (A0)       // increase code +01
            3A0A6 | 0C00 00FB      : cmpi.b  #-$5, D0
            3A0AA | 6604           : bne     $3a0b0
            3A0AC | 0410 0010      : subi.b  #$10, (A0)     // decrease code -10
            3A0B0 | 0C00 00F7      : cmpi.b  #-$9, D0
            3A0B4 | 6604           : bne     $3a0ba
            3A0B6 | 0610 0010      : addi.b  #$10, (A0)     // increase code +10
            3A0BA | 0C00 00EF      : cmpi.b  #-$11, D0
            3A0BE | 6602           : bne     $3a0c2
            3A0C0 | 1290           : move.b  (A0), (A1)     // play sound
            3A0C2 | 0C00 00DF      : cmpi.b  #-$21, D0
            3A0C6 | 6604           : bne     $3a0cc
            3A0C8 | 12BC 00FF      : move.b  #$ff, (A1)     // stop sound
            3A0CC | 60BE           : bra     $3a08c
            -->
        </script>
        <script state="run">
            <output format="----- ninja ryukenden 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@60000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mb@005BA = 67              </action>
            <action>maincpu.mq@0063E = 207C00060384227C</action>
            <action>maincpu.mq@3A080 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A088 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A090 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A098 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A0A0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A0A8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A0B0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A0B8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A0C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A0C8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@04D0 = 603C</action> <!-- ram -->
            <action>maincpu.mw@0532 = 6024</action> <!-- rom -->
            <action>maincpu.mw@0562 = 6000</action> <!-- other rams -->
        </script>
        <script state="off">
            <action>maincpu.mw@04D0 = 207C</action>
            <action>maincpu.mw@0532 = 207C</action>
            <action>maincpu.mw@0562 = 6700</action>
        </script>
    </cheat>

</mamecheat>
ryukendna.xml

Code: Select all

<!-- Ninja Ryukenden (Japan, set 2) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <!-- attack -->
            <action>maincpu.mw@E09C = 0E32</action>
            <!-- sword attack -->
            <action>maincpu.mq@0E15C = 4EB90003A0006720</action>
            <action>maincpu.mq@3A000 = BBFC00061E906708</action>
            <action>maincpu.mq@3A008 = BBFC00061ED06604</action>
            <action>maincpu.mq@3A010 = 42404E754EB90000</action>
            <action>maincpu.mq@3A018 = EDAC4A404E75FFFF</action>
            <!--
            3A000 | BBFC 0006 1E90 : cmpa.l  #$61e90, A5 // player 1
            3A006 | 6708           : beq     $3a010
            3A008 | BBFC 0006 1ED0 : cmpa.l  #$61ed0, A5 // player 2
            3A00E | 6604           : bne     $3a014
            3A010 | 4240           : clr.w   D0
            3A012 | 4E75           : rts
            3A014 | 4EB9 0000 EDAC : jsr     $edac.l
            3A01A | 4A40           : tst.w   D0
            3A01C | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.mw@0E09C = 0D10            </action>
            <action>maincpu.mq@0E15C = 61000C4E4A406720</action>
            <action>maincpu.mq@3A000 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A008 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A010 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A018 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mq@0971E = 4EB90003A020C041</action>
            <action>maincpu.mq@3A020 = 08000009670808F9</action>
            <action>maincpu.mq@3A028 = 000900061E340800</action>
            <action>maincpu.mq@3A030 = 000D670808F9000D</action>
            <action>maincpu.mq@3A038 = 00061E3482790006</action>
            <action>maincpu.mq@3A040 = 1E344E75FFFFFFFF</action>
            <!--
            3A020 | 0800 0009           : btst    #$9, D0
            3A024 | 6708                : beq     $3a02e
            3A026 | 08F9 0009 0006 1E34 : bset    #$9, $61e34.l // player 1
            3A02E | 0800 000D           : btst    #$d, D0
            3A032 | 6708                : beq     $3a03c
            3A034 | 08F9 000D 0006 1E34 : bset    #$d, $61e34.l // player 2
            3A03C | 8279 0006 1E34      : or.w    $61e34.l, D1
            3A042 | 4E75                : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.mq@0971E = 827900061E34C041</action>
            <action>maincpu.mq@3A020 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A028 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A030 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A038 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A040 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0100">02       </item>
            <item value="0x0200">03       </item>
            <item value="0x0300">04       </item>
            <item value="0x0400">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@B6C4 =  param</action> <!-- right -->
            <action>maincpu.mw@B6C8 = -param</action> <!-- left -->
            <action>maincpu.mw@B93C =  param</action> <!-- up -->
            <action>maincpu.mw@B93E = -param</action> <!-- down -->
        </script>
        <script state="off">
            <action>maincpu.mw@B6C4 = 0100</action>
            <action>maincpu.mw@B6C8 = FF00</action>
            <action>maincpu.mw@B93C = 0060</action>
            <action>maincpu.mw@B93E = FFA0</action>
        </script>
    </cheat>

    <cheat desc="attack speed up">
        <script state="on">
            <action>maincpu.mq@0BFB8 = 4EB90003A0501D51</action>
            <action>maincpu.mq@3A050 = C019BDFC00061E90</action>
            <action>maincpu.mq@3A058 = 6708BDFC00061ED0</action>
            <action>maincpu.mq@3A060 = 660A0C2E000F000A</action>
            <action>maincpu.mq@3A068 = 660242001D40001A</action>
            <action>maincpu.mq@3A070 = 4E75FFFFFFFFFFFF</action>
            <!--
            3A050 | C019           : and.b   (A1)+, D0
            3A052 | BDFC 0006 1E90 : cmpa.l  #$61e90, A6  // player 1
            3A058 | 6708           : beq     $3a062
            3A05A | BDFC 0006 1ED0 : cmpa.l  #$61ed0, A6  // player 2
            3A060 | 660A           : bne     $3a06c
            3A062 | 0C2E 000F 000A : cmpi.b  #$f, ($a,A6)
            3A068 | 6602           : bne     $3a06c
            3A06A | 4200           : clr.b   D0
            3A06C | 1D40 001A      : move.b  D0, ($1a,A6)
            3A070 | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.mq@0BFB8 = C0191D40001A1D51</action>
            <action>maincpu.mq@3A050 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A058 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A060 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A068 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A070 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="timer speed">
        <parameter>
            <item value="0x00ff">01 (slow)</item>
            <item value="0x0080">02       </item>
            <item value="0x0040">03       </item>
            <item value="0x0020">04       </item>
            <item value="0x0001">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@246C = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@246C = 0080</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mb@005BA = 60              </action> <!-- disable warning sound -->
            <action>maincpu.mq@0063E = 4EF90003A080227C</action>
            <action>maincpu.mq@3A080 = 41F90006000043F9</action>
            <action>maincpu.mq@3A088 = 0007A80312001029</action>
            <action>maincpu.mq@3A090 = F800B20067F60C00</action>
            <action>maincpu.mq@3A098 = 00FE660253100C00</action>
            <action>maincpu.mq@3A0A0 = 00FD660252100C00</action>
            <action>maincpu.mq@3A0A8 = 00FB660404100010</action>
            <action>maincpu.mq@3A0B0 = 0C0000F766040610</action>
            <action>maincpu.mq@3A0B8 = 00100C0000EF6602</action>
            <action>maincpu.mq@3A0C0 = 12900C0000DF6604</action>
            <action>maincpu.mq@3A0C8 = 12BC00FF60BEFFFF</action>
            <!--
            3A080 | 41F9 0006 0000 : lea     $60000.l, A0   // sound code address
            3A086 | 43F9 0007 A803 : lea     $7a803.l, A1   // sound latch address
            3A08C | 1200           : move.b  D0, D1
            3A08E | 1029 F800      : move.b  (-$800,A1), D0 // read input ($7a003)
            3A092 | B200           : cmp.b   D0, D1
            3A094 | 67F6           : beq     $3a08c
            3A096 | 0C00 00FE      : cmpi.b  #-$2, D0
            3A09A | 6602           : bne     $3a09e
            3A09C | 5310           : subq.b  #1, (A0)       // decrease code -01
            3A09E | 0C00 00FD      : cmpi.b  #-$3, D0
            3A0A2 | 6602           : bne     $3a0a6
            3A0A4 | 5210           : addq.b  #1, (A0)       // increase code +01
            3A0A6 | 0C00 00FB      : cmpi.b  #-$5, D0
            3A0AA | 6604           : bne     $3a0b0
            3A0AC | 0410 0010      : subi.b  #$10, (A0)     // decrease code -10
            3A0B0 | 0C00 00F7      : cmpi.b  #-$9, D0
            3A0B4 | 6604           : bne     $3a0ba
            3A0B6 | 0610 0010      : addi.b  #$10, (A0)     // increase code +10
            3A0BA | 0C00 00EF      : cmpi.b  #-$11, D0
            3A0BE | 6602           : bne     $3a0c2
            3A0C0 | 1290           : move.b  (A0), (A1)     // play sound
            3A0C2 | 0C00 00DF      : cmpi.b  #-$21, D0
            3A0C6 | 6604           : bne     $3a0cc
            3A0C8 | 12BC 00FF      : move.b  #$ff, (A1)     // stop sound
            3A0CC | 60BE           : bra     $3a08c
            -->
        </script>
        <script state="run">
            <output format="----- ninja ryukenden 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@60000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mb@005BA = 67              </action>
            <action>maincpu.mq@0063E = 207C00060384227C</action>
            <action>maincpu.mq@3A080 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A088 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A090 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A098 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A0A0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A0A8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A0B0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A0B8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A0C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3A0C8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@04D0 = 603C</action> <!-- ram -->
            <action>maincpu.mw@0532 = 6024</action> <!-- rom -->
            <action>maincpu.mw@0562 = 6000</action> <!-- other rams -->
        </script>
        <script state="off">
            <action>maincpu.mw@04D0 = 207C</action>
            <action>maincpu.mw@0532 = 207C</action>
            <action>maincpu.mw@0562 = 6700</action>
        </script>
    </cheat>

</mamecheat>
mastninj.xml

Code: Select all

<!-- Master Ninja (bootleg of Shadow Warriors / Ninja Gaiden) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <!-- attack -->
            <action>maincpu.mw@E0D8 = 0E32</action>
            <!-- sword attack -->
            <action>maincpu.mq@0E198 = 4EB90003A0006720</action>
            <action>maincpu.mq@3A000 = BBFC00061E906708</action>
            <action>maincpu.mq@3A008 = BBFC00061ED06604</action>
            <action>maincpu.mq@3A010 = 42404E754EB90000</action>
            <action>maincpu.mq@3A018 = EDE84A404E75FFFF</action>
            <!--
            3A000 | BBFC 0006 1E90 : cmpa.l  #$61e90, A5 // player 1
            3A006 | 6708           : beq     $3a010
            3A008 | BBFC 0006 1ED0 : cmpa.l  #$61ed0, A5 // player 2
            3A00E | 6604           : bne     $3a014
            3A010 | 4240           : clr.w   D0
            3A012 | 4E75           : rts
            3A014 | 4EB9 0000 EDE8 : jsr     $ede8.l
            3A01A | 4A40           : tst.w   D0
            3A01C | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.mw@0E0D8 = 0D10            </action>
            <action>maincpu.mq@0E198 = 61000C4E4A406720</action>
            <action>maincpu.mq@3A000 = 05FF05FF05FF05FF</action>
            <action>maincpu.mq@3A008 = 05FF05FF05FF05FF</action>
            <action>maincpu.mq@3A010 = 05FF05FF05FF05FF</action>
            <action>maincpu.mq@3A018 = 05FF05FF05FF05FF</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mq@0975A = 4EB90003A020C041</action>
            <action>maincpu.mq@3A020 = 08000009670808F9</action>
            <action>maincpu.mq@3A028 = 000900061E340800</action>
            <action>maincpu.mq@3A030 = 000D670808F9000D</action>
            <action>maincpu.mq@3A038 = 00061E3482790006</action>
            <action>maincpu.mq@3A040 = 1E344E75FFFFFFFF</action>
            <!--
            3A020 | 0800 0009           : btst    #$9, D0
            3A024 | 6708                : beq     $3a02e
            3A026 | 08F9 0009 0006 1E34 : bset    #$9, $61e34.l // player 1
            3A02E | 0800 000D           : btst    #$d, D0
            3A032 | 6708                : beq     $3a03c
            3A034 | 08F9 000D 0006 1E34 : bset    #$d, $61e34.l // player 2
            3A03C | 8279 0006 1E34      : or.w    $61e34.l, D1
            3A042 | 4E75                : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.mq@0975A = 827900061E34C041</action>
            <action>maincpu.mq@3A020 = 05FF05FF05FF05FF</action>
            <action>maincpu.mq@3A028 = 06FF06FF06FF06FF</action>
            <action>maincpu.mq@3A030 = 06FF06FF06FF06FF</action>
            <action>maincpu.mq@3A038 = 06FF06FF06FF06FF</action>
            <action>maincpu.mq@3A040 = 06FF06FF06FF06FF</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0100">02       </item>
            <item value="0x0200">03       </item>
            <item value="0x0300">04       </item>
            <item value="0x0400">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@B700 =  param</action> <!-- right -->
            <action>maincpu.mw@B704 = -param</action> <!-- left -->
            <action>maincpu.mw@B978 =  param</action> <!-- up -->
            <action>maincpu.mw@B97A = -param</action> <!-- down -->
        </script>
        <script state="off">
            <action>maincpu.mw@B700 = 0100</action>
            <action>maincpu.mw@B704 = FF00</action>
            <action>maincpu.mw@B978 = 0060</action>
            <action>maincpu.mw@B97A = FFA0</action>
        </script>
    </cheat>

    <cheat desc="attack speed up">
        <script state="on">
            <action>maincpu.mq@0BFF4 = 4EB90003A0501D51</action>
            <action>maincpu.mq@3A050 = C019BDFC00061E90</action>
            <action>maincpu.mq@3A058 = 6708BDFC00061ED0</action>
            <action>maincpu.mq@3A060 = 660A0C2E000F000A</action>
            <action>maincpu.mq@3A068 = 660242001D40001A</action>
            <action>maincpu.mq@3A070 = 4E75FFFFFFFFFFFF</action>
            <!--
            3A050 | C019           : and.b   (A1)+, D0
            3A052 | BDFC 0006 1E90 : cmpa.l  #$61e90, A6  // player 1
            3A058 | 6708           : beq     $3a062
            3A05A | BDFC 0006 1ED0 : cmpa.l  #$61ed0, A6  // player 2
            3A060 | 660A           : bne     $3a06c
            3A062 | 0C2E 000F 000A : cmpi.b  #$f, ($a,A6)
            3A068 | 6602           : bne     $3a06c
            3A06A | 4200           : clr.b   D0
            3A06C | 1D40 001A      : move.b  D0, ($1a,A6)
            3A070 | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.mq@0BFF4 = C0191D40001A1D51</action>
            <action>maincpu.mq@3A050 = 06FF06FF06FF06FF</action>
            <action>maincpu.mq@3A058 = 07FF07FF07FF07FF</action>
            <action>maincpu.mq@3A060 = 07FF07FF07FF07FF</action>
            <action>maincpu.mq@3A068 = 07FF07FF07FF07FF</action>
            <action>maincpu.mq@3A070 = 07FF07FF07FF07FF</action>
        </script>
    </cheat>

    <cheat desc="timer speed">
        <parameter>
            <item value="0x00ff">01 (slow)</item>
            <item value="0x0080">02       </item>
            <item value="0x0040">03       </item>
            <item value="0x0020">04       </item>
            <item value="0x0001">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@24A8 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@24A8 = 0080</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mb@005BA = 60              </action> <!-- disable warning sound -->
            <action>maincpu.mq@0063E = 4EF90003A080227C</action>
            <action>maincpu.mq@3A080 = 41F90006000043F9</action>
            <action>maincpu.mq@3A088 = 0007A00E12001029</action>
            <action>maincpu.mq@3A090 = FFF5B20067F60C00</action>
            <action>maincpu.mq@3A098 = 00FE660253100C00</action>
            <action>maincpu.mq@3A0A0 = 00FD660252100C00</action>
            <action>maincpu.mq@3A0A8 = 00FB660404100010</action>
            <action>maincpu.mq@3A0B0 = 0C0000F766040610</action>
            <action>maincpu.mq@3A0B8 = 00100C0000EF6602</action>
            <action>maincpu.mq@3A0C0 = 12900C0000DF6604</action>
            <action>maincpu.mq@3A0C8 = 12BC00FF60BEFFFF</action>
            <!--
            3A080 | 41F9 0006 0000 : lea     $60000.l, A0   // sound code address
            3A086 | 43F9 0007 A00E : lea     $7a00e.l, A1   // sound latch address
            3A08C | 1200           : move.b  D0, D1
            3A08E | 1029 FFF5      : move.b  (-$b,A1), D0   // read input ($7a003)
            3A092 | B200           : cmp.b   D0, D1
            3A094 | 67F6           : beq     $3a08c
            3A096 | 0C00 00FE      : cmpi.b  #-$2, D0
            3A09A | 6602           : bne     $3a09e
            3A09C | 5310           : subq.b  #1, (A0)       // decrease code -01
            3A09E | 0C00 00FD      : cmpi.b  #-$3, D0
            3A0A2 | 6602           : bne     $3a0a6
            3A0A4 | 5210           : addq.b  #1, (A0)       // increase code +01
            3A0A6 | 0C00 00FB      : cmpi.b  #-$5, D0
            3A0AA | 6604           : bne     $3a0b0
            3A0AC | 0410 0010      : subi.b  #$10, (A0)     // decrease code -10
            3A0B0 | 0C00 00F7      : cmpi.b  #-$9, D0
            3A0B4 | 6604           : bne     $3a0ba
            3A0B6 | 0610 0010      : addi.b  #$10, (A0)     // increase code +10
            3A0BA | 0C00 00EF      : cmpi.b  #-$11, D0
            3A0BE | 6602           : bne     $3a0c2
            3A0C0 | 1290           : move.b  (A0), (A1)     // play sound
            3A0C2 | 0C00 00DF      : cmpi.b  #-$21, D0
            3A0C6 | 6604           : bne     $3a0cc
            3A0C8 | 12BC 00FF      : move.b  #$ff, (A1)     // stop sound
            3A0CC | 60BE           : bra     $3a08c
            -->
        </script>
        <script state="run">
            <output format="----- master ninja 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@60000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mb@005BA = 67              </action>
            <action>maincpu.mq@0063E = 207C00060384227C</action>
            <action>maincpu.mq@3A080 = 07FF07FF07FF07FF</action>
            <action>maincpu.mq@3A088 = 07FF07FF07FF07FF</action>
            <action>maincpu.mq@3A090 = 07FF07FF07FF07FF</action>
            <action>maincpu.mq@3A098 = 07FF07FF07FF07FF</action>
            <action>maincpu.mq@3A0A0 = 07FF08FF08FF08FF</action>
            <action>maincpu.mq@3A0A8 = 08FF08FF08FF08FF</action>
            <action>maincpu.mq@3A0B0 = 08FF08FF08FF08FF</action>
            <action>maincpu.mq@3A0B8 = 08FF08FF08FF08FF</action>
            <action>maincpu.mq@3A0C0 = 08FF08FF08FF08FF</action>
            <action>maincpu.mq@3A0C8 = 08FF08FF08FF08FF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@04D0 = 603C</action> <!-- ram -->
            <action>maincpu.mw@0532 = 6024</action> <!-- rom -->
            <action>maincpu.mw@0562 = 6000</action> <!-- other rams -->
        </script>
        <script state="off">
            <action>maincpu.mw@04D0 = 207C</action>
            <action>maincpu.mw@0532 = 207C</action>
            <action>maincpu.mw@0562 = 6700</action>
        </script>
    </cheat>

</mamecheat>
  • "player speed" : Added new.
  • "sound test mode" : Rewritten routine.
Post Reply