Page 1 of 1

[fjbuster] Shogun Warriors/Fujiyama Buster

Posted: Sat Dec 19, 2020 2:39 pm
by jman

Code: Select all

<cheat desc="no hit">
    <parameter>
        <item value="0x01">PL1         </item>
        <item value="0x02">PL2         </item>
        <item value="0x03">both players</item>
    </parameter>
    <script state="on">
        <!-- attack -->
        <action>maincpu.mq@0a3c2 = 4eb90003ff004ed0</action>
        <action>maincpu.mq@3ff00 = 41fa001e70012218</action>
        <action>maincpu.mq@3ff08 = 6706224108910007</action>
        <action>maincpu.mq@3ff10 = 51c8fff420790020</action>
        <action>maincpu.mq@3ff18 = 38024e7500000000</action>
        <!--
        3ff00 | 41fa 001e      : lea     ($1e,PC);($3ff20),A0
        3ff04 | 7001           : moveq   #$1,D0
        3ff06 | 2218           : move.l  (A0)+,D1
        3ff08 | 6706           : beq     $3ff10
        3ff0a | 2241           : movea.l D1,A1
        3ff0c | 0891 0007      : bclr    #$7,(A1)
        3ff10 | 51c8 fff4      : dbra    D0,$3ff06
        3ff14 | 2079 0020 3802 : movea.l $203802.l,A0
        3ff1a | 4e75           : rts
        3ff20 - 3ff27          : player table
        -->
        <!-- throw -->
        <action>maincpu.md@019a8 =         0003ff30</action>
        <action>maincpu.md@019e0 =         0003ff30</action>
        <action>maincpu.md@01a4e =         0003ff30</action>
        <action>maincpu.mq@3ff30 = 2f0841fa001c7401</action>
        <action>maincpu.mq@3ff38 = b7d8660670014241</action>
        <action>maincpu.mq@3ff40 = 600a51cafff44eb9</action>
        <action>maincpu.mq@3ff48 = 00004080205f4e75</action>
        <!--
        3ff30 | 2f08           : move.l  A0,-(A7)
        3ff32 | 4dfa 001c      : lea     ($1c,PC);($3ff50),A6
        3ff36 | 7401           : moveq   #$1,D2
        3ff38 | b7d8           : cmpa.l  (A0)+,A3
        3ff3a | 6606           : bne     $3ff42
        3ff3c | 7001           : moveq   #$1,D0
        3ff3e | 4241           : clr.w   D1
        3ff40 | 600a           : bra     $3ff4c
        3ff42 | 51ca fff4      : dbra    D2,$3ff38
        3ff46 | 4eb9 0000 4080 : jsr     $4080.l
        3ff4c | 205f           : movea.l (A7)+,A0
        3ff4e | 4e75           : rts
        3ff50 - 3ff57          : player table
        -->
        <!-- CPU throw -->
        <action>maincpu.mb@0b1da = 60</action>
        <action>maincpu.mb@0ba8e = 60</action>
    </script>
    <script state="change">
        <action                                  >maincpu.mq@3ff20 = 0000000000000000</action>
        <action condition="(param band 01) != 00">maincpu.md@3ff20 =         0010280a</action>
        <action condition="(param band 02) != 00">maincpu.md@3ff24 =         0010280e</action>
        <action                                  >maincpu.mq@3ff50 = 0000000000000000</action>
        <action condition="(param band 01) != 00">maincpu.md@3ff50 =         00102808</action>
        <action condition="(param band 02) != 00">maincpu.md@3ff54 =         0010280c</action>
    </script>
    <script state="off">
        <action>maincpu.mq@0a3c2 = 2079002038024ed0</action>
        <action>maincpu.mq@3ff00 = 0000000000000000</action>
        <action>maincpu.mq@3ff08 = 0000000000000000</action>
        <action>maincpu.mq@3ff10 = 0000000000000000</action>
        <action>maincpu.mq@3ff18 = 0000000000000000</action>
        <action>maincpu.mq@3ff20 = 0000000000000000</action>
        <action>maincpu.md@019a8 =         00004080</action>
        <action>maincpu.md@019e0 =         00004080</action>
        <action>maincpu.md@01a4e =         00004080</action>
        <action>maincpu.mq@3ff30 = 0000000000000000</action>
        <action>maincpu.mq@3ff38 = 0000000000000000</action>
        <action>maincpu.mq@3ff40 = 0000000000000000</action>
        <action>maincpu.mq@3ff48 = 0000000000000000</action>
        <action>maincpu.mq@3ff50 = 0000000000000000</action>
        <action>maincpu.mb@0b1da =               62</action>
        <action>maincpu.mb@0ba8e =               62</action>
    </script>
</cheat>

<cheat desc="auto fire PL1">
    <script state="on">
        <action>maincpu.mb@3ef1 = 04</action> <!-- kick -->
        <action>maincpu.mb@3f07 = 00</action> <!-- punch -->
    </script>
    <script state="off">
        <action>maincpu.mb@3ef1 = 0c</action>
        <action>maincpu.mb@3f07 = 08</action>
    </script>
</cheat>

<cheat desc="attack speed up PL1">
    <script state="on">
        <action>maincpu.mq@07368 = 4eb90003ff604e71</action>
        <action>maincpu.mq@3ff60 = 1b580083bbfc0010</action>
        <action>maincpu.mq@3ff68 = 280866202f0841fa</action>
        <action>maincpu.mq@3ff70 = 00301239001063f3</action>
        <action>maincpu.mq@3ff78 = 7009b2186602600a</action>
        <action>maincpu.mq@3ff80 = 51c8fff81b7c0001</action>
        <action>maincpu.mq@3ff88 = 0083205f2b480180</action>
        <action>maincpu.mq@3ff90 = 4e75000000000000</action>
        <action>maincpu.mq@3ffa0 = 181e1f2021222324</action>
        <action>maincpu.mq@3ffa8 = 2500000000000000</action>
        <!--
        3ff60 | 1b58 0083           : move.b  (A0)+,($83,A5)
        3ff64 | bbfc 0010 2808      : cmpa.l  #$102808,A5
        3ff6a | 6620                : bne     $3ff8c
        3ff6c | 2f08                : move.l  A0,-(A7)
        3ff6e | 41fa 0030           : lea     ($30,PC);($3ffa0),A0
        3ff72 | 1239 0010 63f3      : move.b  $1063f3.l,D1
        3ff78 | 7008                : moveq   #$9,D0
        3ff7a | b218                : cmp.b   (A0)+,D1
        3ff7c | 6602                : bne     $3ff80
        3ff7e | 600a                : bra     $3ff8a
        3ff80 | 51c8 fff8           : dbra    D0,$3ff7a
        3ff84 | 1b7c 0001 0083      : move.b  #$1,($83,A5)
        3ff8a | 205f                : movea.l (A7)+,A0
        3ff8c | 2b48 0180           : move.l  A0,($180,A5)
        3ff90 | 4e75                : rts
        3ffa0 - 3ffa8               : action status table
        -->
    </script>
    <script state="off">
        <action>maincpu.mq@07368 = 1b5800832b480180</action>
        <action>maincpu.mq@3ff60 = 0000000000000000</action>
        <action>maincpu.mq@3ff68 = 0000000000000000</action>
        <action>maincpu.mq@3ff70 = 0000000000000000</action>
        <action>maincpu.mq@3ff78 = 0000000000000000</action>
        <action>maincpu.mq@3ff80 = 0000000000000000</action>
        <action>maincpu.mq@3ff88 = 0000000000000000</action>
        <action>maincpu.mq@3ff90 = 0000000000000000</action>
        <action>maincpu.mq@3ffa0 = 0000000000000000</action>
        <action>maincpu.mq@3ffa8 = 0000000000000000</action>
    </script>
</cheat>

<cheat desc="skip rom check">
    <script state="on">
        <action>maincpu.mw@2238e = 6026</action>
    </script>
    <script state="off">
        <action>maincpu.mw@2238e = 4df8</action>
    </script>
</cheat>
Still need test and more improvement.

[fjbuster] update codes

Posted: Mon Dec 21, 2020 1:10 pm
by jman
Update.

Code: Select all

