[fjbuster] Shogun Warriors/Fujiyama Buster

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

[fjbuster] Shogun Warriors/Fujiyama Buster

Post 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.
Last edited by jman on Sat Oct 23, 2021 2:22 am, edited 1 time in total.
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[fjbuster] update codes

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

[fjbuster] Shogun Warriors/Fujiyama Buster (update)

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