[vmetal] Varia 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: 843
Joined: Tue Dec 01, 2020 1:24 pm

[vmetal] Varia Metal

Post by jman »

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>maincpu.mb@23cf4 = 60</action> <!-- enemy -->
        <action>maincpu.mb@23dcc = 60</action> <!-- bullet -->
    </script>
    <script state="off">
        <action>maincpu.mb@23cf4 = 64</action>
        <action>maincpu.mb@23dcc = 64</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mb@2609d = 01</action>
    </script>
    <script state="off">
        <action>maincpu.mb@2609d = 18</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter min="0x01" max="0x05" step="0x01" />
    <script state="change">
        <action>maincpu.mb@2600f = param</action> <!-- left,right -->
        <action>maincpu.mb@26013 = param</action> <!-- up,down -->
        <action>maincpu.mb@26017 = param</action> <!-- upper/lower-left/right -->
        <action>maincpu.mb@2601b = param</action> <!-- upper/lower-left/right -->
    </script>
    <script state="off">
        <action>maincpu.mb@2600f = 03</action>
        <action>maincpu.mb@26013 = 03</action>
        <action>maincpu.mb@26017 = 02</action>
        <action>maincpu.mb@2601b = 02</action>
    </script>
</cheat>

<cheat desc="bullet speed">
    <parameter min="0x00" max="0x04" step="0x01" />
    <script state="on">
        <action>maincpu.md@05c9c =         0009c730</action>
        <action>maincpu.mq@9c730 = 70002f004eb90002</action>
        <action>maincpu.mq@9c738 = 610c201f51c8fff4</action>
        <action>maincpu.mq@9c740 = 4e75ffffffffffff</action>
        <!--
        9c730 | 70xx           : moveq  #$xx,D0
        9c732 | 2f00           : move.l D0,-(A7)
        9c734 | 4eb9 0002 610c : jsr    $2610c.l
        9c73a | 201f           : move.l (A7)+,D0
        9c73c | 51c8 fff4      : dbra   D0,$9c732
        9c740 | 4e75           : rts
        -->
    </script>
    <script state="change">
        <action>maincpu.mb@9c731 = param</action>
    </script>
    <script state="off">
        <action>maincpu.md@05c9c =         0002610c</action>
        <action>maincpu.mq@9c730 = ffffffffffffffff</action>
        <action>maincpu.mq@9c738 = ffffffffffffffff</action>
        <action>maincpu.mq@9c740 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="P1 max bullets up">
    <script state="on">
        <!-- shot 1 -->
        <action>maincpu.mb@26fa5 = 30</action>
        <action>maincpu.mb@26fe1 = 30</action>
        <action>maincpu.mb@2701d = 30</action>
        <action>maincpu.mb@27059 = 30</action>
        <action>maincpu.mb@27095 = 30</action>
        <action>maincpu.mb@270d1 = 30</action>
        <!-- shot 2 -->
        <action>maincpu.mb@272c1 = 30</action>
    </script>
    <script state="off">
        <action>maincpu.mb@26fa5 = 03</action>
        <action>maincpu.mb@26fe1 = 03</action>
        <action>maincpu.mb@2701d = 09</action>
        <action>maincpu.mb@27059 = 0c</action>
        <action>maincpu.mb@27095 = 0f</action>
        <action>maincpu.mb@270d1 = 0f</action>
        <action>maincpu.mb@272c1 = 03</action>
    </script>
</cheat>

