[bakubrkr] Explosive Breaker/Bakuretsu Breaker

This forum is for posting M.A.M.E. Work In Progress "Arcade"cheats that are not quite ready for the prime time. If the cheats are buggy or the cheat descriptions are non-standard then please post them here. Help maybe given but there are no guarantees and they will only be added to the cheat file when the cheat file maintainer is happy with them.
Post Reply
jman
Posts: 842
Joined: Tue Dec 01, 2020 1:24 pm

[bakubrkr] Explosive Breaker/Bakuretsu Breaker

Post by jman »

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>maincpu.mb@8aba = 60</action>
    </script>
    <script state="off">
        <action>maincpu.mb@8aba = 66</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mq@0be0e = 4eb90003e9806000</action> <!-- P2 -->
        <action>maincpu.mq@0be1e = 4eb90003e98a2268</action> <!-- P1 -->
        <action>maincpu.mq@3e980 = 123900100078610c</action>
        <action>maincpu.mq@3e988 = 4e75123900100076</action>
        <action>maincpu.mq@3e990 = 61024e7514014602</action>
        <action>maincpu.mq@3e998 = 0202001080024e75</action>
        <!--
        3e980 | 1239 0010 0078 : move.b $100078.l,D1 // P2
        3e986 | 610c           : bsr    $3e994
        3e988 | 4e75           : rts
        3e98a | 1239 0010 0076 : move.b $100076.l,D1 // P1
        3e990 | 6102           : bsr    $3e994
        3e992 | 4e75           : rts
        3e994 | 1401           : move.b D1,D2
        3e996 | 4602           : not.b  D2
        3e998 | 0202 0010      : andi.b #$10,D2
        3e99c | 8002           : or.b   D2,D0
        3e99e | 4e75           : rts
        -->
        <action>maincpu.mq@341f8 = 080100046724197c</action> <!-- mifune -->
    </script>
    <script state="off">
        <action>maincpu.mq@0be0e = 1239001000786000</action>
        <action>maincpu.mq@0be1e = 1239001000762268</action>
        <action>maincpu.mq@3e980 = ffffffffffffffff</action>
        <action>maincpu.mq@3e988 = ffffffffffffffff</action>
        <action>maincpu.mq@3e990 = ffffffffffffffff</action>
        <action>maincpu.mq@3e998 = ffffffffffffffff</action>
        <action>maincpu.mw@341f8 = 080100046710197c</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter>
        <item value="0x0010">01 (slow)</item>
        <item value="0x0080">02       </item>
        <item value="0x0100">03       </item>
        <item value="0x0180">04       </item>
        <item value="0x0200">05 (fast)</item>
    </parameter>
    <script state="change">
        <action>maincpu.mw@250d4 = param</action> <!-- up -->
        <action>maincpu.mw@250de = param</action> <!-- down -->
        <action>maincpu.mw@250e8 = param</action> <!-- left -->
        <action>maincpu.mw@250f6 = param</action> <!-- upper-left : left -->
        <action>maincpu.mw@250fc = param</action> <!-- upper-left : up -->
        <action>maincpu.mw@2510a = param</action> <!-- lower-left : left -->
        <action>maincpu.mw@25110 = param</action> <!-- lower-left : down -->
        <action>maincpu.mw@2511e = param</action> <!-- right -->
        <action>maincpu.mw@2512c = param</action> <!-- upper-right : right -->
        <action>maincpu.mw@25132 = param</action> <!-- upper-right : up -->
        <action>maincpu.mw@25140 = param</action> <!-- lower-right : right -->
        <action>maincpu.mw@25146 = param</action> <!-- lower-right : down -->
    </script>
    <script state="off">
        <action>maincpu.mw@250d4 = 00a0</action>
        <action>maincpu.mw@250de = 00a0</action>
        <action>maincpu.mw@250e8 = 00a0</action>
        <action>maincpu.mw@250f6 = 0070</action>
        <action>maincpu.mw@250fc = 0070</action>
        <action>maincpu.mw@2510a = 0070</action>
        <action>maincpu.mw@25110 = 0070</action>
        <action>maincpu.mw@2511e = 00a0</action>
        <action>maincpu.mw@2512c = 0070</action>
        <action>maincpu.mw@25132 = 0070</action>
        <action>maincpu.mw@25140 = 0070</action>
        <action>maincpu.mw@25146 = 0070</action>
    </script>
</cheat>

