[silvmil] Silver Millennium

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

[silvmil] Silver Millennium

Post by jman »

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>maincpu.mb@10fda = 60</action> <!-- enemy -->
        <action>maincpu.mb@11030 = 60</action> <!-- bullet -->
        <action>maincpu.mb@110d8 = 60</action> <!-- boss -->
    </script>
    <script state="off">
        <action>maincpu.mb@10fda = 67</action>
        <action>maincpu.mb@11030 = 67</action>
        <action>maincpu.mb@110d8 = 67</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mb@bcf9 = 03</action>
    </script>
    <script state="off">
        <action>maincpu.mb@bcf9 = 04</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter min="0x01" max="0x08" step="0x01" />
    <script state="on">
        <action>maincpu.md@bbca = 303c0000</action> <!-- up -->
        <action>maincpu.md@bbde = 303c0000</action> <!-- down -->
        <action>maincpu.md@bbf2 = 303c0000</action> <!-- left -->
        <action>maincpu.md@bc0a = 303c0000</action> <!-- right -->
        <action>maincpu.md@bc1e = 303c0000</action> <!-- upper-left -->
        <action>maincpu.md@bc3c = 303c0000</action> <!-- lower-left -->
        <action>maincpu.md@bc58 = 303c0000</action> <!-- upper-right -->
        <action>maincpu.md@bc78 = 303c0000</action> <!-- lower-right -->
    </script>
    <script state="change">
        <action>maincpu.mb@bbcd = param</action>
        <action>maincpu.mb@bbe1 = param</action>
        <action>maincpu.mb@bbf5 = param</action>
        <action>maincpu.mb@bc0d = param</action>
        <action>maincpu.mb@bc21 = param</action>
        <action>maincpu.mb@bc3f = param</action>
        <action>maincpu.mb@bc5b = param</action>
        <action>maincpu.mb@bc7b = param</action>
    </script>
    <script state="off">
        <action>maincpu.md@bbca = 302a001e</action>
        <action>maincpu.md@bbde = 302a001e</action>
        <action>maincpu.md@bbf2 = 302a001e</action>
        <action>maincpu.md@bc0a = 302a001e</action>
        <action>maincpu.md@bc1e = 302a001e</action>
        <action>maincpu.md@bc3c = 302a001e</action>
        <action>maincpu.md@bc58 = 302a001e</action>
        <action>maincpu.md@bc78 = 302a001e</action>
    </script>
</cheat>

<cheat desc="bullet speed">
    <parameter>
        <item value="0xffff">01 (slow)</item>
        <item value="0xfff8">02       </item>
        <item value="0xfff0">03       </item>
        <item value="0xffe8">04       </item>
        <item value="0xffe0">05 (fast)</item>
    </parameter>
    <script state="on">
        <action>maincpu.md@e7fa = 377c0000</action> <!-- red -->
        <action>maincpu.md@ea18 = 377c0000</action> <!-- blue -->
    </script>
    <script state="change">
        <action>maincpu.mw@e7fc = param</action>
        <action>maincpu.mw@ea1a = param</action>
    </script>
    <script state="off">
        <action>maincpu.md@e7fa = 376c0008</action>
        <action>maincpu.md@ea18 = 376c0008</action>
    </script>
</cheat>