<cheat desc="P2 max bullets up">
    <script state="on">
        <!-- shot 1 -->
        <action>maincpu.mb@2736b = 30</action>
        <action>maincpu.mb@273a7 = 30</action>
        <action>maincpu.mb@273e3 = 30</action>
        <action>maincpu.mb@2741f = 30</action>
        <action>maincpu.mb@2745b = 30</action>
        <action>maincpu.mb@27497 = 30</action>
        <!-- shot 2 -->
        <action>maincpu.mb@27a25 = 30</action>
        <action>maincpu.mb@27a61 = 30</action>
        <action>maincpu.mb@27a9d = 30</action>
        <action>maincpu.mb@27ad9 = 30</action>
        <action>maincpu.mb@27b15 = 30</action>
        <action>maincpu.mb@27b51 = 30</action>
    </script>
    <script state="off">
        <action>maincpu.mb@2736b = 0c</action>
        <action>maincpu.mb@273a7 = 0c</action>
        <action>maincpu.mb@273e3 = 12</action>
        <action>maincpu.mb@2741f = 12</action>
        <action>maincpu.mb@2745b = 18</action>
        <action>maincpu.mb@27497 = 18</action>
        <action>maincpu.mb@27a25 = 06</action>
        <action>maincpu.mb@27a61 = 09</action>
        <action>maincpu.mb@27a9d = 0c</action>
        <action>maincpu.mb@27ad9 = 12</action>
        <action>maincpu.mb@27b15 = 15</action>
        <action>maincpu.mb@27b51 = 18</action>
    </script>
</cheat>

<cheat desc="sound test mode">
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action>maincpu.mq@03032 = 4eb90009c7506100</action>
        <action>maincpu.mq@9c750 = 41f900ff01001401</action>
        <action>maincpu.mq@9c758 = 123900200000b401</action>
        <action>maincpu.mq@9c760 = 67f40c0100fb6602</action>
        <action>maincpu.mq@9c768 = 53500c0100f76602</action>
        <action>maincpu.mq@9c770 = 52500c0100fd6604</action>
        <action>maincpu.mq@9c778 = 045000100c0100fe</action>
        <action>maincpu.mq@9c780 = 6604065000100c01</action>
        <action>maincpu.mq@9c788 = 00ef661630100c00</action>
        <action>maincpu.mq@9c790 = 001c6d180400001c</action>
        <action>maincpu.mq@9c798 = 33c000ff008c4eb8</action>
        <action>maincpu.mq@9c7a0 = 167a0c0100df6608</action>
        <action>maincpu.mq@9c7a8 = 303cffff4eb8176a</action>
        <action>maincpu.mq@9c7b0 = 60a4ffffffffffff</action>
        <!--
        9c750 | 41f9 00ff 0100 : lea    $ff0100.l,A0 // sound code address
        9c756 | 1401           : move.b D1,D2
        9c758 | 1239 0020 0000 : move.b $200000.l,D1 // read input
        9c75e | b401           : cmp.b  D1,D2
        9c760 | 67f4           : beq    $9c756
        9c762 | 0c01 00fb      : cmpi.b #-$5,D1
        9c766 | 6602           : bne    $9c76a
        9c768 | 5350           : subq.w #1,(A0)      // decrease code -01
        9c76a | 0c01 00f7      : cmpi.b #-$9,D1
        9c76e | 6602           : bne    $9c772
        9c770 | 5250           : addq.w #1,(A0)      // increase code +01
        9c772 | 0c01 00fd      : cmpi.b #-$3,D1
        9c776 | 6604           : bne    $9c77c
        9c778 | 0450 0010      : subi.w #$10,(A0)    // decrease code -10
        9c77c | 0c01 00fe      : cmpi.b #-$2,D1
        9c780 | 6604           : bne    $9c786
        9c782 | 0650 0010      : addi.w #$10,(A0)    // increase code +10
        9c786 | 0c01 00ef      : cmpi.b #-$11,D1
        9c78a | 6616           : bne    $9c7a2
        9c78c | 3010           : move.w (A0),D0      // play sound
        9c78e | 0c00 001c      : cmpi.b #$1c,D0
        9c792 | 6d18           : blt    $9c7ac
        9c794 | 0400 001c      : subi.b #$1c,D0      // in case of sfx
        9c798 | 33c0 00ff 008c : move.w D0,$ff008c.l
        9c79e | 4eb8 167a      : jsr    $167a.w
        9c7a2 | 0c01 00df      : cmpi.b #-$21,D1
        9c7a6 | 6608           : bne    $9c7b0
        9c7a8 | 303c ffff      : move.w #$ffff,D0    // stop sound
        9c7ac | 4eb8 176a      : jsr    $176a.w
        9c7b0 | 60a4           : bra    $9c756
        -->
    </script>
    <script state="run">
        <output format="----- varia metal 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="up : increase code +10"                  line="13" align="center" />
        <output format="down : decrease 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 %4.4X &gt;&gt;"      line="19" align="center">
            <argument>maincpu.pw@ff0100</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mq@03032 = 43f90004339e6100</action>
        <action>maincpu.mq@9c750 = ffffffffffffffff</action>
        <action>maincpu.mq@9c758 = ffffffffffffffff</action>
        <action>maincpu.mq@9c760 = ffffffffffffffff</action>
        <action>maincpu.mq@9c768 = ffffffffffffffff</action>
        <action>maincpu.mq@9c770 = ffffffffffffffff</action>
        <action>maincpu.mq@9c778 = ffffffffffffffff</action>
        <action>maincpu.mq@9c780 = ffffffffffffffff</action>
        <action>maincpu.mq@9c788 = ffffffffffffffff</action>
        <action>maincpu.mq@9c790 = ffffffffffffffff</action>
        <action>maincpu.mq@9c798 = ffffffffffffffff</action>
        <action>maincpu.mq@9c7a0 = ffffffffffffffff</action>
        <action>maincpu.mq@9c7a8 = ffffffffffffffff</action>
        <action>maincpu.mq@9c7b0 = ffffffffffffffff</action>
    </script>
