[hbarrel]+ Heavy Barrel

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: 901
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 4 times

[hbarrel]+ Heavy Barrel

Post by jman »

hbarrel.xml

Code: Select all

<!-- Heavy Barrel (World) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@07B72 = 60</action> <!-- enemy -->
            <action>maincpu.mb@0DB1A = 60</action> <!-- arm (last boss) -->
            <action>maincpu.mb@0F6A8 = 60</action> <!-- P1 arm (boss 2) -->
            <action>maincpu.mb@0F6DE = 60</action> <!-- P2 arm (boss 2) -->
            <action>maincpu.mb@10F5A = 60</action> <!-- bullet -->
            <action>maincpu.mb@12770 = 60</action> <!-- grenade (time out) -->
        </script>
        <script state="off">
            <action>maincpu.mb@07B72 = 64</action>
            <action>maincpu.mb@0DB1A = 66</action>
            <action>maincpu.mb@0F6A8 = 64</action>
            <action>maincpu.mb@0F6DE = 64</action>
            <action>maincpu.mb@10F5A = 66</action>
            <action>maincpu.mb@12770 = 66</action>
        </script>
    </cheat>

    <cheat desc="auto fire - shot">
        <script state="on">
            <action>maincpu.mb@27D3 = 22</action> <!-- main -->
            <action>maincpu.mb@297B = 22</action> <!-- heavy barrel -->
            <action>maincpu.mb@2D99 = 22</action> <!-- sub unit (dual play) -->
        </script>
        <script state="off">
            <action>maincpu.mb@27D3 = 28</action>
            <action>maincpu.mb@297B = 28</action>
            <action>maincpu.mb@2D99 = 28</action>
        </script>
    </cheat>

    <cheat desc="joystick hack">
        <script state="on">
            <action>maincpu.mq@023CE = 4EB90005AA000C2B</action> <!-- main -->
            <action>maincpu.mq@024EA = 4EB90005AA007200</action> <!-- heavy barrel -->
            <action>maincpu.mq@5AA00 = 1A2B00220205000F</action>
            <action>maincpu.mq@5AA08 = 6706177B500C0034</action>
            <action>maincpu.mq@5AA10 = 1A2B0034D0454E75</action>
            <action>maincpu.mq@5AA18 = 00001000181C1400</action>
            <action>maincpu.mq@5AA20 = 08040C0000000000</action>
            <!--
            5AA00 | 1A2B 0022      : move.b  ($22,A3), D5
            5AA04 | 0205 000F      : andi.b  #$f, D5
            5AA08 | 6706           : beq     $5aa10
            5AA0A | 177B 500C 0034 : move.b  ($c,PC,D5.w), ($34,A3)
            5AA10 | 1A2B 0034      : move.b  ($34,A3), D5
            5AA14 | D045           : add.w   D5, D0
            5AA16 | 4E75           : rts
            5AA18 - 5AA27          : input/direction conversion table
                  input direction
                    01     00      : up
                    02     10      : down
                    04     18      : left
                    05     1c      : upper-left
                    06     14      : lower-left
                    08     08      : right
                    09     04      : upper-right
                    0a     0c      : lower-right
            -->
        </script>
        <script state="off">
            <action>maincpu.mq@023CE = 1A2B0034D0450C2B</action>
            <action>maincpu.mq@024EA = 1A2B0034D0457200</action>
            <action>maincpu.mq@5AA00 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5AA08 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5AA10 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5AA18 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5AA20 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="auto open a box">
        <script state="on">
            <action>maincpu.mb@13609 = BA</action>
        </script>
        <script state="off">
            <action>maincpu.mb@13609 = 78</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <!-- you can't stop samples (0x31 - 0x3e) by sound stop button -->
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mq@1403A = 4EB90005AA30207C</action>
            <action>maincpu.mq@5AA30 = 41F8800043F90030</action>
            <action>maincpu.mq@5AA38 = C01512001029FFEC</action>
            <action>maincpu.mq@5AA40 = B20067F60C0000FB</action>
            <action>maincpu.mq@5AA48 = 660253100C0000F7</action>
            <action>maincpu.mq@5AA50 = 660252100C0000FD</action>
            <action>maincpu.mq@5AA58 = 6604041000100C00</action>
            <action>maincpu.mq@5AA60 = 00FE660406100010</action>
            <action>maincpu.mq@5AA68 = 0C0000EF66021290</action>
            <action>maincpu.mq@5AA70 = 0C0000DF660412BC</action>
            <action>maincpu.mq@5AA78 = 000160BEFFFFFFFF</action>
            <!--
            5AA30 | 41F8 8000      : lea     $8000.w, A0   // sound code address ($ff8000)
            5AA34 | 43F9 0030 C015 : lea     $30c015.l, A1 // sound latch address
            5AA3A | 1200           : move.b  D0, D1
            5AA3C | 1029 FFEC      : move.b  (-$14,A1), D0 // read input ($30c001)
            5AA40 | B200           : cmp.b   D0, D1
            5AA42 | 67F6           : beq     $5aa3a
            5AA44 | 0C00 00FB      : cmpi.b  #-$5, D0
            5AA48 | 6602           : bne     $5aa4c
            5AA4A | 5310           : subq.b  #1, (A0)      // decrease code -01
            5AA4C | 0C00 00F7      : cmpi.b  #-$9, D0
            5AA50 | 6602           : bne     $5aa54
            5AA52 | 5210           : addq.b  #1, (A0)      // increase code +01
            5AA54 | 0C00 00FD      : cmpi.b  #-$3, D0
            5AA58 | 6604           : bne     $5aa5e
            5AA5A | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            5AA5E | 0C00 00FE      : cmpi.b  #-$2, D0
            5AA62 | 6604           : bne     $5aa68
            5AA64 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            5AA68 | 0C00 00EF      : cmpi.b  #-$11, D0
            5AA6C | 6602           : bne     $5aa70
            5AA6E | 1290           : move.b  (A0), (A1)    // play sound
            5AA70 | 0C00 00DF      : cmpi.b  #-$21, D0
            5AA74 | 6604           : bne     $5aa7a
            5AA76 | 12BC 0001      : move.b  #$1, (A1)     // stop sound
            5AA7A | 60BE           : bra     $5aa3a
            -->
        </script>
        <script state="run">
            <output format="----- heavy barrel 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 music"                    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@FF8000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@1403A = 7E09610005C0207C</action>
            <action>maincpu.mq@5AA30 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5AA38 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5AA40 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5AA48 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5AA50 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5AA58 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5AA60 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5AA68 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5AA70 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5AA78 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