<cheat desc="unlock secret character">
    <script state="on">
        <action>maincpu.mb@152e9 = 06</action>
        <action>maincpu.mb@152b1 = 06</action>
    </script>
    <script state="off">
        <action>maincpu.mb@152e9 = 05</action>
        <action>maincpu.mb@152b1 = 05</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@03620 = 4ef90006c370244b</action>
        <action>maincpu.mq@6c370 = 41f90030100043f9</action>
        <action>maincpu.mq@6c378 = 003001c042805251</action>
        <action>maincpu.mq@6c380 = 4a5166fc14011239</action>
        <action>maincpu.mq@6c388 = 00280001b40167ee</action>
        <action>maincpu.mq@6c390 = 0c0100fb66025310</action>
        <action>maincpu.mq@6c398 = 0c0100f766025210</action>
        <action>maincpu.mq@6c3a0 = 0c0100fd66040410</action>
        <action>maincpu.mq@6c3a8 = 00100c0100fe6604</action>
        <action>maincpu.mq@6c3b0 = 061000100c0100ef</action>
        <action>maincpu.mq@6c3b8 = 6604101060080c01</action>
        <action>maincpu.mq@6c3c0 = 00df660a42002f00</action>
        <action>maincpu.mq@6c3c8 = 4eb90000079260ae</action>
        <!--
        6c370 | 41f9 0030 1000 : lea    $301000.l,A0 // sound code address
        6c376 | 43f9 0030 01c0 : lea    $3001c0.l,A1 // interrupt wait flag
        6c37c | 4280           : clr.l  D0
        6c37e | 5251           : addq.w #1,(A1)
        6c380 | 4a51           : tst.w  (A1)         // wait interrupt
        6c382 | 66fc           : bne    $6c380
        6c384 | 1401           : move.b D1,D2
        6c386 | 1239 0028 0001 : move.b $280001.l,D1 // read input
        6c38c | b401           : cmp.b  D1,D2
        6c38e | 67ee           : beq    $6c37e
        6c390 | 0c01 00fb      : cmpi.b #-$5,D1
        6c394 | 6602           : bne    $6c398
        6c396 | 5310           : subq.b #1,(A0)      // decrease code -01
        6c398 | 0c01 00f7      : cmpi.b #-$9,D1
        6c39c | 6602           : bne    $6c3a0
        6c39e | 5210           : addq.b #1,(A0)      // increase code +01
        6c3a0 | 0c01 00fd      : cmpi.b #-$3,D1
        6c3a4 | 6604           : bne    $6c3aa
        6c3a6 | 0410 0010      : subi.b #$10,(A0)    // decrease code -10
        6c3aa | 0c01 00fe      : cmpi.b #-$2,D1
        6c3ae | 6604           : bne    $6c3b4
        6c3b0 | 0610 0010      : addi.b #$10,(A0)    // increase code +10
        6c3b4 | 0c01 00ef      : cmpi.b #-$11,D1
        6c3b8 | 6604           : bne    $6c3be
        6c3ba | 1010           : move.b (A0),D0      // play sound
        6c3bc | 6008           : bra    $6c3c6
        6c3be | 0c01 00df      : cmpi.b #-$21,D1
        6c3c2 | 660a           : bne    $6c3ce
        6c3c4 | 4200           : clr.b  D0           // stop sound
        6c3c6 | 2f00           : move.l D0,-(A7)
        6c3c8 | 4eb9 0000 0792 : jsr    $792.l       // send sound code
        6c3ce | 60ae           : bra    $6c37e
        -->
    </script>
    <script state="run">
        <output format="----- silver millennium 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 %2.2X &gt;&gt;"            line="19" align="center">
            <argument>maincpu.pb@301000</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mq@03620 = 377c0001000e244b</action>
        <action>maincpu.mq@6c370 = ffffffffffffffff</action>
        <action>maincpu.mq@6c378 = ffffffffffffffff</action>
        <action>maincpu.mq@6c380 = ffffffffffffffff</action>
        <action>maincpu.mq@6c388 = ffffffffffffffff</action>
        <action>maincpu.mq@6c390 = ffffffffffffffff</action>
        <action>maincpu.mq@6c398 = ffffffffffffffff</action>
        <action>maincpu.mq@6c3a0 = ffffffffffffffff</action>
        <action>maincpu.mq@6c3a8 = ffffffffffffffff</action>
        <action>maincpu.mq@6c3b0 = ffffffffffffffff</action>
        <action>maincpu.mq@6c3b8 = ffffffffffffffff</action>
        <action>maincpu.mq@6c3c0 = ffffffffffffffff</action>
        <action>maincpu.mq@6c3c8 = ffffffffffffffff</action>
    </script>