<cheat desc="no hit">
    <parameter>
        <item value="0x01">PL1         </item>
        <item value="0x02">PL2         </item>
        <item value="0x03">both players</item>
    </parameter>
    <script state="on">
        <!-- attack -->
        <action>maincpu.mq@0a3c2 = 4eb90003ff004ed0</action>
        <action>maincpu.mq@3ff00 = 207c0010280a6110</action>
        <action>maincpu.mq@3ff08 = 207c0010280e6108</action>
        <action>maincpu.mq@3ff10 = 2079002038024e75</action>
        <action>maincpu.mq@3ff18 = 089000074e750000</action>
        <!--
        3ff00 | 207c 0010 280a : movea.l #$10280a,A0
        3ff06 | 6110           : bsr     $3ff18
        3ff08 | 207c 0010 280e : movea.l #$10280c,A0
        3ff0e | 6108           : bsr     $3ff18
        3ff10 | 2079 0020 3802 : movea.l $203802.l,A0
        3ff16 | 4e75           : rts
        3ff18 | 0890 0007      : bclr    #$7,(A0)
        3ff1c | 4e75           : rts
        -->
        <!-- throw -->
        <action>maincpu.md@019a8 =         0003ff20</action>
        <action>maincpu.md@019e0 =         0003ff20</action>
        <action>maincpu.md@01a4e =         0003ff20</action>
        <action>maincpu.mq@3ff20 = 4eb900004080b7fc</action>
        <action>maincpu.mq@3ff28 = 001028086602610c</action>
        <action>maincpu.mq@3ff30 = b7fc0010280c6602</action>
        <action>maincpu.mq@3ff38 = 61024e7570014241</action>
        <action>maincpu.mq@3ff40 = 4e75000000000000</action>
        <!--
        3ff20 | 4eb9 0000 4080 : jsr    $4080.l
        3ff26 | b7fc 0010 2808 : cmpa.l #$102808,A3
        3ff2c | 6602           : bne    $3ff30
        3ff2e | 610c           : bsr    $3ff3c
        3ff30 | b7fc 0010 280c : cmpa.l #$10280c,A3
        3ff36 | 6602           : bne    $3ff3a
        3ff38 | 6102           : bsr    $3ff3c
        3ff3a | 4e75           : rts
        3ff3c | 7001           : moveq  #$1,D0
        3ff3e | 4241           : clr.w  D1
        3ff40 | 4e75           : rts
        -->
        <!-- CPU throw -->
        <action>maincpu.mb@0b1da = 60</action>
        <action>maincpu.mb@0ba8e = 60</action>
    </script>
    <script state="change">
        <action                                  >maincpu.mw@3ff06 = 4e71</action>
        <action                                  >maincpu.mw@3ff0e = 4e71</action>
        <action condition="(param band 01) != 00">maincpu.mw@3ff06 = 6110</action>
        <action condition="(param band 02) != 00">maincpu.mw@3ff0e = 6108</action>
        <action                                  >maincpu.mw@3ff2c = 6002</action>
        <action                                  >maincpu.mw@3ff36 = 6002</action>
        <action condition="(param band 01) != 00">maincpu.mw@3ff2c = 6602</action>
        <action condition="(param band 02) != 00">maincpu.mw@3ff36 = 6602</action>
    </script>
    <script state="off">
        <action>maincpu.mq@0a3c2 = 2079002038024ed0</action>
        <action>maincpu.mq@3ff00 = 0000000000000000</action>
        <action>maincpu.mq@3ff08 = 0000000000000000</action>
        <action>maincpu.mq@3ff10 = 0000000000000000</action>
        <action>maincpu.mq@3ff18 = 0000000000000000</action>
        <action>maincpu.md@019a8 =         00004880</action>
        <action>maincpu.md@019e0 =         00004880</action>
        <action>maincpu.md@01a4e =         00004880</action>
        <action>maincpu.mq@3ff20 = 0000000000000000</action>
        <action>maincpu.mq@3ff28 = 0000000000000000</action>
        <action>maincpu.mq@3ff30 = 0000000000000000</action>
        <action>maincpu.mq@3ff38 = 0000000000000000</action>
        <action>maincpu.mq@3ff40 = 0000000000000000</action>
    </script>
</cheat>

<cheat desc="auto fire PL2">
    <script state="on">
        <action>maincpu.mb@3e6b = 02</action> <!-- kick -->
        <action>maincpu.mb@3f77 = 04</action> <!-- punch -->
    </script>
    <script state="off">
        <action>maincpu.mb@3e6b = 0a</action>
        <action>maincpu.mb@3f77 = 0c</action>
    </script>
</cheat>

<cheat desc="attack speed up">
    <parameter>
        <item value="0x01">PL1         </item>
        <item value="0x02">PL2         </item>
        <item value="0x03">both players</item>
    </parameter>
    <script state="on">
        <action>maincpu.mq@07368 = 4eb90003ff604e71</action>
        <action>maincpu.mq@3ff60 = 1b5800832f08bbfc</action>
        <action>maincpu.mq@3ff68 = 0010280866081039</action>
        <action>maincpu.mq@3ff70 = 001063f36118bbfc</action>
        <action>maincpu.mq@3ff78 = 0010280c66081039</action>
        <action>maincpu.mq@3ff80 = 001065036108205f</action>
        <action>maincpu.mq@3ff88 = 2b4801804e7541fa</action>
        <action>maincpu.mq@3ff90 = 00204a106706b018</action>
        <action>maincpu.mq@3ff98 = 670860f61b7c0001</action>
        <action>maincpu.mq@3ffa0 = 00834e7500000000</action>
        <action>maincpu.mq@3ffb0 = 18191e1f20212223</action>
        <action>maincpu.mq@3ffb8 = 24252b2c2d000000</action>
        <!--
        3ff60 | 1b58 0083           : move.b  (A0)+,($83,A5)
        3ff64 | 2f08                : move.l  A0,-(A7)
        3ff66 | bbfc 0010 2808      : cmpa.l  #$102808,A5
        3ff6c | 6608                : bne     $3ff76
        3ff6e | 1039 0010 63f3      : move.b  $1063f3.l,D0
        3ff74 | 6118                : bsr     $3ff8e
        3ff76 | bbfc 0010 280c      : cmpa.l  #$10280c,A5
        3ff7c | 6608                : bne     $3ff86
        3ff7e | 1039 0010 6503      : move.b  $106503.l,D0
        3ff84 | 6108                : bsr     $3ff8e
        3ff86 | 205f                : movea.l (A7)+,A0
        3ff88 | 2b48 0180           : move.l  A0,($180,A5)
        3ff8c | 4e75                : rts
        3ff8e | 41fa 0020           : lea     ($20,PC);($3ffb0),A0
        3ff92 | 4a10                : tst.b   (A0)
        3ff94 | 6706                : beq     $3ff9c
        3ff96 | b018                : cmp.b   (A0)+,D0
        3ff98 | 6708                : beq     $3ffa2
        3ff9a | 60f6                : bra     $3ff92
        3ff9c | 1b7c 0001 0083      : move.b  #$1,($83,A5)
        3ffa2 | 4e75                : rts
        3ffb0 - 3ffbf               : action status table
        -->
    </script>
    <script state="change">
        <action condition="param == 01">maincpu.mb@3ff6c = 66, maincpu.mb@3ff7c = 60</action>
        <action condition="param == 02">maincpu.mb@3ff6c = 60, maincpu.mb@3ff7c = 66</action>
        <action condition="param == 03">maincpu.mb@3ff6c = 66, maincpu.mb@3ff7c = 66</action>
    </script>
    <script state="off">
        <action>maincpu.mq@07368 = 1b5800832b480180</action>
        <action>maincpu.mq@3ff60 = 0000000000000000</action>
        <action>maincpu.mq@3ff68 = 0000000000000000</action>
        <action>maincpu.mq@3ff70 = 0000000000000000</action>
        <action>maincpu.mq@3ff78 = 0000000000000000</action>
        <action>maincpu.mq@3ff80 = 0000000000000000</action>
        <action>maincpu.mq@3ff88 = 0000000000000000</action>
        <action>maincpu.mq@3ff90 = 0000000000000000</action>
        <action>maincpu.mq@3ff98 = 0000000000000000</action>
        <action>maincpu.mq@3ffa0 = 0000000000000000</action>
        <action>maincpu.mq@3ffb0 = 0000000000000000</action>
        <action>maincpu.mq@3ffb8 = 0000000000000000</action>
    </script>
</cheat>

<cheat desc="unlock secret character">
    <script state="on">
        <action>maincpu.mw@909c = 4e71</action>
    </script>
    <script state="off">
        <action>maincpu.mw@909c = 6706</action>
    </script>
</cheat>
  • Improved "no hit" code which remove player table read. So the size of check routine is short just a little bit.
  • Added "auto fire" and "attack speed up" for player 2.
  • Fixed character freeze bug for "attack speed up" but still need test.
  • Added "unlock secret characters". You can select bosses in character selection screen.

[fjbuster] Shogun Warriors/Fujiyama Buster (update)

Posted: Wed Jun 07, 2023 2:50 pm
by jman

Code: Select all

