[hvymetal] Heavy Metal

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

[hvymetal] Heavy Metal

Post by jman »

hvymetal.xml

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 &quot;skip ic test&quot; 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="&lt;&lt; sound code %02X &gt;&gt;" 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>
[TIPS]
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
jman

my wip cheat database back-up (2024/12/01 ver.)
https://u3.getuploader.com/...../download/47
downloadpass : jman2020
Post Reply