[hbarrel]+ Heavy Barrel
Posted: Sun May 12, 2024 2:29 am
hbarrel.xml
hbarrel.xml
"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.
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.
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="<< sound code %02X >>" 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>
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="<< sound code %02X >>" 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>
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>
Turn "infinite time" OFF when you use "time out now" code.