<!-- Fujiyama Buster (Japan) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <parameter>
            <item value="0x01">P1          </item>
            <item value="0x02">P2          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <!-- attack -->
            <action>maincpu.mq@0a3c2 = 4eb9000224904ed0</action>
            <action>maincpu.mq@22490 = 207c0010280a6110</action>
            <action>maincpu.mq@22498 = 207c0010280e6108</action>
            <action>maincpu.mq@224a0 = 2079002038024e75</action>
            <action>maincpu.mq@224a8 = 089000074e750000</action>
            <!--
            22490 | 207c 0010 280a : movea.l #$10280a,A0
            22496 | 6110           : bsr     $224a8
            22498 | 207c 0010 280e : movea.l #$10280e,A0
            2249e | 6108           : bsr     $224a8
            224a0 | 2079 0020 3802 : movea.l $203802.l,A0
            224a6 | 4e75           : rts
            224a8 | 0890 0007      : bclr    #$7,(A0)
            224ac | 4e75           : rts
            -->
            <!-- throw -->
            <action>maincpu.md@019a8 =         000224b0</action>
            <action>maincpu.md@019e0 =         000224b0</action>
            <action>maincpu.md@01a4e =         000224b0</action>
            <action>maincpu.mq@224b0 = 4eb84080b7fc0010</action>
            <action>maincpu.mq@224b8 = 28086602610cb7fc</action>
            <action>maincpu.mq@224c0 = 0010280c66026102</action>
            <action>maincpu.mq@224c8 = 4e75700142414e75</action>
            <!--
            224b0 | 4eb8 4080      : jsr    $4080.w
            224b4 | b7fc 0010 2808 : cmpa.l #$102808,A3
            224ba | 6602           : bne    $224be
            224bc | 610c           : bsr    $224ca
            224be | b7fc 0010 280c : cmpa.l #$10280c,A3
            224c4 | 6602           : bne    $224c8
            224c6 | 6102           : bsr    $224ca
            224c8 | 4e75           : rts
            224ca | 7001           : moveq  #$1,D0
            224cc | 4241           : clr.w  D1
            224ce | 4e75           : rts
            -->
            <!-- CPU throw -->
            <action>maincpu.mb@b1da = 60</action>
            <action>maincpu.mb@ba8e = 60</action>
        </script>
        <script state="change">
            <action                          >maincpu.mw@22496 = 4e71</action>
            <action                          >maincpu.mw@2249e = 4e71</action>
            <action condition="param band 01">maincpu.mw@22496 = 6110</action>
            <action condition="param band 02">maincpu.mw@2249e = 6108</action>
            <action                          >maincpu.mw@224ba = 6002</action>
            <action                          >maincpu.mw@224c4 = 6002</action>
            <action condition="param band 01">maincpu.mw@224ba = 6602</action>
            <action condition="param band 02">maincpu.mw@224c4 = 6602</action>
        </script>
        <script state="off">
            <action>maincpu.mq@0a3c2 = 2079002038024ed0</action>
            <action>maincpu.mq@22490 = 0000000000000000</action>
            <action>maincpu.mq@22498 = 0000000000000000</action>
            <action>maincpu.mq@224a0 = 0000000000000000</action>
            <action>maincpu.mq@224a8 = 0000000000000000</action>
            <action>maincpu.md@019a8 =         00004080</action>
            <action>maincpu.md@019e0 =         00004080</action>
            <action>maincpu.md@01a4e =         00004080</action>
            <action>maincpu.mq@224b0 = 0000000000000000</action>
            <action>maincpu.mq@224b8 = 0000000000000000</action>
            <action>maincpu.mq@224c0 = 0000000000000000</action>
            <action>maincpu.mq@224c8 = 0000000000000000</action>
            <action>maincpu.mb@0b1da =               62</action>
            <action>maincpu.mb@0ba8e =               62</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <parameter>
            <item value="0x01">P1          </item>
            <item value="0x02">P2          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="change">
            <!-- P1 -->
            <action                          >maincpu.mb@3ef1 = 0c</action>
            <action                          >maincpu.mb@3f07 = 08</action>
            <action condition="param band 01">maincpu.mb@3ef1 = 04</action> <!-- kick -->
            <action condition="param band 01">maincpu.mb@3f07 = 00</action> <!-- punch -->
            <!-- P2 -->
            <action                          >maincpu.mb@3f6b = 0a</action>
            <action                          >maincpu.mb@3f77 = 0c</action>
            <action condition="param band 02">maincpu.mb@3f6b = 02</action> <!-- kick -->
            <action condition="param band 02">maincpu.mb@3f77 = 04</action> <!-- punch -->
        </script>
        <script state="off">
            <action>maincpu.mb@3ef1 = 0c</action>
            <action>maincpu.mb@3f07 = 08</action>
            <action>maincpu.mb@3f6b = 0a</action>
            <action>maincpu.mb@3f77 = 0c</action>
        </script>
    </cheat>

    <cheat desc="attack speed up">
        <parameter>
            <item value="0x01">P1          </item>
            <item value="0x02">P2          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@07368 = 4eb9000224d04e71</action>
            <action>maincpu.mq@224d0 = 1b5800832f08bbfc</action>
            <action>maincpu.mq@224d8 = 0010280866081039</action>
            <action>maincpu.mq@224e0 = 001063f36118bbfc</action>
            <action>maincpu.mq@224e8 = 0010280c66081039</action>
            <action>maincpu.mq@224f0 = 001065036108205f</action>
            <action>maincpu.mq@224f8 = 2b4801804e7541fa</action>
            <action>maincpu.mq@22500 = 00144a106706b018</action>
            <action>maincpu.mq@22508 = 670860f61b7c0001</action>
            <action>maincpu.mq@22510 = 00834e7518191e1f</action>
            <action>maincpu.mq@22518 = 2021222324252b2c</action>
            <action>maincpu.mq@22520 = 2d00000000000000</action>
            <!--
            224d0 | 1b58 0083      : move.b  (A0)+,($83,A5)
            224d4 | 2f08           : move.l  A0,-(A7)
            224d6 | bbfc 0010 2808 : cmpa.l  #$102808,A5
            224dc | 6608           : bne     $224e6
            224de | 1039 0010 63f3 : move.b  $1063f3.l,D0
            224e4 | 6118           : bsr     $224fe
            224e6 | bbfc 0010 280c : cmpa.l  #$10280c,A5
            224ec | 6608           : bne     $224f6
            224ee | 1039 0010 6503 : move.b  $106503.l,D0
            224f4 | 6108           : bsr     $224fe
            224f6 | 205f           : movea.l (A7)+,A0
            224f8 | 2b48 0180      : move.l  A0,($180,A5)
            224fc | 4e75           : rts
            224fe | 41fa 0014      : lea     ($14,PC);($22514),A0
            22502 | 4a10           : tst.b   (A0)
            22504 | 6706           : beq     $2250c
            22506 | b018           : cmp.b   (A0)+,D0
            22508 | 6708           : beq     $22512
            2250a | 60f6           : bra     $22502
            2250c | 1b7c 0001 0083 : move.b  #$1,($83,A5)
            22512 | 4e75           : rts
            22514 - 22520          : action status table
            -->
        </script>
        <script state="change">
            <action                          >maincpu.mb@224dc = 60</action>
            <action                          >maincpu.mb@224ec = 60</action>
            <action condition="param band 01">maincpu.mb@224dc = 66</action>
            <action condition="param band 02">maincpu.mb@224ec = 66</action>
        </script>
        <script state="off">
            <action>maincpu.mq@07368 = 1b5800832b480180</action>
            <action>maincpu.mq@224d0 = 0000000000000000</action>
            <action>maincpu.mq@224d8 = 0000000000000000</action>
            <action>maincpu.mq@224e0 = 0000000000000000</action>
            <action>maincpu.mq@224e8 = 0000000000000000</action>
            <action>maincpu.mq@224f0 = 0000000000000000</action>
            <action>maincpu.mq@224f8 = 0000000000000000</action>
            <action>maincpu.mq@22500 = 0000000000000000</action>
            <action>maincpu.mq@22508 = 0000000000000000</action>
            <action>maincpu.mq@22510 = 0000000000000000</action>
            <action>maincpu.mq@22518 = 0000000000000000</action>
            <action>maincpu.mq@22520 = 0000000000000000</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">
            <!-- normal stage -->
            <action>maincpu.mb@a139 = param</action>
            <action>maincpu.mb@a1eb = param</action> <!-- initialize -->
            <!-- bonus stage -->
            <action>maincpu.mb@a17b = param</action>
            <action>maincpu.mb@a201 = param</action> <!-- initialize -->
        </script>
        <script state="off">
            <action>maincpu.mb@a139 = 32</action>
            <action>maincpu.mb@a1eb = 32</action>
            <action>maincpu.mb@a17b = 14</action>
            <action>maincpu.mb@a201 = 14</action>
        </script>
    </cheat>

    <cheat desc="unlock secret characters">
        <script state="on">
            <action>maincpu.mw@909c = 4e71</action>
        </script>
        <script state="off">
            <action>maincpu.mw@909c = 6706</action>
        </script>
    </cheat>

    <cheat desc="selectable same character">
        <script state="on">
            <action>maincpu.mb@90b4 = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mb@90b4 = 66</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.md@09a4a =         00022530</action>
            <action>maincpu.mq@22530 = 4eb8613e41f90010</action>
            <action>maincpu.mq@22538 = 000043f90010638d</action>
            <action>maincpu.mq@22540 = 103900b80000b028</action>
            <action>maincpu.mq@22548 = 000167360c0000fb</action>
            <action>maincpu.mq@22550 = 660253100c0000f7</action>
            <action>maincpu.mq@22558 = 660252100c0000fd</action>
            <action>maincpu.mq@22560 = 6604041000100c00</action>
            <action>maincpu.mq@22568 = 00fe660406100010</action>
            <action>maincpu.mq@22570 = 0c0000ef66021290</action>
            <action>maincpu.mq@22578 = 0c0000df660412bc</action>
            <action>maincpu.mq@22580 = 00801140000160a8</action>
            <!--
            22530 | 4eb8 613e      : jsr    $613e.w      // sound routine
            22534 | 41f9 0010 0000 : lea    $100000.l,A0 // sound code address
            2253a | 43f9 0010 638d : lea    $10638d.l,A1 // sound latch address
            22540 | 1039 00b8 0000 : move.b $b80000.l,D0 // read input
            22546 | b028 0001      : cmp.b  ($1,A0),D0
            2254a | 6736           : beq    $22582
            2254c | 0c00 00fb      : cmpi.b #-$5,D0
            22550 | 6602           : bne    $22554
            22552 | 5310           : subq.b #1,(A0)      // decrease code -01
            22554 | 0c00 00f7      : cmpi.b #-$9,D0
            22558 | 6602           : bne    $2255c
            2255a | 5210           : addq.b #1,(A0)      // increase code +01
            2255c | 0c00 00fd      : cmpi.b #-$3,D0
            22560 | 6604           : bne    $22566
            22562 | 0410 0010      : subi.b #$10,(A0)    // decrease code -10
            22566 | 0c00 00fe      : cmpi.b #-$2,D0
            2256a | 6604           : bne    $22570
            2256c | 0610 0010      : addi.b #$10,(A0)    // increase code +10
            22570 | 0c00 00ef      : cmpi.b #-$11,D0
            22574 | 6602           : bne    $22578
            22576 | 1290           : move.b (A0),(A1)    // play sound
            22578 | 0c00 00df      : cmpi.b #-$21,D0
            2257c | 6604           : bne    $22582
            2257e | 12bc 0080      : move.b #$80,(A1)    // stop sound
            22582 | 1140 0001      : move.b D0,($1,A0)
            22586 | 60a8           : bra    $22530
            -->
        </script>
        <script state="run">
            <output format="----- fujiyama buster sound test mode -----" line="10" align="center" />
            <output format="left : decrease code -01"                    line="11" align="center" />
            <output format="right : increase code +01"                   line="12" align="center" />
            <output format="down : decrease code -10"                    line="13" align="center" />
            <output format="up : increase code +10"                      line="14" align="center" />
            <output format="button 1 : play sound"                       line="15" align="center" />
            <output format="button 2 : stop sound"                       line="16" align="center" />
            <output format="----------------------------"                line="17" align="center" />
            <output format="&lt;&lt; sound code %2.2X &gt;&gt;"          line="19" align="center"  >
                <argument>maincpu.pb@100000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@09a4a =         000075ac</action>
            <action>maincpu.mq@22530 = 0000000000000000</action>
            <action>maincpu.mq@22538 = 0000000000000000</action>
            <action>maincpu.mq@22540 = 0000000000000000</action>
            <action>maincpu.mq@22548 = 0000000000000000</action>
            <action>maincpu.mq@22550 = 0000000000000000</action>
            <action>maincpu.mq@22558 = 0000000000000000</action>
            <action>maincpu.mq@22560 = 0000000000000000</action>
            <action>maincpu.mq@22568 = 0000000000000000</action>
            <action>maincpu.mq@22570 = 0000000000000000</action>
            <action>maincpu.mq@22578 = 0000000000000000</action>
            <action>maincpu.mq@22580 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="skip rom check">
        <script state="on">
            <action>maincpu.mw@2238e = 6026</action>
        </script>
        <script state="off">
            <action>maincpu.mw@2238e = 4df8</action>
        </script>
    </cheat>