</cheat>
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[vmetal] Varia Metal

Post by jman »

Code: Select all

<!-- Varia Metal -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@23CF4 = 60</action> <!-- enemy -->
            <action>maincpu.mb@23DCC = 60</action> <!-- bullet -->
        </script>
        <script state="off">
            <action>maincpu.mb@23CF4 = 64</action>
            <action>maincpu.mb@23DCC = 64</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@017FE = 60</action> <!-- interval timer -->
            <action>maincpu.mb@2609D = 01</action> <!-- fire timer -->
        </script>
        <script state="off">
            <action>maincpu.mb@017FE = 67</action>
            <action>maincpu.mb@2609D = 18</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x00008000">01 (slow)</item>
            <item value="0x00030000">02       </item>
            <item value="0x00048000">03       </item>
            <item value="0x00060000">04       </item>
            <item value="0x00078000">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.md@2600E = param</action> <!-- left, right -->
            <action>maincpu.md@26012 = param</action> <!-- up, down -->
            <action>maincpu.md@26016 = param</action> <!-- upper/lower-left/right -->
            <action>maincpu.md@2601A = param</action> <!-- upper/lower-left/right -->
        </script>
        <script state="off">
            <action>maincpu.mw@2600E = 00030000</action>
            <action>maincpu.mw@26012 = 00030000</action>
            <action>maincpu.mw@26016 = 00021F0E</action>
            <action>maincpu.mw@2601A = 00021F0E</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.md@05C9C = 0009C730        </action>
            <action>maincpu.mq@9C730 = 70002F004EB90002</action>
            <action>maincpu.mq@9C738 = 610C201F51C8FFF4</action>
            <action>maincpu.mq@9C740 = 4E75FFFFFFFFFFFF</action>
            <!--
            9C730 | 70xx           : moveq   #$xx, D0
            9C732 | 2F00           : move.l  D0, -(A7)
            9C734 | 4EB9 0002 610C : jsr     $2610c.l
            9C73A | 201F           : move.l  (A7)+, D0
            9C73C | 51C8 FFF4      : dbra    D0, $9c732
            9C740 | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@9C731 = param - 1</action>
        </script>
        <script state="off">
            <action>maincpu.md@05C9C = 0002610C        </action>
            <action>maincpu.mq@9C730 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@9C738 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@9C740 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="max bullets up">
        <script state="on">
            <!-- P1 shot 1 -->
            <action>maincpu.mb@26FA5 = 30</action>
            <action>maincpu.mb@26FE1 = 30</action>
            <action>maincpu.mb@2701D = 30</action>
            <action>maincpu.mb@27059 = 30</action>
            <action>maincpu.mb@27095 = 30</action>
            <action>maincpu.mb@270D1 = 30</action>
            <!-- P1 shot 2 -->
            <action>maincpu.mb@272C1 = 30</action>
            <!-- P2 shot 1 -->
            <action>maincpu.mb@2736B = 30</action>
            <action>maincpu.mb@273A7 = 30</action>
            <action>maincpu.mb@273E3 = 30</action>
            <action>maincpu.mb@2741F = 30</action>
            <action>maincpu.mb@2745B = 30</action>
            <action>maincpu.mb@27497 = 30</action>
            <!-- P2 shot 2 -->
            <action>maincpu.mb@27A25 = 30</action>
            <action>maincpu.mb@27A61 = 30</action>
            <action>maincpu.mb@27A9D = 30</action>
            <action>maincpu.mb@27AD9 = 30</action>
            <action>maincpu.mb@27B15 = 30</action>
            <action>maincpu.mb@27B51 = 30</action>
        </script>
        <script state="off">
            <action>maincpu.mb@26FA5 = 03</action>
            <action>maincpu.mb@26FE1 = 03</action>
            <action>maincpu.mb@2701D = 09</action>
            <action>maincpu.mb@27059 = 0C</action>
            <action>maincpu.mb@27095 = 0F</action>
            <action>maincpu.mb@270D1 = 0F</action>
            <action>maincpu.mb@272C1 = 03</action>
            <action>maincpu.mb@2736B = 0C</action>
            <action>maincpu.mb@273A7 = 0C</action>
            <action>maincpu.mb@273E3 = 12</action>
            <action>maincpu.mb@2741F = 12</action>
            <action>maincpu.mb@2745B = 18</action>
            <action>maincpu.mb@27497 = 18</action>
            <action>maincpu.mb@27A25 = 06</action>
            <action>maincpu.mb@27A61 = 09</action>
            <action>maincpu.mb@27A9D = 0C</action>
            <action>maincpu.mb@27AD9 = 12</action>
            <action>maincpu.mb@27B15 = 15</action>
            <action>maincpu.mb@27B51 = 18</action>
        </script>
    </cheat>

    <cheat desc="main weapon (test)">
        <comment>Also charge shot. shot sound doesn't change</comment>
        <parameter>
            <item value="0x6D040440">type 1</item>
            <item value="0x6C040640">type 2</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@26C40 = 4EB90009C7C0D040</action>
            <action>maincpu.mq@9C7C0 = 3028002C0C40000C</action>
            <action>maincpu.mq@9C7C8 = 6D040440000CD040</action>
            <action>maincpu.mq@9C7D0 = 4E75FFFFFFFFFFFF</action>
            <!--
            9C7C0 | 3028 002C : move.w  ($2c,A0), D0
            9C7C4 | 0C40 000C : cmpi.w  #$c, D0
            9C7C8 | 6D04      : blt     $9c7ce       // type 1
            9C7CA | 0440 000C : subi.w  #$c, D0
            9C7C8 | 6C04      : bge     $9c7ce       // type 2
            9C7CA | 0640 000C : addi.w  #$c, D0
            9C7CE | D040      : add.w   D0, D0
            9C7D0 | 4E75      : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@9C7C8 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@26C40 = 3028002CD040D040</action>
            <action>maincpu.mq@9C7C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@9C7C8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@9C7D0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mq@03032 = 4eb90009c7506100</action>
            <action>maincpu.mq@9C750 = 41F900FF00004280</action>
            <action>maincpu.mq@9C758 = 1401123900200000</action>
            <action>maincpu.mq@9C760 = B40167F40C0100FB</action>
            <action>maincpu.mq@9C768 = 660253100C0100F7</action>
            <action>maincpu.mq@9C770 = 660252100C0100FD</action>
            <action>maincpu.mq@9C778 = 6604041000100C01</action>
            <action>maincpu.mq@9C780 = 00FE660406100010</action>
            <action>maincpu.mq@9C788 = 0C0100EF661A1010</action>
            <action>maincpu.mq@9C790 = 0C40001C6C064EB8</action>
            <action>maincpu.mq@9C798 = 176A600C0440001C</action>
            <action>maincpu.mq@9C7A0 = 3140008C4EB8167A</action>
            <action>maincpu.mq@9C7A8 = 0C0100DF66044EB8</action>
            <action>maincpu.mq@9C7B0 = 17A060A4FFFFFFFF</action>
            <!--
            9C750 | 41F9 00FF 0000 : lea     $ff0000.l, A0 // sound code address
            9C756 | 4280           : clr.l   D0
            9C758 | 1401           : move.b  D1, D2
            9C75A | 1239 0020 0000 : move.b  $200000.l, D1 // read input
            9C760 | B401           : cmp.b   D1, D2
            9C762 | 67F4           : beq     $9c758
            9C764 | 0C01 00FB      : cmpi.b  #-$5, D1
            9C768 | 6602           : bne     $9c76c
            9C76A | 5310           : subq.b  #1, (A0)      // decrease code -01
            9C76C | 0C01 00F7      : cmpi.b  #-$9, D1
            9C770 | 6602           : bne     $9c774
            9C772 | 5210           : addq.b  #1, (A0)      // increase code +01
            9C774 | 0C01 00FD      : cmpi.b  #-$3, D1
            9C778 | 6604           : bne     $9c77e
            9C77A | 0410 0010      : subi.b  #$10, (A0)    // decrease code -01
            9C77E | 0C01 00FE      : cmpi.b  #-$2, D1
            9C782 | 6604           : bne     $9c788
            9C784 | 0610 0010      : addi.b  #$10, (A0)    // increase code +01
            9C788 | 0C01 00EF      : cmpi.b  #-$11, D1
            9C78C | 661A           : bne     $9c7a8
            9C78E | 1010           : move.b  (A0), D0      // play sound
            9C790 | 0C40 001C      : cmpi.w  #$1c, D0
            9C794 | 6C06           : bge     $9c79c
            9C796 | 4EB8 176A      : jsr     $176a.w       // music
            9C79A | 600C           : bra     $9c7a8
            9C79C | 0440 001C      : subi.w  #$1c, D0      // sfx
            9C7A0 | 3140 008C      : move.w  D0, ($8c,A0)
            9C7A4 | 4EB8 167A      : jsr     $167a.w
            9C7A8 | 0C01 00DF      : cmpi.b  #-$21, D1
            9C7AC | 6604           : bne     $9c7b2
            9C7AE | 4EB8 17A0      : jsr     $17a0.w       // stop sound
            9C7B2 | 60A4           : bra     $9c758
            -->
            <!-- stop sfx by sound stop button -->
            <action>maincpu.mb@16FB =  B</action>
            <action>maincpu.mb@17A7 = 7F</action>
        </script>
        <script state="run">
            <output format="----- varia metal 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@FF0000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@03032 = 43F90004339E6100</action>
            <action>maincpu.mq@9C750 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@9C758 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@9C760 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@9C768 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@9C770 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@9C778 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@9C780 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@9C788 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@9C790 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@9C798 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@9C7A0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@9C7A8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@9C7B0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mb@016FB = 08              </action>
            <action>maincpu.mb@017A7 = 00              </action>
        </script>
    </cheat>

</mamecheat>
  • "auto fire" : Added interval timer code.
  • "player speed" : Conveted parameter from value to item.
  • "max bullets up" : Merged P1 and P2 codes into one.
  • "main weapon" : Added new as test code.
  • "sound test mode" : Rewritten routine. Fixed sfx stop by sound stop button.
Post Reply