hbarrel.xml

Code: Select all

<!-- Heavy Barrel (US) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@07BF6 = 60</action> <!-- enemy -->
            <action>maincpu.mb@0DBF0 = 60</action> <!-- arm (last boss) -->
            <action>maincpu.mb@0F77E = 60</action> <!-- P1 arm (boss 2) -->
            <action>maincpu.mb@0F7B4 = 60</action> <!-- P2 arm (boss 2) -->
            <action>maincpu.mb@11030 = 60</action> <!-- bullet -->
            <action>maincpu.mb@12846 = 60</action> <!-- grenade (time out) -->
        </script>
        <script state="off">
            <action>maincpu.mb@07BF6 = 64</action>
            <action>maincpu.mb@0DBF0 = 66</action>
            <action>maincpu.mb@0F77E = 64</action>
            <action>maincpu.mb@0F7B4 = 64</action>
            <action>maincpu.mb@11030 = 66</action>
            <action>maincpu.mb@12846 = 66</action>
        </script>
    </cheat>

    <cheat desc="auto fire - shot">
        <script state="on">
            <action>maincpu.mb@284B = 22</action> <!-- main -->
            <action>maincpu.mb@29F3 = 22</action> <!-- heavy barrel -->
            <action>maincpu.mb@2E11 = 22</action> <!-- sub unit (dual play) -->
        </script>
        <script state="off">
            <action>maincpu.mb@284B = 28</action>
            <action>maincpu.mb@29F3 = 28</action>
            <action>maincpu.mb@2E11 = 28</action>
        </script>
    </cheat>

    <cheat desc="joystick hack">
        <script state="on">
            <action>maincpu.mq@02446 = 4EB90005AA000C2B</action> <!-- main -->
            <action>maincpu.mq@02562 = 4EB90005AA007200</action> <!-- heavy barrel -->
            <action>maincpu.mq@5AA00 = 1A2B00220205000F</action>
            <action>maincpu.mq@5AA08 = 6706177B500C0034</action>
            <action>maincpu.mq@5AA10 = 1A2B0034D0454E75</action>
            <action>maincpu.mq@5AA18 = 00001000181C1400</action>
            <action>maincpu.mq@5AA20 = 08040C0000000000</action>
            <!--
            5AA00 | 1A2B 0022      : move.b  ($22,A3), D5
            5AA04 | 0205 000F      : andi.b  #$f, D5
            5AA08 | 6706           : beq     $5aa10
            5AA0A | 177B 500C 0034 : move.b  ($c,PC,D5.w), ($34,A3)
            5AA10 | 1A2B 0034      : move.b  ($34,A3), D5
            5AA14 | D045           : add.w   D5, D0
            5AA16 | 4E75           : rts
            5AA18 - 5AA27          : input/direction conversion table
                  input direction
                    01     00      : up
                    02     10      : down
                    04     18      : left
                    05     1c      : upper-left
                    06     14      : lower-left
                    08     08      : right
                    09     04      : upper-right
                    0a     0c      : lower-right
            -->
        </script>
        <script state="off">
            <action>maincpu.mq@02446 = 1A2B0034D0450C2B</action>
            <action>maincpu.mq@02562 = 1A2B0034D0457200</action>
            <action>maincpu.mq@5AA00 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5AA08 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5AA10 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5AA18 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5AA20 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="auto open a box">
        <script state="on">
            <action>maincpu.mb@1370D = BA</action>
        </script>
        <script state="off">
            <action>maincpu.mb@1370D = 78</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <!-- you can't stop samples (0x31 - 0x3e) by sound stop button -->
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mq@1413E = 4EB90005AA30207C</action>
            <action>maincpu.mq@5AA30 = 41F8800043F90030</action>
            <action>maincpu.mq@5AA38 = C01512001029FFEC</action>
            <action>maincpu.mq@5AA40 = B20067F60C0000FB</action>
            <action>maincpu.mq@5AA48 = 660253100C0000F7</action>
            <action>maincpu.mq@5AA50 = 660252100C0000FD</action>
            <action>maincpu.mq@5AA58 = 6604041000100C00</action>
            <action>maincpu.mq@5AA60 = 00FE660406100010</action>
            <action>maincpu.mq@5AA68 = 0C0000EF66021290</action>
            <action>maincpu.mq@5AA70 = 0C0000DF660412BC</action>
            <action>maincpu.mq@5AA78 = 000160BEFFFFFFFF</action>
            <!--
            5AA30 | 41F8 8000      : lea     $8000.w, A0   // sound code address ($ff8000)
            5AA34 | 43F9 0030 C015 : lea     $30c015.l, A1 // sound latch address
            5AA3A | 1200           : move.b  D0, D1
            5AA3C | 1029 FFEC      : move.b  (-$14,A1), D0 // read input ($30c001)
            5AA40 | B200           : cmp.b   D0, D1
            5AA42 | 67F6           : beq     $5aa3a
            5AA44 | 0C00 00FB      : cmpi.b  #-$5, D0
            5AA48 | 6602           : bne     $5aa4c
            5AA4A | 5310           : subq.b  #1, (A0)      // decrease code -01
            5AA4C | 0C00 00F7      : cmpi.b  #-$9, D0
            5AA50 | 6602           : bne     $5aa54
            5AA52 | 5210           : addq.b  #1, (A0)      // increase code +01
            5AA54 | 0C00 00FD      : cmpi.b  #-$3, D0
            5AA58 | 6604           : bne     $5aa5e
            5AA5A | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            5AA5E | 0C00 00FE      : cmpi.b  #-$2, D0
            5AA62 | 6604           : bne     $5aa68
            5AA64 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            5AA68 | 0C00 00EF      : cmpi.b  #-$11, D0
            5AA6C | 6602           : bne     $5aa70
            5AA6E | 1290           : move.b  (A0), (A1)    // play sound
            5AA70 | 0C00 00DF      : cmpi.b  #-$21, D0
            5AA74 | 6604           : bne     $5aa7a
            5AA76 | 12BC 0001      : move.b  #$1, (A1)     // stop sound
            5AA7A | 60BE           : bra     $5aa3a
            -->
        </script>
        <script state="run">
            <output format="----- heavy barrel 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 music"                    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@FF8000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@1413E = 7E09610005D0207C</action>
            <action>maincpu.mq@5AA30 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5AA38 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5AA40 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5AA48 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5AA50 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5AA58 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5AA60 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5AA68 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5AA70 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5AA78 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
"sound test mode" : You can't stop samples (0x31 - 0x3e) by sound stop button.

BTW, this game has timer. Red grenades are thrown from out of screen when time is out.

Code: Select all

    <cheat desc="Infinite Time">
        <script state="run">
            <action>maincpu.pw@FFBE6A = 0000</action>
        </script>
    </cheat>

    <cheat desc="Time Out Now">
        <script state="on">
            <action>maincpu.pw@FFBE6A = 03C0</action>
        </script>
    </cheat>
The above "time out now" code is for hbarrel. In hbarrelu, you need to replace 0x3c0 with 0x400.
Turn "infinite time" OFF when you use "time out now" code.
Post Reply