</mamecheat>
Cleaned up codes. Reallocated addresses for custome routine.
  • "no hit" : added missing codes on "off" state.
  • "auto fire" : merged two codes into one. fixed P2 auto fire code.
  • "timer speed", "selectable same character" and "sound test mode" : added new.

[shogwarr]+ Shogun Warriors/Fujiyama Buster

Posted: Mon May 12, 2025 10:15 am
by jman
shogwarr.xml

Code: Select all

<!-- Shogun Warriors (World) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@019A8 = 000224B6        </action> <!-- catch / throw -->
            <action>maincpu.md@019E0 = 000224B6        </action> <!-- catch / throw -->
            <action>maincpu.md@01A4E = 000224B6        </action> <!-- catch / throw -->
            <action>maincpu.mq@0745A = 4EB90002249008AD</action> <!-- direct attack / firearms -->
            <action>maincpu.mq@07470 = 4EB9000224A62B58</action> <!-- rapid attack -->
            <action>maincpu.md@0B1D4 = 000224B6        </action> <!-- catch / throw (cpu) -->
            <action>maincpu.md@0BA88 = 000224B6        </action> <!-- catch / throw (cpu) -->
            <action>maincpu.mq@22490 = 08ED00070002082D</action>
            <action>maincpu.mq@22498 = 00001000670608AD</action>
            <action>maincpu.mq@224A0 = 000700024E75002D</action>
            <action>maincpu.mq@224A8 = 00C00002082D0000</action>
            <action>maincpu.mq@224B0 = 100060EA4E754EB8</action>
            <action>maincpu.mq@224B8 = 4080082B00001000</action>
            <action>maincpu.mq@224C0 = 6704303C80004E75</action>
            <!--
            22490 | 08ED 0007 0002 : bset    #$7, ($2,A5)    // direct attack / firearms
            22496 | 082D 0000 1000 : btst    #$0, ($1000,A5)
            2249C | 6706           : beq     $224a4
            2249E | 08AD 0007 0002 : bclr    #$7, ($2,A5)
            224A4 | 4E75           : rts
            224A6 | 002D 00C0 0002 : ori.b   #$c0, ($2,A5)   // rapid attack
            224AC | 082D 0000 1000 : btst    #$0, ($1000,A5)
            224B2 | 60EA           : bne     $2249e
            224B4 | 4E75           : rts
            224B6 | 4EB8 4080      : jsr     $4080.w         // catch / throw
            224BA | 082B 0000 1000 : btst    #$0, ($1000,A3)
            224C0 | 6704           : beq     $224c6
            224C2 | 303C 8000      : move.w  #$8000, D0
            224C6 | 4E75           : rts
            -->
        </script>
        <script state="run">
            <action condition="(param band 01) == 00">maincpu.pb@103808 &amp;= ~01</action>
            <action condition="(param band 02) == 00">maincpu.pb@10380C &amp;= ~01</action>
            <action condition="(param band 01) != 00">maincpu.pb@103808 |= 01     </action>
            <action condition="(param band 02) != 00">maincpu.pb@10380C |= 01     </action>
        </script>
        <script state="off">
            <action>maincpu.md@019A8 = 00004080        </action>
            <action>maincpu.md@019E0 = 00004080        </action>
            <action>maincpu.md@01A4E = 00004080        </action>
            <action>maincpu.mq@0745A = 08ED0007000208AD</action>
            <action>maincpu.mq@07470 = 002D00C000022B58</action>
            <action>maincpu.md@0B1D4 = 00004080        </action>
            <action>maincpu.md@0BA88 = 00004080        </action>
            <action>maincpu.mq@22490 = 0000000000000000</action>
            <action>maincpu.mq@22498 = 0000000000000000</action>
            <action>maincpu.mq@224A0 = 0000000000000000</action>
            <action>maincpu.mq@224A8 = 0000000000000000</action>
            <action>maincpu.mq@224B0 = 0000000000000000</action>
            <action>maincpu.mq@224B8 = 0000000000000000</action>
            <action>maincpu.mq@224C0 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="change">
            <!-- 1P kick -->
            <action condition="(param band 01) == 00">maincpu.mb@3EF1 = 0C</action>
            <action condition="(param band 01) != 00">maincpu.mb@3EF1 = 04</action>
            <!-- 1P punch -->
            <action condition="(param band 01) == 00">maincpu.mb@3F07 = 08</action>
            <action condition="(param band 01) != 00">maincpu.mb@3F07 = 00</action>
            <!-- 2P kick -->
            <action condition="(param band 02) == 00">maincpu.mb@3F6B = 0A</action>
            <action condition="(param band 02) != 00">maincpu.mb@3F6B = 02</action>
            <!-- 2P punch -->
            <action condition="(param band 02) == 00">maincpu.mb@3F77 = 0C</action>
            <action condition="(param band 02) != 00">maincpu.mb@3F77 = 04</action>
        </script>
        <script state="off">
            <action>maincpu.mb@3EF1 = 0C</action>
            <action>maincpu.mb@3F07 = 08</action>
            <action>maincpu.mb@3F6B = 0A</action>
            <action>maincpu.mb@3F77 = 0C</action>
        </script>
    </cheat>

    <cheat desc="action speed up (test)">
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@07368 = 4EB9000224C84E71</action>
            <action>maincpu.mq@224C8 = 1B580083082D0001</action>
            <action>maincpu.mq@224D0 = 10006718102D0082</action>
            <action>maincpu.mq@224D8 = 43FA00184A116706</action>
            <action>maincpu.mq@224E0 = B019670860F61B7C</action>
            <action>maincpu.mq@224E8 = 000100832B480180</action>
            <action>maincpu.mq@224F0 = 4E75022C2F303132</action>
            <action>maincpu.mq@224F8 = 36487C0000000000</action>
            <!--
            224C8 | 1B58 0083      : move.b  (A0)+, ($83,A5)
            224CC | 082D 0001 1000 : btst    #$1, ($1000,A5)
            224D2 | 6718           : beq     $224ec
            224D4 | 102D 0082      : move.b  ($82,A5), D0
            224D8 | 43FA 0018      : lea     ($18,PC) ; ($224f2), A1
            224DC | 4A11           : tst.b   (A1)
            224DE | 6706           : beq     $224e6
            224E0 | B019           : cmp.b   (A1)+, D0
            224E2 | 6708           : beq     $224ec
            224E4 | 60F6           : bra     $224dc
            224E6 | 1B7C 0001 0083 : move.b  #$1, ($83,A5)
            224EC | 2B48 0180      : move.l  A0, ($180,A5)
            224F0 | 4E75           : rts
            224F2 - 224FA          : action state table
            -->
        </script>
        <script state="run">
            <action condition="(param band 01) == 00">maincpu.pb@103808 &amp;= ~02</action>
            <action condition="(param band 02) == 00">maincpu.pb@10380C &amp;= ~02</action>
            <action condition="(param band 01) != 00">maincpu.pb@103808 |= 02     </action>
            <action condition="(param band 02) != 00">maincpu.pb@10380C |= 02     </action>
        </script>
        <script state="off">
            <action>maincpu.mq@07368 = 1B5800832B480180</action>
            <action>maincpu.mq@224C8 = 0000000000000000</action>
            <action>maincpu.mq@224D0 = 0000000000000000</action>
            <action>maincpu.mq@224D8 = 0000000000000000</action>
            <action>maincpu.mq@224E0 = 0000000000000000</action>
            <action>maincpu.mq@224E8 = 0000000000000000</action>
            <action>maincpu.mq@224F0 = 0000000000000000</action>
            <action>maincpu.mq@224F8 = 0000000000000000</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">
            <!-- normal stage -->
            <action>maincpu.mb@A139 = param</action>
            <action>maincpu.mb@A1EB = param</action> <!-- initialize -->
            <!-- bonus stage -->
            <action>maincpu.mb@A17B = param</action>
            <action>maincpu.mb@A201 = param</action> <!-- initialize -->
        </script>
        <script state="off">
            <action>maincpu.mb@A139 = 32</action>
            <action>maincpu.mb@A1EB = 32</action>
            <action>maincpu.mb@A17B = 14</action>
            <action>maincpu.mb@A201 = 14</action>
        </script>
    </cheat>

    <cheat desc="bonus stage">
        <parameter>
            <item value="0x603E">none  </item>
            <item value="0x6030">always</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@531A = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@531A = 673E</action>
        </script>
    </cheat>

    <cheat desc="unlock secret characters">
        <script state="on">
            <action>maincpu.mw@909C = 4E71</action>
        </script>
        <script state="off">
            <action>maincpu.mw@909C = 6706</action>
        </script>
    </cheat>

    <cheat desc="selectable same character">
        <script state="on">
            <action>maincpu.mb@90B4 = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mb@90B4 = 66</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mw@09A3A = 0002            </action> <!-- skip region check -->
            <action>maincpu.md@09A4A = 00022500        </action>
            <action>maincpu.mq@22500 = 4EB8613E41F90010</action>
            <action>maincpu.mq@22508 = 000043E8638D1039</action>
            <action>maincpu.mq@22510 = 00B80000B0280001</action>
            <action>maincpu.mq@22518 = 67360C0000FB6602</action>
            <action>maincpu.mq@22520 = 53100C0000F76602</action>
            <action>maincpu.mq@22528 = 52100C0000FD6604</action>
            <action>maincpu.mq@22530 = 041000100C0000FE</action>
            <action>maincpu.mq@22538 = 6604061000100C00</action>
            <action>maincpu.mq@22540 = 00EF660212900C00</action>
            <action>maincpu.mq@22548 = 00DF660412BC0080</action>
            <action>maincpu.mq@22550 = 1140000160AA0000</action>
            <!--
            22500 | 4EB8 613E      : jsr     $613e.w
            22504 | 41F9 0010 0000 : lea     $100000.l, A0  // sound code address
            2250A | 43E8 638D      : lea     ($638d,A0), A1 // sound latch address ($10638D)
            2250E | 1039 00B8 0000 : move.b  $b80000.l, D0  // read input
            22514 | B028 0001      : cmp.b   ($1,A0), D0
            22518 | 6736           : beq     $22550
            2251A | 0C00 00FB      : cmpi.b  #-$5, D0
            2251E | 6602           : bne     $22522
            22520 | 5310           : subq.b  #1, (A0)       // decrease code -01
            22522 | 0C00 00F7      : cmpi.b  #-$9, D0
            22526 | 6602           : bne     $2252a
            22528 | 5210           : addq.b  #1, (A0)       // increase code +01
            2252A | 0C00 00FD      : cmpi.b  #-$3, D0
            2252E | 6604           : bne     $22534
            22530 | 0410 0010      : subi.b  #$10, (A0)     // decrease code -10
            22534 | 0C00 00FE      : cmpi.b  #-$2, D0
            22538 | 6604           : bne     $2253e
            2253A | 0610 0010      : addi.b  #$10, (A0)     // increase code +10
            2253E | 0C00 00EF      : cmpi.b  #-$11, D0
            22542 | 6602           : bne     $22546
            22544 | 1290           : move.b  (A0), (A1)     // play sound
            22546 | 0C00 00DF      : cmpi.b  #-$21, D0
            2254A | 6604           : bne     $22550
            2254C | 12BC 0080      : move.b  #$80, (A1)     // stop sound
            22550 | 1140 0001      : move.b  D0, ($1,A0)
            22554 | 60AA           : bra     $22500
            -->
        </script>
        <script state="run">
            <output format="----- 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@100000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@09A3A = 0084            </action>
            <action>maincpu.md@09A4A = 000075AC        </action>
            <action>maincpu.mq@22500 = 0000000000000000</action>
            <action>maincpu.mq@22508 = 0000000000000000</action>
            <action>maincpu.mq@22510 = 0000000000000000</action>
            <action>maincpu.mq@22518 = 0000000000000000</action>
            <action>maincpu.mq@22520 = 0000000000000000</action>
            <action>maincpu.mq@22528 = 0000000000000000</action>
            <action>maincpu.mq@22530 = 0000000000000000</action>
            <action>maincpu.mq@22538 = 0000000000000000</action>
            <action>maincpu.mq@22540 = 0000000000000000</action>
            <action>maincpu.mq@22548 = 0000000000000000</action>
            <action>maincpu.mq@22550 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.md@22222 = 6000005A</action> <!-- ram -->
            <action>maincpu.md@2238E = 600000B4</action> <!-- rom -->
        </script>
        <script state="off">
            <action>maincpu.md@22222 = 286D0004</action>
            <action>maincpu.md@2238E = 4DF80000</action>
        </script>
    </cheat>

