Code: Select all
<!-- Heavy Metal (315-5135) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.ob@523C = 18 </action> <!-- objects -->
<action>maincpu.mw@5262 = 5264</action> <!-- pressed -->
<action>maincpu.ob@5858 = C9 </action> <!-- trap -->
</script>
<script state="off">
<action>maincpu.ob@523C = 30 </action>
<action>maincpu.mw@5262 = 535E</action>
<action>maincpu.ob@5858 = C8 </action>
</script>
</cheat>
<cheat desc="walk through wall">
<script state="on">
<action>maincpu.ob@54A6 = 18</action> <!-- left/right -->
<action>maincpu.ob@54F6 = 18</action> <!-- up/down -->
<action>maincpu.ob@5549 = C9</action> <!-- diagonal -->
</script>
<script state="off">
<action>maincpu.ob@54A6 = 20</action>
<action>maincpu.ob@54F6 = 28</action>
<action>maincpu.ob@5549 = C8</action>
</script>
</cheat>
<cheat desc="rapid fire">
<script state="on">
<action>maincpu.ob@4D9E = 00</action>
</script>
<script state="off">
<action>maincpu.ob@4D9E = D8</action>
</script>
</cheat>
<cheat desc="fast cool down">
<script state="on">
<action>maincpu.mb@4C32 = 00</action>
</script>
<script state="off">
<action>maincpu.mb@4C32 = 1F</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x02">02 </item>
<item value="0x04">03 </item>
<item value="0x06">04 </item>
<item value="0x08">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@5945 = -param</action> <!-- up -->
<action>maincpu.mb@5946 = param</action> <!-- upper-right : right -->
<action>maincpu.mb@5947 = -param</action> <!-- upper-right : up -->
<action>maincpu.mb@5948 = param</action> <!-- right -->
<action>maincpu.mb@594A = param</action> <!-- lower-right : right -->
<action>maincpu.mb@594B = param</action> <!-- lower-right : down -->
<action>maincpu.mb@594D = param</action> <!-- down -->
<action>maincpu.mb@594E = -param</action> <!-- lower-left : left -->
<action>maincpu.mb@594F = param</action> <!-- lower-left : down -->
<action>maincpu.mb@5950 = -param</action> <!-- left -->
<action>maincpu.mb@5952 = -param</action> <!-- upper-left : left -->
<action>maincpu.mb@5953 = -param</action> <!-- upper-left : up -->
</script>
<script state="off">
<action>maincpu.mb@5945 = FE</action>
<action>maincpu.mb@5946 = 02</action>
<action>maincpu.mb@5947 = FE</action>
<action>maincpu.mb@5948 = 08</action>
<action>maincpu.mb@594A = 02</action>
<action>maincpu.mb@594B = 02</action>
<action>maincpu.mb@594D = 02</action>
<action>maincpu.mb@594E = FE</action>
<action>maincpu.mb@594F = 02</action>
<action>maincpu.mb@5950 = FE</action>
<action>maincpu.mb@5952 = FE</action>
<action>maincpu.mb@5953 = FE</action>
</script>
</cheat>
<cheat desc="super shot">
<script state="on">
<action>maincpu.mb@78FF = 00</action>
</script>
<script state="off">
<action>maincpu.mb@78FF = 08</action>
</script>
</cheat>
<cheat desc="super missile">
<script state="on">
<action>maincpu.ob@7772 = CD</action>
<action>maincpu.ob@779D = CD</action>
<action>maincpu.ob@77B8 = CD</action>
<action>maincpu.ob@788E = 00</action>
</script>
<script state="off">
<action>maincpu.ob@7772 = C4</action>
<action>maincpu.ob@779D = C4</action>
<action>maincpu.ob@77B8 = C4</action>
<action>maincpu.ob@788E = C8</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>set "skip ic test" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mw@05BDF = 9B60 </action>
<action>maincpu.mq@11B60 = B800DB77AFC30021</action>
<action>maincpu.mq@11B68 = 3501207FFEFA2847</action>
<action>maincpu.mq@11B70 = 20EFFE340120BFFE</action>
<action>maincpu.mq@11B78 = 20DFFE0618F03E04</action>
<action>maincpu.mq@11B80 = FDFE787786103E05</action>
<action>maincpu.mq@11B88 = FE051880F67E0520</action>
<action>maincpu.mq@11B90 = CD1818D3AF0320FB</action>
<!--
9B60 | 21 00 C3 : ld hl,$C300 // sound code address
9B63 | AF : xor a
9B64 | 77 : ld (hl),a // initialize sound code
9B65 | DB 00 : in a,($00) // read input
9B67 | B8 : cp b
9B68 | 47 : ld b,a
9B69 | 28 FA : jr z,$9B65
9B6B | FE 7F : cp $7F
9B6D | 20 01 : jr nz,$9B70
9B6F | 35 : dec (hl) // decrease code -01
9B70 | FE BF : cp $BF
9B72 | 20 01 : jr nz,$9B75
9B74 | 34 : inc (hl) // increase code +01
9B75 | FE EF : cp $EF
9B77 | 20 04 : jr nz,$9B7D
9B79 | 3E F0 : ld a,$F0 // decrease code -10
9B7B | 18 06 : jr $9B83
9B7D | FE DF : cp $DF
9B7F | 20 05 : jr nz,$9B86
9B81 | 3E 10 : ld a,$10 // increase code +10
9B83 | 86 : add a,(hl)
9B84 | 77 : ld (hl),a
9B85 | 78 : ld a,b
9B86 | FE FD : cp $FD
9B88 | 20 05 : jr nz,$9B8F
9B8A | 7E : ld a,(hl) // play sound
9B8B | F6 80 : or $80
9B8D | 18 05 : jr $9B94
9B8F | FE FB : cp $FB
9B91 | 20 03 : jr nz,$9B96
9B93 | AF : xor a // stop sound
9B94 | D3 18 : out ($18),a // send sound code
9B96 | 18 CD : jr $9B65
-->
</script>
<script state="run">
<output format="----- 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="<< sound code %02X >>" line="19" align="center" >
<argument>maincpu.pb@C300</argument>
</output>
</script>
<script state="off">
<action>maincpu.mw@05BDF = 5D97 </action>
<action>maincpu.mq@11B60 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@11B68 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@11B70 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@11B78 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@11B80 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@11B88 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@11B90 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip ic test">
<script state="on">
<action>maincpu.ob@4A4C = 18</action>
<action>maincpu.mb@4A4D = 6B</action>
</script>
<script state="off">
<action>maincpu.ob@4A4C = 0E</action>
<action>maincpu.mb@4A4D = 10</action>
</script>
</cheat>
</mamecheat>
Secret Message with Special Bonus
Destroy boss with the following requirements.
- Level 1 : "NO SMOKING" 100,000 point : Lower 3 digits in score with 0 (eg 123"000", 456"000" etc)
- Level 2 : "I AM SORRY" 200,000 point : Get 4 power-up items
- Level 3 : "I LOVE YOU" 300,000 point : Destroy all enemy's missiles by player's missile
- Level 4 : "PLEASE LOVE ME" 500,000 point : Finish this level within 16 missiles