<cheat desc="selectable same character">
    <script state="on">
        <!-- normal start -->
        <action>maincpu.mw@fe42 = 6000</action>
        <action>maincpu.mw@fe74 = 6000</action>
        <action>maincpu.mw@feac = 6000</action>
        <action>maincpu.mw@fed4 = 6000</action>
        <action>maincpu.mw@ff0c = 4e71</action>
        <!-- join -->
        <action>maincpu.mb@24cb2 = 60</action>
        <action>maincpu.mb@24cd2 = 60</action>
    </script>
    <script state="off">
        <action>maincpu.mw@0fe42 = 6600</action>
        <action>maincpu.mw@0fe74 = 6600</action>
        <action>maincpu.mw@0feac = 6600</action>
        <action>maincpu.mw@0fed4 = 6600</action>
        <action>maincpu.mw@0ff0c = 6710</action>
        <action>maincpu.mb@24cb2 =   66</action>
        <action>maincpu.mb@24cd2 =   66</action>
    </script>
</cheat>

<cheat desc="unlock special test mode">
    <comment>reset the game (F3) to enter special test mode</comment>
    <script state="on">
        <!-- test mode -->
        <action>maincpu.mb@ce74 = 60</action>
        <!-- cursor -->
        <action>maincpu.mb@1bbad = 05</action>
        <action>maincpu.mb@1bbfb = 05</action>
        <!-- open hidden items -->
        <action>maincpu.md@1bab4 =         0003e9a0</action>
        <action>maincpu.mq@3e9a0 = 4eb900016a18363c</action>
        <action>maincpu.mq@3e9a8 = 0004203c0000011e</action>
        <action>maincpu.mq@3e9b0 = 41f90001bcc24eb9</action>
        <action>maincpu.mq@3e9b8 = 00016a18363c0004</action>
        <action>maincpu.mq@3e9c0 = 203c0000012c41f9</action>
        <action>maincpu.mq@3e9c8 = 0001bce84eb90001</action>
        <action>maincpu.mq@3e9d0 = 6a18363c0004203c</action>
        <action>maincpu.mq@3e9d8 = 0000013341f90001</action>
        <action>maincpu.mq@3e9e0 = bd0e4eb900016a18</action>
        <action>maincpu.mq@3e9e8 = 4e75ffffffffffff</action>
        <!--
        3e9a0 | 4eb9 0001 6a18 : jsr    $16a18.l
        3e9a6 | 363c 0004      : move.w #$4, D3      // character check
        3e9aa | 203c 0000 011e : move.l #$11e, D0
        3e9b0 | 41f9 0001 bcc2 : lea    $1bcc2.l, A0
        3e9b6 | 4eb9 0001 6a18 : jsr    $16a18.l
        3e9bc | 363c 0004      : move.w #$4, D3      // background check
        3e9c0 | 203c 0000 012c : move.l #$12c, D0
        3e9c6 | 41f9 0001 bce8 : lea    $1bce8.l, A0
        3e9cc | 4eb9 0001 6a18 : jsr    $16a18.l
        3e9d2 | 363c 0004      : move.w #$4, D3      // sound check
        3e9d6 | 203c 0000 0133 : move.l #$133, D0
        3e9dc | 41f9 0001 bd0e : lea    $1bd0e.l, A0
        3e9e2 | 4eb9 0001 6a18 : jsr    $16a18.l
        3e9e8 | 4e75           : rts
        -->
    </script>
    <script state="off">
        <action>maincpu.mb@0ce74 =               67</action>
        <action>maincpu.mb@1bbad =               02</action>
        <action>maincpu.mb@1bbfb =               02</action>
        <action>maincpu.md@1bab4 =         00016a18</action>
        <action>maincpu.mq@3e9a0 = ffffffffffffffff</action>
        <action>maincpu.mq@3e9a8 = ffffffffffffffff</action>
        <action>maincpu.mq@3e9b0 = ffffffffffffffff</action>
        <action>maincpu.mq@3e9b8 = ffffffffffffffff</action>
        <action>maincpu.mq@3e9c0 = ffffffffffffffff</action>
        <action>maincpu.mq@3e9c8 = ffffffffffffffff</action>
        <action>maincpu.mq@3e9d0 = ffffffffffffffff</action>
        <action>maincpu.mq@3e9d8 = ffffffffffffffff</action>
        <action>maincpu.mq@3e9e0 = ffffffffffffffff</action>
        <action>maincpu.mq@3e9e8 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="sound test mode">
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action>maincpu.md@0049e =         0003e9f0</action>
        <action>maincpu.mq@3e9f0 = 41f9001005001039</action>
        <action>maincpu.mq@3e9f8 = 00e00000b0280001</action>
        <action>maincpu.mq@3ea00 = 675a0c0000fb6602</action>
        <action>maincpu.mq@3ea08 = 53100c0000f76602</action>
        <action>maincpu.mq@3ea10 = 52100c0000fd6604</action>
        <action>maincpu.mq@3ea18 = 041000100c0000fe</action>
        <action>maincpu.mq@3ea20 = 6604061000100c00</action>
        <action>maincpu.mq@3ea28 = 00ef661a12100c01</action>
        <action>maincpu.mq@3ea30 = 002064084eb90000</action>
        <action>maincpu.mq@3ea38 = df2e600a04010020</action>
        <action>maincpu.mq@3ea40 = 4eb90000dfaa0c00</action>
        <action>maincpu.mq@3ea48 = 00df66104eb90000</action>
        <action>maincpu.mq@3ea50 = df4c123c00084eb9</action>
        <action>maincpu.mq@3ea58 = 0000df2e11400001</action>
        <action>maincpu.mq@3ea60 = 4e75ffffffffffff</action>
        <!--
        3e9f0 | 41f9 0010 0500 : lea    $100500.l,A0 // sound code address
        3e9f6 | 1039 00e0 0000 : move.b $e00000.l,D0 // read input
        3e9fc | b028 0001      : cmp.b  ($1,A0),D0
        3ea00 | 675a           : beq    $3ea5c
        3ea02 | 0c00 00fb      : cmpi.b #-$5,D0
        3ea06 | 6602           : bne    $3ea0a
        3ea08 | 5310           : subq.b #1,(A0)      // decrease code -01
        3ea0a | 0c00 00f7      : cmpi.b #-$9,D0
        3ea0e | 6602           : bne    $3ea12
        3ea10 | 5210           : addq.b #1,(A0)      // increase code +01
        3ea12 | 0c00 00fd      : cmpi.b #-$3,D0
        3ea16 | 6604           : bne    $3ea1c
        3ea18 | 0410 0010      : subi.b #$10,(A0)    // decrease code -10
        3ea1c | 0c00 00fe      : cmpi.b #-$2,D0
        3ea20 | 6604           : bne    $3ea26
        3ea22 | 0610 0010      : addi.b #$10,(A0)    // increase code +10
        3ea26 | 0c00 00ef      : cmpi.b #-$11,D0
        3ea2a | 661a           : bne    $3ea46
        3ea2c | 1210           : move.b (A0),D1
        3ea2e | 0c01 0020      : cmpi.b #$20,D1
        3ea32 | 6408           : bcc    $3ea3c
        3ea34 | 4eb9 0000 df2e : jsr    $df2e.l      // play music
        3ea3a | 600a           : bra    $3ea46
        3ea3c | 0401 0020      : subi.b #$20,D1
        3ea40 | 4eb9 0000 dfaa : jsr    $dfaa.l      // play sfx
        3ea46 | 0c00 00df      : cmpi.b #-$21,D0
        3ea4a | 6610           : bne    $3ea5c
        3ea4c | 4eb9 0000 df4c : jsr    $df4c.l      // stop sfx
        3ea52 | 123c 0008      : move.b #$8,D1
        3ea56 | 4eb9 0000 df2e : jsr    $df2e.l      // stop music
        3ea5c | 1140 0001      : move.b D0,($1,A0)
        3ea60 | 4e75           : rts
        -->
    </script>
    <script state="run">
        <output format="----- bakuretsu breaker sound test mode -----" line="10" align="center" />
        <output format="left : decrease code -01"                      line="11" align="center" />
        <output format="right : increase code +01"                     line="12" align="center" />
        <output format="up : increase code +10"                        line="13" align="center" />
        <output format="down : decrease code -10"                      line="14" align="center" />
        <output format="button 1 : play sound"                         line="15" align="center" />
        <output format="button 2 : stop sound"                         line="16" align="center" />
        <output format="----------------------------"                  line="17" align="center" />
        <output format="&lt;&lt; sound code %2.2X &gt;&gt;"            line="19" align="center">
            <argument>maincpu.pb@100500</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.md@0049e =         0000e062</action>
        <action>maincpu.mq@3e9f0 = ffffffffffffffff</action>
        <action>maincpu.mq@3e9f8 = ffffffffffffffff</action>
        <action>maincpu.mq@3ea00 = ffffffffffffffff</action>
        <action>maincpu.mq@3ea08 = ffffffffffffffff</action>
        <action>maincpu.mq@3ea10 = ffffffffffffffff</action>
        <action>maincpu.mq@3ea18 = ffffffffffffffff</action>
        <action>maincpu.mq@3ea20 = ffffffffffffffff</action>
        <action>maincpu.mq@3ea28 = ffffffffffffffff</action>
        <action>maincpu.mq@3ea30 = ffffffffffffffff</action>
        <action>maincpu.mq@3ea38 = ffffffffffffffff</action>
        <action>maincpu.mq@3ea40 = ffffffffffffffff</action>
        <action>maincpu.mq@3ea48 = ffffffffffffffff</action>
        <action>maincpu.mq@3ea50 = ffffffffffffffff</action>
        <action>maincpu.mq@3ea58 = ffffffffffffffff</action>
        <action>maincpu.mq@3ea60 = ffffffffffffffff</action>
    </script>
</cheat>
The game will crash when you get a bomb item with bomb stocks = 6. It may be original game code bug.
Post Reply