</mamecheat>
shogwarrk.xml

Code: Select all

<!-- Shogun Warriors (Korea?) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@019A8 = 000224B6        </action> <!-- catch / throw -->
            <action>maincpu.md@019E0 = 000224B6        </action> <!-- catch / throw -->
            <action>maincpu.md@01A4E = 000224B6        </action> <!-- catch / throw -->
            <action>maincpu.mq@0745A = 4EB90002249008AD</action> <!-- direct attack / firearms -->
            <action>maincpu.mq@07470 = 4EB9000224A62B58</action> <!-- rapid attack -->
            <action>maincpu.md@0B1D4 = 000224B6        </action> <!-- catch / throw (cpu) -->
            <action>maincpu.md@0BA88 = 000224B6        </action> <!-- catch / throw (cpu) -->
            <action>maincpu.mq@22490 = 08ED00070002082D</action>
            <action>maincpu.mq@22498 = 00001000670608AD</action>
            <action>maincpu.mq@224A0 = 000700024E75002D</action>
            <action>maincpu.mq@224A8 = 00C00002082D0000</action>
            <action>maincpu.mq@224B0 = 100060EA4E754EB8</action>
            <action>maincpu.mq@224B8 = 4080082B00001000</action>
            <action>maincpu.mq@224C0 = 6704303C80004E75</action>
            <!--
            22490 | 08ED 0007 0002 : bset    #$7, ($2,A5)    // direct attack / firearms
            22496 | 082D 0000 1000 : btst    #$0, ($1000,A5)
            2249C | 6706           : beq     $224a4
            2249E | 08AD 0007 0002 : bclr    #$7, ($2,A5)
            224A4 | 4E75           : rts
            224A6 | 002D 00C0 0002 : ori.b   #$c0, ($2,A5)   // rapid attack
            224AC | 082D 0000 1000 : btst    #$0, ($1000,A5)
            224B2 | 60EA           : bne     $2249e
            224B4 | 4E75           : rts
            224B6 | 4EB8 4080      : jsr     $4080.w         // catch / throw
            224BA | 082B 0000 1000 : btst    #$0, ($1000,A3)
            224C0 | 6704           : beq     $224c6
            224C2 | 303C 8000      : move.w  #$8000, D0
            224C6 | 4E75           : rts
            -->
        </script>
        <script state="run">
            <action condition="(param band 01) == 00">maincpu.pb@103808 &amp;= ~01</action>
            <action condition="(param band 02) == 00">maincpu.pb@10380C &amp;= ~01</action>
            <action condition="(param band 01) != 00">maincpu.pb@103808 |= 01     </action>
            <action condition="(param band 02) != 00">maincpu.pb@10380C |= 01     </action>
        </script>
        <script state="off">
            <action>maincpu.md@019A8 = 00004080        </action>
            <action>maincpu.md@019E0 = 00004080        </action>
            <action>maincpu.md@01A4E = 00004080        </action>
            <action>maincpu.mq@0745A = 08ED0007000208AD</action>
            <action>maincpu.mq@07470 = 002D00C000022B58</action>
            <action>maincpu.md@0B1D4 = 00004080        </action>
            <action>maincpu.md@0BA88 = 00004080        </action>
            <action>maincpu.mq@22490 = 0000000000000000</action>
            <action>maincpu.mq@22498 = 0000000000000000</action>
            <action>maincpu.mq@224A0 = 0000000000000000</action>
            <action>maincpu.mq@224A8 = 0000000000000000</action>
            <action>maincpu.mq@224B0 = 0000000000000000</action>
            <action>maincpu.mq@224B8 = 0000000000000000</action>
            <action>maincpu.mq@224C0 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="change">
            <!-- 1P kick -->
            <action condition="(param band 01) == 00">maincpu.mb@3EF1 = 0C</action>
            <action condition="(param band 01) != 00">maincpu.mb@3EF1 = 04</action>
            <!-- 1P punch -->
            <action condition="(param band 01) == 00">maincpu.mb@3F07 = 08</action>
            <action condition="(param band 01) != 00">maincpu.mb@3F07 = 00</action>
            <!-- 2P kick -->
            <action condition="(param band 02) == 00">maincpu.mb@3F6B = 0A</action>
            <action condition="(param band 02) != 00">maincpu.mb@3F6B = 02</action>
            <!-- 2P punch -->
            <action condition="(param band 02) == 00">maincpu.mb@3F77 = 0C</action>
            <action condition="(param band 02) != 00">maincpu.mb@3F77 = 04</action>
        </script>
        <script state="off">
            <action>maincpu.mb@3EF1 = 0C</action>
            <action>maincpu.mb@3F07 = 08</action>
            <action>maincpu.mb@3F6B = 0A</action>
            <action>maincpu.mb@3F77 = 0C</action>
        </script>
    </cheat>

    <cheat desc="action speed up (test)">
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@07368 = 4EB9000224C84E71</action>
            <action>maincpu.mq@224C8 = 1B580083082D0001</action>
            <action>maincpu.mq@224D0 = 10006718102D0082</action>
            <action>maincpu.mq@224D8 = 43FA00184A116706</action>
            <action>maincpu.mq@224E0 = B019670860F61B7C</action>
            <action>maincpu.mq@224E8 = 000100832B480180</action>
            <action>maincpu.mq@224F0 = 4E75022C2F303132</action>
            <action>maincpu.mq@224F8 = 36487C0000000000</action>
            <!--
            224C8 | 1B58 0083      : move.b  (A0)+, ($83,A5)
            224CC | 082D 0001 1000 : btst    #$1, ($1000,A5)
            224D2 | 6718           : beq     $224ec
            224D4 | 102D 0082      : move.b  ($82,A5), D0
            224D8 | 43FA 0018      : lea     ($18,PC) ; ($224f2), A1
            224DC | 4A11           : tst.b   (A1)
            224DE | 6706           : beq     $224e6
            224E0 | B019           : cmp.b   (A1)+, D0
            224E2 | 6708           : beq     $224ec
            224E4 | 60F6           : bra     $224dc
            224E6 | 1B7C 0001 0083 : move.b  #$1, ($83,A5)
            224EC | 2B48 0180      : move.l  A0, ($180,A5)
            224F0 | 4E75           : rts
            224F2 - 224FA          : action state table
            -->
        </script>
        <script state="run">
            <action condition="(param band 01) == 00">maincpu.pb@103808 &amp;= ~02</action>
            <action condition="(param band 02) == 00">maincpu.pb@10380C &amp;= ~02</action>
            <action condition="(param band 01) != 00">maincpu.pb@103808 |= 02     </action>
            <action condition="(param band 02) != 00">maincpu.pb@10380C |= 02     </action>
        </script>
        <script state="off">
            <action>maincpu.mq@07368 = 1B5800832B480180</action>
            <action>maincpu.mq@224C8 = 0000000000000000</action>
            <action>maincpu.mq@224D0 = 0000000000000000</action>
            <action>maincpu.mq@224D8 = 0000000000000000</action>
            <action>maincpu.mq@224E0 = 0000000000000000</action>
            <action>maincpu.mq@224E8 = 0000000000000000</action>
            <action>maincpu.mq@224F0 = 0000000000000000</action>
            <action>maincpu.mq@224F8 = 0000000000000000</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">
            <!-- normal stage -->
            <action>maincpu.mb@A139 = param</action>
            <action>maincpu.mb@A1EB = param</action> <!-- initialize -->
            <!-- bonus stage -->
            <action>maincpu.mb@A17B = param</action>
            <action>maincpu.mb@A201 = param</action> <!-- initialize -->
        </script>
        <script state="off">
            <action>maincpu.mb@A139 = 32</action>
            <action>maincpu.mb@A1EB = 32</action>
            <action>maincpu.mb@A17B = 14</action>
            <action>maincpu.mb@A201 = 14</action>
        </script>
    </cheat>

    <cheat desc="bonus stage">
        <parameter>
            <item value="0x603E">none  </item>
            <item value="0x6030">always</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@531A = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@531A = 673E</action>
        </script>
    </cheat>

    <cheat desc="unlock secret characters">
        <script state="on">
            <action>maincpu.mw@909C = 4E71</action>
        </script>
        <script state="off">
            <action>maincpu.mw@909C = 6706</action>
        </script>
    </cheat>

    <cheat desc="selectable same character">
        <script state="on">
            <action>maincpu.mb@90B4 = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mb@90B4 = 66</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mw@09A3A = 0002            </action> <!-- skip region check -->
            <action>maincpu.md@09A4A = 00022500        </action>
            <action>maincpu.mq@22500 = 4EB8613E41F90010</action>
            <action>maincpu.mq@22508 = 000043E8638D1039</action>
            <action>maincpu.mq@22510 = 00B80000B0280001</action>
            <action>maincpu.mq@22518 = 67360C0000FB6602</action>
            <action>maincpu.mq@22520 = 53100C0000F76602</action>
            <action>maincpu.mq@22528 = 52100C0000FD6604</action>
            <action>maincpu.mq@22530 = 041000100C0000FE</action>
            <action>maincpu.mq@22538 = 6604061000100C00</action>
            <action>maincpu.mq@22540 = 00EF660212900C00</action>
            <action>maincpu.mq@22548 = 00DF660412BC0080</action>
            <action>maincpu.mq@22550 = 1140000160AA0000</action>
            <!--
            22500 | 4EB8 613E      : jsr     $613e.w
            22504 | 41F9 0010 0000 : lea     $100000.l, A0  // sound code address
            2250A | 43E8 638D      : lea     ($638d,A0), A1 // sound latch address ($10638D)
            2250E | 1039 00B8 0000 : move.b  $b80000.l, D0  // read input
            22514 | B028 0001      : cmp.b   ($1,A0), D0
            22518 | 6736           : beq     $22550
            2251A | 0C00 00FB      : cmpi.b  #-$5, D0
            2251E | 6602           : bne     $22522
            22520 | 5310           : subq.b  #1, (A0)       // decrease code -01
            22522 | 0C00 00F7      : cmpi.b  #-$9, D0
            22526 | 6602           : bne     $2252a
            22528 | 5210           : addq.b  #1, (A0)       // increase code +01
            2252A | 0C00 00FD      : cmpi.b  #-$3, D0
            2252E | 6604           : bne     $22534
            22530 | 0410 0010      : subi.b  #$10, (A0)     // decrease code -10
            22534 | 0C00 00FE      : cmpi.b  #-$2, D0
            22538 | 6604           : bne     $2253e
            2253A | 0610 0010      : addi.b  #$10, (A0)     // increase code +10
            2253E | 0C00 00EF      : cmpi.b  #-$11, D0
            22542 | 6602           : bne     $22546
            22544 | 1290           : move.b  (A0), (A1)     // play sound
            22546 | 0C00 00DF      : cmpi.b  #-$21, D0
            2254A | 6604           : bne     $22550
            2254C | 12BC 0080      : move.b  #$80, (A1)     // stop sound
            22550 | 1140 0001      : move.b  D0, ($1,A0)
            22554 | 60AA           : bra     $22500
            -->
        </script>
        <script state="run">
            <output format="----- 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@100000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@09A3A = 0084            </action>
            <action>maincpu.md@09A4A = 000075AC        </action>
            <action>maincpu.mq@22500 = 0000000000000000</action>
            <action>maincpu.mq@22508 = 0000000000000000</action>
            <action>maincpu.mq@22510 = 0000000000000000</action>
            <action>maincpu.mq@22518 = 0000000000000000</action>
            <action>maincpu.mq@22520 = 0000000000000000</action>
            <action>maincpu.mq@22528 = 0000000000000000</action>
            <action>maincpu.mq@22530 = 0000000000000000</action>
            <action>maincpu.mq@22538 = 0000000000000000</action>
            <action>maincpu.mq@22540 = 0000000000000000</action>
            <action>maincpu.mq@22548 = 0000000000000000</action>
            <action>maincpu.mq@22550 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.md@22222 = 6000005A</action> <!-- ram -->
            <action>maincpu.md@2238E = 600000B4</action> <!-- rom -->
        </script>
        <script state="off">
            <action>maincpu.md@22222 = 286D0004</action>
            <action>maincpu.md@2238E = 4DF80000</action>
        </script>
    </cheat>