</cheat>
"unlock secret character" works on character selection screen.
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[silvmil] Silver Millennium

Post by jman »

Code: Select all

<!-- Silver Millennium -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@10FDA = 60</action> <!-- enemy -->
            <action>maincpu.mb@11030 = 60</action> <!-- bullet -->
            <action>maincpu.mb@110D8 = 60</action> <!-- boss -->
        </script>
        <script state="off">
            <action>maincpu.mb@10FDA = 67</action>
            <action>maincpu.mb@11030 = 67</action>
            <action>maincpu.mb@110D8 = 67</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@BCF9 = 03</action>
        </script>
        <script state="off">
            <action>maincpu.mb@BCF9 = 04</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0001">01 (slow)</item>
            <item value="0x0003">02       </item>
            <item value="0x0006">03       </item>
            <item value="0x0009">04       </item>
            <item value="0x000c">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mw@BBCA = 303C</action> <!-- up -->
            <action>maincpu.mw@BBDE = 303C</action> <!-- down -->
            <action>maincpu.mw@BBF2 = 303C</action> <!-- left -->
            <action>maincpu.mw@BC0A = 303C</action> <!-- right -->
            <action>maincpu.mw@BC1E = 303C</action> <!-- upper-left -->
            <action>maincpu.mw@BC3C = 303C</action> <!-- lower-left -->
            <action>maincpu.mw@BC58 = 303C</action> <!-- upper-right -->
            <action>maincpu.mw@BC78 = 303C</action> <!-- lower-right -->
        </script>
        <script state="change">
            <action>maincpu.mw@BBCC = param</action>
            <action>maincpu.mw@BBE0 = param</action>
            <action>maincpu.mw@BBF4 = param</action>
            <action>maincpu.mw@BC0C = param</action>
            <action>maincpu.mw@BC20 = param</action>
            <action>maincpu.mw@BC3E = param</action>
            <action>maincpu.mw@BC5A = param</action>
            <action>maincpu.mw@BC7A = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@BBCA = 302A001E</action>
            <action>maincpu.md@BBDE = 302A001E</action>
            <action>maincpu.md@BBF2 = 302A001E</action>
            <action>maincpu.md@BC0A = 302A001E</action>
            <action>maincpu.md@BC1E = 302A001E</action>
            <action>maincpu.md@BC3C = 302A001E</action>
            <action>maincpu.md@BC58 = 302A001E</action>
            <action>maincpu.md@BC78 = 302A001E</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x0001">01 (slow)</item>
            <item value="0x0008">02       </item>
            <item value="0x0010">03       </item>
            <item value="0x0018">04       </item>
            <item value="0x0020">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mw@E7FA = 377C</action> <!-- red -->
            <action>maincpu.mw@EA18 = 377C</action> <!-- blue -->
        </script>
        <script state="change">
            <action>maincpu.mw@E7FC = -param</action>
            <action>maincpu.mw@EA1A = -param</action>
        </script>
        <script state="off">
            <action>maincpu.md@E7FA = 376C0008</action>
            <action>maincpu.md@EA18 = 376C0008</action>
        </script>
    </cheat>

    <cheat desc="unlock secret character">
        <script state="on">
            <!-- normal start -->
            <action>maincpu.mb@152B1 = 06</action>
            <action>maincpu.mb@152DD = 06</action>
            <action>maincpu.mb@152E9 = 06</action>
            <action>maincpu.mb@15317 = 07</action>
            <!-- join start -->
            <action>maincpu.mb@15F28 = 6F</action>
        </script>
        <script state="off">
            <action>maincpu.mb@152B1 = 05</action>
            <action>maincpu.mb@152DD = 05</action>
            <action>maincpu.mb@152E9 = 05</action>
            <action>maincpu.mb@15317 = 06</action>
            <action>maincpu.mb@15F28 = 6D</action>
        </script>
    </cheat>

    <cheat desc="selectable same character (test)">
        <comment>works in the character selection screen</comment>
        <script state="on">
            <action>maincpu.mb@152CE = 60</action>
            <action>maincpu.mb@1530E = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mb@152CE = 66</action>
            <action>maincpu.mb@1530E = 66</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@03620 = 4EF90006C370244B</action>
            <action>maincpu.mq@6C370 = 41F90030000043E8</action>
            <action>maincpu.mq@6C378 = 01C0428052514A51</action>
            <action>maincpu.mq@6C380 = 66FC140112390028</action>
            <action>maincpu.mq@6C388 = 0001B40167EE0C01</action>
            <action>maincpu.mq@6C390 = 00FB660253100C01</action>
            <action>maincpu.mq@6C398 = 00F7660252100C01</action>
            <action>maincpu.mq@6C3A0 = 00FD660404100010</action>
            <action>maincpu.mq@6C3A8 = 0C0100FE66040610</action>
            <action>maincpu.mq@6C3B0 = 00100C0100EF6604</action>
            <action>maincpu.mq@6C3B8 = 101060080C0100DF</action>
            <action>maincpu.mq@6C3C0 = 660842002F004EB8</action>
            <action>maincpu.mq@6C3C8 = 0792588F60AEFFFF</action>
            <!--
            6C370 | 41F9 0030 0000 : lea     $300000.l, A0 // sound code address
            6C376 | 43E8 01C0      : lea     ($1c0,A0), A1 // interrupt wait flag ($3001c0)
            6C37A | 4280           : clr.l   D0
            6C37C | 5251           : addq.w  #1, (A1)      // wait interrupt
            6C37E | 4A51           : tst.w   (A1)
            6C380 | 66FC           : bne     $6c37e
            6C382 | 1401           : move.b  D1, D2
            6C384 | 1239 0028 0001 : move.b  $280001.l, D1 // read input
            6C38A | B401           : cmp.b   D1, D2
            6C38C | 67EE           : beq     $6c37c
            6C38E | 0C01 00FB      : cmpi.b  #-$5, D1
            6C392 | 6602           : bne     $6c396
            6C394 | 5310           : subq.b  #1, (A0)      // decrease code -01
            6C396 | 0C01 00F7      : cmpi.b  #-$9, D1
            6C39A | 6602           : bne     $6c39e
            6C39C | 5210           : addq.b  #1, (A0)      // increase code +01
            6C39E | 0C01 00FD      : cmpi.b  #-$3, D1
            6C3A2 | 6604           : bne     $6c3a8
            6C3A4 | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            6C3A8 | 0C01 00FE      : cmpi.b  #-$2, D1
            6C3AC | 6604           : bne     $6c3b2
            6C3AE | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            6C3B2 | 0C01 00EF      : cmpi.b  #-$11, D1
            6C3B6 | 6604           : bne     $6c3bc
            6C3B8 | 1010           : move.b  (A0), D0      // play sound
            6C3BA | 6008           : bra     $6c3c4
            6C3BC | 0C01 00DF      : cmpi.b  #-$21, D1
            6C3C0 | 6608           : bne     $6c3ca
            6C3C2 | 4200           : clr.b   D0            // stop sound
            6C3C4 | 2F00           : move.l  D0, -(A7)
            6C3C6 | 4EB8 0792      : jsr     $792.w        // send sound code
            6C3CA | 588F           : addq.l  #4, A7
            6C3CC | 60AE           : bra     $6c37c
            -->
        </script>
        <script state="run">
            <output format="----- silver millennium 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@300000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@03620 = 377C0001000E244B</action>
            <action>maincpu.mq@6C370 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@6C378 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@6C380 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@6C388 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@6C390 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@6C398 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@6C3A0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@6C3A8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@6C3B0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@6C3B8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@6C3C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@6C3C8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
  • "player speed" : Replaced value parameter to item parameter.
  • "unlock secret character" : Added code for join start.
  • "selectable same character" : Added new as test code. This works in the character selection screen, doesn't work in joining in the middle.
Post Reply