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.