</mamecheat>
fjbuster.xml

Code: Select all

<!-- Fujiyama Buster (Japan) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@019A8 = 000224B6        </action> <!-- catch / throw -->
            <action>maincpu.md@019E0 = 000224B6        </action> <!-- catch / throw -->
            <action>maincpu.md@01A4E = 000224B6        </action> <!-- catch / throw -->
            <action>maincpu.mq@0745A = 4EB90002249008AD</action> <!-- direct attack / firearms -->
            <action>maincpu.mq@07470 = 4EB9000224A62B58</action> <!-- rapid attack -->
            <action>maincpu.md@0B1D4 = 000224B6        </action> <!-- catch / throw (cpu) -->
            <action>maincpu.md@0BA88 = 000224B6        </action> <!-- catch / throw (cpu) -->
            <action>maincpu.mq@22490 = 08ED00070002082D</action>
            <action>maincpu.mq@22498 = 00001000670608AD</action>
            <action>maincpu.mq@224A0 = 000700024E75002D</action>
            <action>maincpu.mq@224A8 = 00C00002082D0000</action>
            <action>maincpu.mq@224B0 = 100060EA4E754EB8</action>
            <action>maincpu.mq@224B8 = 4080082B00001000</action>
            <action>maincpu.mq@224C0 = 6704303C80004E75</action>
            <!--
            22490 | 08ED 0007 0002 : bset    #$7, ($2,A5)    // direct attack / firearms
            22496 | 082D 0000 1000 : btst    #$0, ($1000,A5)
            2249C | 6706           : beq     $224a4
            2249E | 08AD 0007 0002 : bclr    #$7, ($2,A5)
            224A4 | 4E75           : rts
            224A6 | 002D 00C0 0002 : ori.b   #$c0, ($2,A5)   // rapid attack
            224AC | 082D 0000 1000 : btst    #$0, ($1000,A5)
            224B2 | 60EA           : bne     $2249e
            224B4 | 4E75           : rts
            224B6 | 4EB8 4080      : jsr     $4080.w         // catch / throw
            224BA | 082B 0000 1000 : btst    #$0, ($1000,A3)
            224C0 | 6704           : beq     $224c6
            224C2 | 303C 8000      : move.w  #$8000, D0
            224C6 | 4E75           : rts
            -->
        </script>
        <script state="run">
            <action condition="(param band 01) == 00">maincpu.pb@103808 &amp;= ~01</action>
            <action condition="(param band 02) == 00">maincpu.pb@10380C &amp;= ~01</action>
            <action condition="(param band 01) != 00">maincpu.pb@103808 |= 01     </action>
            <action condition="(param band 02) != 00">maincpu.pb@10380C |= 01     </action>
        </script>
        <script state="off">
            <action>maincpu.md@019A8 = 00004080        </action>
            <action>maincpu.md@019E0 = 00004080        </action>
            <action>maincpu.md@01A4E = 00004080        </action>
            <action>maincpu.mq@0745A = 08ED0007000208AD</action>
            <action>maincpu.mq@07470 = 002D00C000022B58</action>
            <action>maincpu.md@0B1D4 = 00004080        </action>
            <action>maincpu.md@0BA88 = 00004080        </action>
            <action>maincpu.mq@22490 = 0000000000000000</action>
            <action>maincpu.mq@22498 = 0000000000000000</action>
            <action>maincpu.mq@224A0 = 0000000000000000</action>
            <action>maincpu.mq@224A8 = 0000000000000000</action>
            <action>maincpu.mq@224B0 = 0000000000000000</action>
            <action>maincpu.mq@224B8 = 0000000000000000</action>
            <action>maincpu.mq@224C0 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="change">
            <!-- 1P kick -->
            <action condition="(param band 01) == 00">maincpu.mb@3EF1 = 0C</action>
            <action condition="(param band 01) != 00">maincpu.mb@3EF1 = 04</action>
            <!-- 1P punch -->
            <action condition="(param band 01) == 00">maincpu.mb@3F07 = 08</action>
            <action condition="(param band 01) != 00">maincpu.mb@3F07 = 00</action>
            <!-- 2P kick -->
            <action condition="(param band 02) == 00">maincpu.mb@3F6B = 0A</action>
            <action condition="(param band 02) != 00">maincpu.mb@3F6B = 02</action>
            <!-- 2P punch -->
            <action condition="(param band 02) == 00">maincpu.mb@3F77 = 0C</action>
            <action condition="(param band 02) != 00">maincpu.mb@3F77 = 04</action>
        </script>
        <script state="off">
            <action>maincpu.mb@3EF1 = 0C</action>
            <action>maincpu.mb@3F07 = 08</action>
            <action>maincpu.mb@3F6B = 0A</action>
            <action>maincpu.mb@3F77 = 0C</action>
        </script>
    </cheat>

    <cheat desc="action speed up (test)">
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@07368 = 4EB9000224C84E71</action>
            <action>maincpu.mq@224C8 = 1B580083082D0001</action>
            <action>maincpu.mq@224D0 = 10006718102D0082</action>
            <action>maincpu.mq@224D8 = 43FA00184A116706</action>
            <action>maincpu.mq@224E0 = B019670860F61B7C</action>
            <action>maincpu.mq@224E8 = 000100832B480180</action>
            <action>maincpu.mq@224F0 = 4E75022C2F303132</action>
            <action>maincpu.mq@224F8 = 36487C0000000000</action>
            <!--
            224C8 | 1B58 0083      : move.b  (A0)+, ($83,A5)
            224CC | 082D 0001 1000 : btst    #$1, ($1000,A5)
            224D2 | 6718           : beq     $224ec
            224D4 | 102D 0082      : move.b  ($82,A5), D0
            224D8 | 43FA 0018      : lea     ($18,PC) ; ($224f2), A1
            224DC | 4A11           : tst.b   (A1)
            224DE | 6706           : beq     $224e6
            224E0 | B019           : cmp.b   (A1)+, D0
            224E2 | 6708           : beq     $224ec
            224E4 | 60F6           : bra     $224dc
            224E6 | 1B7C 0001 0083 : move.b  #$1, ($83,A5)
            224EC | 2B48 0180      : move.l  A0, ($180,A5)
            224F0 | 4E75           : rts
            224F2 - 224FA          : action state table
            -->
        </script>
        <script state="run">
            <action condition="(param band 01) == 00">maincpu.pb@103808 &amp;= ~02</action>
            <action condition="(param band 02) == 00">maincpu.pb@10380C &amp;= ~02</action>
            <action condition="(param band 01) != 00">maincpu.pb@103808 |= 02     </action>
            <action condition="(param band 02) != 00">maincpu.pb@10380C |= 02     </action>
        </script>
        <script state="off">
            <action>maincpu.mq@07368 = 1B5800832B480180</action>
            <action>maincpu.mq@224C8 = 0000000000000000</action>
            <action>maincpu.mq@224D0 = 0000000000000000</action>
            <action>maincpu.mq@224D8 = 0000000000000000</action>
            <action>maincpu.mq@224E0 = 0000000000000000</action>
            <action>maincpu.mq@224E8 = 0000000000000000</action>
            <action>maincpu.mq@224F0 = 0000000000000000</action>
            <action>maincpu.mq@224F8 = 0000000000000000</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">
            <!-- normal stage -->
            <action>maincpu.mb@A139 = param</action>
            <action>maincpu.mb@A1EB = param</action> <!-- initialize -->
            <!-- bonus stage -->
            <action>maincpu.mb@A17B = param</action>
            <action>maincpu.mb@A201 = param</action> <!-- initialize -->
        </script>
        <script state="off">
            <action>maincpu.mb@A139 = 32</action>
            <action>maincpu.mb@A1EB = 32</action>
            <action>maincpu.mb@A17B = 14</action>
            <action>maincpu.mb@A201 = 14</action>
        </script>
    </cheat>

    <cheat desc="bonus stage">
        <parameter>
            <item value="0x603E">none  </item>
            <item value="0x6030">always</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@531A = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@531A = 673E</action>
        </script>
    </cheat>

    <cheat desc="unlock secret characters">
        <script state="on">
            <action>maincpu.mw@909C = 4E71</action>
        </script>
        <script state="off">
            <action>maincpu.mw@909C = 6706</action>
        </script>
    </cheat>

    <cheat desc="selectable same character">
        <script state="on">
            <action>maincpu.mb@90B4 = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mb@90B4 = 66</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.md@09A4A = 00022500        </action>
            <action>maincpu.mq@22500 = 4EB8613E41F90010</action>
            <action>maincpu.mq@22508 = 000043E8638D1039</action>
            <action>maincpu.mq@22510 = 00B80000B0280001</action>
            <action>maincpu.mq@22518 = 67360C0000FB6602</action>
            <action>maincpu.mq@22520 = 53100C0000F76602</action>
            <action>maincpu.mq@22528 = 52100C0000FD6604</action>
            <action>maincpu.mq@22530 = 041000100C0000FE</action>
            <action>maincpu.mq@22538 = 6604061000100C00</action>
            <action>maincpu.mq@22540 = 00EF660212900C00</action>
            <action>maincpu.mq@22548 = 00DF660412BC0080</action>
            <action>maincpu.mq@22550 = 1140000160AA0000</action>
            <!--
            22500 | 4EB8 613E      : jsr     $613e.w
            22504 | 41F9 0010 0000 : lea     $100000.l, A0  // sound code address
            2250A | 43E8 638D      : lea     ($638d,A0), A1 // sound latch address ($10638D)
            2250E | 1039 00B8 0000 : move.b  $b80000.l, D0  // read input
            22514 | B028 0001      : cmp.b   ($1,A0), D0
            22518 | 6736           : beq     $22550
            2251A | 0C00 00FB      : cmpi.b  #-$5, D0
            2251E | 6602           : bne     $22522
            22520 | 5310           : subq.b  #1, (A0)       // decrease code -01
            22522 | 0C00 00F7      : cmpi.b  #-$9, D0
            22526 | 6602           : bne     $2252a
            22528 | 5210           : addq.b  #1, (A0)       // increase code +01
            2252A | 0C00 00FD      : cmpi.b  #-$3, D0
            2252E | 6604           : bne     $22534
            22530 | 0410 0010      : subi.b  #$10, (A0)     // decrease code -10
            22534 | 0C00 00FE      : cmpi.b  #-$2, D0
            22538 | 6604           : bne     $2253e
            2253A | 0610 0010      : addi.b  #$10, (A0)     // increase code +10
            2253E | 0C00 00EF      : cmpi.b  #-$11, D0
            22542 | 6602           : bne     $22546
            22544 | 1290           : move.b  (A0), (A1)     // play sound
            22546 | 0C00 00DF      : cmpi.b  #-$21, D0
            2254A | 6604           : bne     $22550
            2254C | 12BC 0080      : move.b  #$80, (A1)     // stop sound
            22550 | 1140 0001      : move.b  D0, ($1,A0)
            22554 | 60AA           : bra     $22500
            -->
        </script>
        <script state="run">
            <output format="----- 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@100000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@09A4A = 000075AC        </action>
            <action>maincpu.mq@22500 = 0000000000000000</action>
            <action>maincpu.mq@22508 = 0000000000000000</action>
            <action>maincpu.mq@22510 = 0000000000000000</action>
            <action>maincpu.mq@22518 = 0000000000000000</action>
            <action>maincpu.mq@22520 = 0000000000000000</action>
            <action>maincpu.mq@22528 = 0000000000000000</action>
            <action>maincpu.mq@22530 = 0000000000000000</action>
            <action>maincpu.mq@22538 = 0000000000000000</action>
            <action>maincpu.mq@22540 = 0000000000000000</action>
            <action>maincpu.mq@22548 = 0000000000000000</action>
            <action>maincpu.mq@22550 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.md@22222 = 6000005A</action> <!-- ram -->
            <action>maincpu.md@2238E = 600000B4</action> <!-- rom -->
        </script>
        <script state="off">
            <action>maincpu.md@22222 = 286D0004</action>
            <action>maincpu.md@2238E = 4DF80000</action>
        </script>
    </cheat>

</mamecheat>

[shogwarr]+ Shogun Warriors/Fujiyama Buster

Posted: Mon May 12, 2025 10:16 am
by jman
shogwarru.xml

Code: Select all

<!-- Shogun Warriors (US) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@019A8 = 000224A6        </action> <!-- catch / throw -->
            <action>maincpu.md@019E0 = 000224A6        </action> <!-- catch / throw -->
            <action>maincpu.md@01A4E = 000224A6        </action> <!-- catch / throw -->
            <action>maincpu.mq@0745A = 4EB90002248008AD</action> <!-- direct attack / firearms -->
            <action>maincpu.mq@07470 = 4EB9000224962B58</action> <!-- rapid attack -->
            <action>maincpu.md@0B1D4 = 000224A6        </action> <!-- catch / throw (cpu) -->
            <action>maincpu.md@0BA88 = 000224A6        </action> <!-- catch / throw (cpu) -->
            <action>maincpu.mq@22480 = 08ED00070002082D</action>
            <action>maincpu.mq@22488 = 00001000670608AD</action>
            <action>maincpu.mq@22490 = 000700024E75002D</action>
            <action>maincpu.mq@22498 = 00C00002082D0000</action>
            <action>maincpu.mq@224A0 = 100060EA4E754EB8</action>
            <action>maincpu.mq@224A8 = 4080082B00001000</action>
            <action>maincpu.mq@224B0 = 6704303C80004E75</action>
            <!--
            22480 | 08ED 0007 0002 : bset    #$7, ($2,A5)    // direct attack / firearms
            22486 | 082D 0000 1000 : btst    #$0, ($1000,A5)
            2248C | 6706           : beq     $22494
            2248E | 08AD 0007 0002 : bclr    #$7, ($2,A5)
            22494 | 4E75           : rts
            22496 | 002D 00C0 0002 : ori.b   #$c0, ($2,A5)   // rapid attack
            2249C | 082D 0000 1000 : btst    #$0, ($1000,A5)
            224A2 | 60EA           : bne     $2248e
            224A4 | 4E75           : rts
            224A6 | 4EB8 4080      : jsr     $4080.w         // catch / throw
            224AA | 082B 0000 1000 : btst    #$0, ($1000,A3)
            224B0 | 6704           : beq     $224b6
            224B2 | 303C 8000      : move.w  #$8000, D0
            224B6 | 4E75           : rts
            -->
        </script>
        <script state="run">
            <action condition="(param band 01) == 00">maincpu.pb@103808 &amp;= ~01</action>
            <action condition="(param band 02) == 00">maincpu.pb@10380C &amp;= ~01</action>
            <action condition="(param band 01) != 00">maincpu.pb@103808 |= 01     </action>
            <action condition="(param band 02) != 00">maincpu.pb@10380C |= 01     </action>
        </script>
        <script state="off">
            <action>maincpu.md@019A8 = 00004080        </action>
            <action>maincpu.md@019E0 = 00004080        </action>
            <action>maincpu.md@01A4E = 00004080        </action>
            <action>maincpu.mq@0745A = 08ED0007000208AD</action>
            <action>maincpu.mq@07470 = 002D00C000022B58</action>
            <action>maincpu.md@0B1D4 = 00004080        </action>
            <action>maincpu.md@0BA88 = 00004080        </action>
            <action>maincpu.mq@22480 = 0000000000000000</action>
            <action>maincpu.mq@22488 = 0000000000000000</action>
            <action>maincpu.mq@22490 = 0000000000000000</action>
            <action>maincpu.mq@22498 = 0000000000000000</action>
            <action>maincpu.mq@224A0 = 0000000000000000</action>
            <action>maincpu.mq@224A8 = 0000000000000000</action>
            <action>maincpu.mq@224B0 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="change">
            <!-- 1P kick -->
            <action condition="(param band 01) == 00">maincpu.mb@3EF1 = 0C</action>
            <action condition="(param band 01) != 00">maincpu.mb@3EF1 = 04</action>
            <!-- 1P punch -->
            <action condition="(param band 01) == 00">maincpu.mb@3F07 = 08</action>
            <action condition="(param band 01) != 00">maincpu.mb@3F07 = 00</action>
            <!-- 2P kick -->
            <action condition="(param band 02) == 00">maincpu.mb@3F6B = 0A</action>
            <action condition="(param band 02) != 00">maincpu.mb@3F6B = 02</action>
            <!-- 2P punch -->
            <action condition="(param band 02) == 00">maincpu.mb@3F77 = 0C</action>
            <action condition="(param band 02) != 00">maincpu.mb@3F77 = 04</action>
        </script>
        <script state="off">
            <action>maincpu.mb@3EF1 = 0C</action>
            <action>maincpu.mb@3F07 = 08</action>
            <action>maincpu.mb@3F6B = 0A</action>
            <action>maincpu.mb@3F77 = 0C</action>
        </script>
    </cheat>

    <cheat desc="action speed up (test)">
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@07368 = 4EB9000224B84E71</action>
            <action>maincpu.mq@224B8 = 1B580083082D0001</action>
            <action>maincpu.mq@224C0 = 10006718102D0082</action>
            <action>maincpu.mq@224C8 = 43FA00184A116706</action>
            <action>maincpu.mq@224D0 = B019670860F61B7C</action>
            <action>maincpu.mq@224D8 = 000100832B480180</action>
            <action>maincpu.mq@224E0 = 4E75022C2F303132</action>
            <action>maincpu.mq@224E8 = 36487C0000000000</action>
            <!--
            224B8 | 1B58 0083      : move.b  (A0)+, ($83,A5)
            224BC | 082D 0001 1000 : btst    #$1, ($1000,A5)
            224C2 | 6718           : beq     $224dc
            224C4 | 102D 0082      : move.b  ($82,A5), D0
            224C8 | 43FA 0018      : lea     ($18,PC) ; ($224e2), A1
            224CC | 4A11           : tst.b   (A1)
            224CE | 6706           : beq     $224d6
            224D0 | B019           : cmp.b   (A1)+, D0
            224D2 | 6708           : beq     $224dc
            224D4 | 60F6           : bra     $224cc
            224D6 | 1B7C 0001 0083 : move.b  #$1, ($83,A5)
            224DC | 2B48 0180      : move.l  A0, ($180,A5)
            224E0 | 4E75           : rts
            224E2 - 224EA          : action state table
            -->
        </script>
        <script state="run">
            <action condition="(param band 01) == 00">maincpu.pb@103808 &amp;= ~02</action>
            <action condition="(param band 02) == 00">maincpu.pb@10380C &amp;= ~02</action>
            <action condition="(param band 01) != 00">maincpu.pb@103808 |= 02     </action>
            <action condition="(param band 02) != 00">maincpu.pb@10380C |= 02     </action>
        </script>
        <script state="off">
            <action>maincpu.mq@07368 = 1B5800832B480180</action>
            <action>maincpu.mq@224B8 = 0000000000000000</action>
            <action>maincpu.mq@224C0 = 0000000000000000</action>
            <action>maincpu.mq@224C8 = 0000000000000000</action>
            <action>maincpu.mq@224D0 = 0000000000000000</action>
            <action>maincpu.mq@224D8 = 0000000000000000</action>
            <action>maincpu.mq@224E0 = 0000000000000000</action>
            <action>maincpu.mq@224E8 = 0000000000000000</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">
            <!-- normal stage -->
            <action>maincpu.mb@A139 = param</action>
            <action>maincpu.mb@A1EB = param</action> <!-- initialize -->
            <!-- bonus stage -->
            <action>maincpu.mb@A17B = param</action>
            <action>maincpu.mb@A201 = param</action> <!-- initialize -->
        </script>
        <script state="off">
            <action>maincpu.mb@A139 = 32</action>
            <action>maincpu.mb@A1EB = 32</action>
            <action>maincpu.mb@A17B = 14</action>
            <action>maincpu.mb@A201 = 14</action>
        </script>
    </cheat>

    <cheat desc="bonus stage">
        <parameter>
            <item value="0x603E">none  </item>
            <item value="0x6030">always</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@531A = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@531A = 673E</action>
        </script>
    </cheat>

    <cheat desc="unlock secret characters">
        <script state="on">
            <action>maincpu.mw@909C = 4E71</action>
        </script>
        <script state="off">
            <action>maincpu.mw@909C = 6706</action>
        </script>
    </cheat>

    <cheat desc="selectable same character">
        <script state="on">
            <action>maincpu.mb@90B4 = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mb@90B4 = 66</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mw@09A3A = 0002            </action> <!-- skip region check -->
            <action>maincpu.md@09A4A = 000224F0        </action>
            <action>maincpu.mq@224F0 = 4EB8613E41F90010</action>
            <action>maincpu.mq@224F8 = 000043E8638D1039</action>
            <action>maincpu.mq@22500 = 00B80000B0280001</action>
            <action>maincpu.mq@22508 = 67360C0000FB6602</action>
            <action>maincpu.mq@22510 = 53100C0000F76602</action>
            <action>maincpu.mq@22518 = 52100C0000FD6604</action>
            <action>maincpu.mq@22520 = 041000100C0000FE</action>
            <action>maincpu.mq@22528 = 6604061000100C00</action>
            <action>maincpu.mq@22530 = 00EF660212900C00</action>
            <action>maincpu.mq@22538 = 00DF660412BC0080</action>
            <action>maincpu.mq@22540 = 1140000160AA0000</action>
            <!--
            224F0 | 4EB8 613E      : jsr     $613e.w
            224F4 | 41F9 0010 0000 : lea     $100000.l, A0  // sound code address
            224FA | 43E8 638D      : lea     ($638d,A0), A1 // sound latch address ($10638D)
            224FE | 1039 00B8 0000 : move.b  $b80000.l, D0  // read input
            22504 | B028 0001      : cmp.b   ($1,A0), D0
            22508 | 6736           : beq     $224f0
            2250A | 0C00 00FB      : cmpi.b  #-$5, D0
            2250E | 6602           : bne     $22512
            22510 | 5310           : subq.b  #1, (A0)       // decrease code -01
            22512 | 0C00 00F7      : cmpi.b  #-$9, D0
            22516 | 6602           : bne     $2251a
            22518 | 5210           : addq.b  #1, (A0)       // increase code +01
            2251A | 0C00 00FD      : cmpi.b  #-$3, D0
            2251E | 6604           : bne     $22524
            22520 | 0410 0010      : subi.b  #$10, (A0)     // decrease code -10
            22524 | 0C00 00FE      : cmpi.b  #-$2, D0
            22528 | 6604           : bne     $2252e
            2252A | 0610 0010      : addi.b  #$10, (A0)     // increase code +10
            2252E | 0C00 00EF      : cmpi.b  #-$11, D0
            22532 | 6602           : bne     $22536
            22534 | 1290           : move.b  (A0), (A1)     // play sound
            22536 | 0C00 00DF      : cmpi.b  #-$21, D0
            2253A | 6604           : bne     $22540
            2253C | 12BC 0080      : move.b  #$80, (A1)     // stop sound
            22540 | 1140 0001      : move.b  D0, ($1,A0)
            22544 | 60AA           : bra     $224f0
            -->
        </script>
        <script state="run">
            <output format="----- 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@100000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@09A3A = 0084            </action>
            <action>maincpu.md@09A4A = 000075AC        </action>
            <action>maincpu.mq@22500 = 0000000000000000</action>
            <action>maincpu.mq@22508 = 0000000000000000</action>
            <action>maincpu.mq@22510 = 0000000000000000</action>
            <action>maincpu.mq@22518 = 0000000000000000</action>
            <action>maincpu.mq@22520 = 0000000000000000</action>
            <action>maincpu.mq@22528 = 0000000000000000</action>
            <action>maincpu.mq@22530 = 0000000000000000</action>
            <action>maincpu.mq@22538 = 0000000000000000</action>
            <action>maincpu.mq@22540 = 0000000000000000</action>
            <action>maincpu.mq@22548 = 0000000000000000</action>
            <action>maincpu.mq@22550 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.md@22214 = 6000005A</action> <!-- ram -->
            <action>maincpu.md@22380 = 600000B4</action> <!-- rom -->
        </script>
        <script state="off">
            <action>maincpu.md@22214 = 286D0004</action>
            <action>maincpu.md@22380 = 4DF80000</action>
        </script>
    </cheat>

</mamecheat>
  • "no hit" : Major rewritten routine.
  • "action speed up" : Renamed from "attack speed up". But test code because some problems happen (character freeze, object flicker in the ending etc).
  • "skip ram/rom check" : Renamed from "skip rom check". Added code for RAM check.