[sandscrp] Sand Scorpion

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

[sandscrp] Sand Scorpion

Post by jman »

Code: Select all

<cheat desc="P1 no hit">
    <script state="on">
        <action>maincpu.mb@b0a9 = e2</action> <!-- enemy -->
        <action>maincpu.mb@b40f = 7c</action> <!-- bullet -->
        <action>maincpu.mb@b5f7 = 94</action> <!-- laser -->
    </script>
    <script state="off">
        <action>maincpu.mb@b0a9 = 6c</action>
        <action>maincpu.mb@b40f = 06</action>
        <action>maincpu.mb@b5f7 = 1e</action>
    </script>
</cheat>

<cheat desc="P2 no hit">
    <script state="on">
        <action>maincpu.mw@b0e6 = 00a4</action> <!-- enemy -->
        <action>maincpu.mw@b446 = fd44</action> <!-- bullet -->
        <action>maincpu.mw@b630 = fb5a</action> <!-- laser -->
    </script>
    <script state="off">
        <action>maincpu.mw@b0e6 = 002e</action>
        <action>maincpu.mw@b446 = fcce</action>
        <action>maincpu.mw@b630 = fae4</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mb@e831 = 02</action>
    </script>
    <script state="off">
        <action>maincpu.mb@e831 = 40</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter min="0x01" max="0x05" step="0x01" />
    <script state="change">
        <action>maincpu.mb@9b0d = param</action> <!-- P1 right -->
        <action>maincpu.mb@9b3d = param</action> <!-- P1 left -->
        <action>maincpu.mb@9b79 = param</action> <!-- P2 right -->
        <action>maincpu.mb@9ba7 = param</action> <!-- P2 left -->
        <action>maincpu.mb@dc3f = param</action> <!-- up -->
        <action>maincpu.mb@dc79 = param</action> <!-- down -->
    </script>
    <script state="off">
        <action>maincpu.mb@9b0d = 02</action>
        <action>maincpu.mb@9b3d = 02</action>
        <action>maincpu.mb@9b79 = 02</action>
        <action>maincpu.mb@9ba7 = 02</action>
        <action>maincpu.mb@dc3f = 02</action>
        <action>maincpu.mb@dc79 = 02</action>
    </script>
</cheat>

<cheat desc="bullet speed - blue">
    <parameter>
        <item value="0x0004">01 (slow)</item>
        <item value="0x0008">02       </item>
        <item value="0x000c">03       </item>
        <item value="0x0010">04       </item>
        <item value="0x0014">05 (fast)</item>
    </parameter>
    <script state="on">
        <action>maincpu.mq@0f106 = 4eb9000400003218</action>
        <action>maincpu.mq@40000 = 321867066a04323c</action>
        <action>maincpu.mq@40008 = 0000194100184e75</action>
        <!--
        40000 | 3218           : move.w (A0)+,D1
        40002 | 6706           : beq    $4000a
        40004 | 6a04           : bpl    $4000a
        40006 | 323c xxxx      : move.w #$xxxx,D1
        4000a | 1941 0018      : move.b D1,($18,A4)
        4000e | 4e75           : rts
        -->
    </script>
    <script state="change">
        <action>maincpu.mw@40008 = -param</action>
    </script>
    <script state="off">
        <action>maincpu.mq@0f106 = 3218194100183218</action>
        <action>maincpu.mq@40000 = ffffffffffffffff</action>
        <action>maincpu.mq@40008 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="bullet speed - green">
    <parameter>
        <item value="0x04">01 (slow)</item>
        <item value="0x08">02       </item>
        <item value="0x0c">03       </item>
        <item value="0x10">04       </item>
        <item value="0x14">05 (fast)</item>
    </parameter>
    <script state="on">
        <action>maincpu.md@e9b6 = 103c0000</action>
    </script>
    <script state="change">
        <action>maincpu.mb@e9b9 = -param</action>
    </script>
    <script state="off">
        <action>maincpu.md@e9b6 = 102e0018</action>
    </script>
</cheat>

<cheat desc="max bullets up">
    <script state="on">
        <action>maincpu.mb@f01a = 60</action> <!-- blue -->
        <action>maincpu.mb@f410 = 60</action> <!-- green -->
        <action>maincpu.mb@fea0 = 60</action> <!-- red -->
    </script>
    <script state="off">
        <action>maincpu.mb@f01a = 67</action>
        <action>maincpu.mb@f410 = 67</action>
        <action>maincpu.mb@fea0 = 67</action>
    </script>
</cheat>

<cheat desc="max missiles up">
    <script state="on">
        <action>maincpu.mb@fbe8 = 60</action> <!-- M -->
        <action>maincpu.mb@f7bc = 60</action> <!-- H -->
    </script>
    <script state="off">
        <action>maincpu.mb@fbe8 = 67</action>
        <action>maincpu.mb@f7bc = 67</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@00a14 = 4ef9000400104298</action>
        <action>maincpu.mq@40010 = 46fc200043e80100</action>
        <action>maincpu.mq@40018 = 12bc008014011228</action>
        <action>maincpu.mq@40020 = 0009b40167f60c01</action>
        <action>maincpu.mq@40028 = 00fb660253110c01</action>
        <action>maincpu.mq@40030 = 00f7660252110c01</action>
        <action>maincpu.mq@40038 = 00fd660404110010</action>
        <action>maincpu.mq@40040 = 0c0100fe66040611</action>
        <action>maincpu.mq@40048 = 00100c0100ef6604</action>
        <action>maincpu.mq@40050 = 1011600a0c0100df</action>
        <action>maincpu.mq@40058 = 660a103c008013c0</action>
        <action>maincpu.mq@40060 = 00e0000160b6ffff</action>
        <!--
        40010 | 46fc 2000      : move   #$2000,SR    // enable interrupt
        40014 | 43e8 0100      : lea    ($100,A0),A1 // sound code address
        40018 | 12bc 0080      : move.b #$80,(A1)
        4001c | 1401           : move.b D1,D2
        4001e | 1228 0009      : move.b ($9,A0),D1   // read input
        40022 | b401           : cmp.b  D1,D2
        40024 | 67f6           : beq    $4001c
        40026 | 0c01 00fb      : cmpi.b #-$5,D1
        4002a | 6602           : bne    $4002e
        4002c | 5311           : subq.b #1,(A1)      // decrease code -01
        4002e | 0c01 00f7      : cmpi.b #-$9,D1
        40032 | 6602           : bne    $40036
        40034 | 5211           : addq.b #1,(A1)      // increase code +01
        40036 | 0c01 00fd      : cmpi.b #-$3,D1
        4003a | 6604           : bne    $40040
        4003c | 0411 0010      : subi.b #$10,(A1)    // decrease code -10
        40040 | 0c01 00fe      : cmpi.b #-$2,D1
        40044 | 6604           : bne    $4004a
        40046 | 0611 0010      : addi.b #$10,(A1)    // increase code +10
        4004a | 0c01 00ef      : cmpi.b #-$11,D1
        4004e | 6604           : bne    $40054
        40050 | 1011           : move.b (A1),D0      // play sound
        40052 | 600a           : bra    $4005e
        40054 | 0c01 00df      : cmpi.b #-$21,D1
        40058 | 660a           : bne    $40064
        4005a | 103c 0080      : move.b #$80,D0      // stop sound
        4005e | 13c0 00e0 0001 : move.b D0,$e00001.l // send sound code
        40064 | 60b6           : bra    $4001c
        -->
    </script>
    <script state="run">
        <output format="----- sand scorpion 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@700100</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mq@00a14 = 323c0ff042984298</action>
        <action>maincpu.mq@40010 = ffffffffffffffff</action>
        <action>maincpu.mq@40018 = ffffffffffffffff</action>
        <action>maincpu.mq@40020 = ffffffffffffffff</action>
        <action>maincpu.mq@40028 = ffffffffffffffff</action>
        <action>maincpu.mq@40030 = ffffffffffffffff</action>
        <action>maincpu.mq@40038 = ffffffffffffffff</action>
        <action>maincpu.mq@40040 = ffffffffffffffff</action>
        <action>maincpu.mq@40048 = ffffffffffffffff</action>
        <action>maincpu.mq@40050 = ffffffffffffffff</action>
        <action>maincpu.mq@40058 = ffffffffffffffff</action>
        <action>maincpu.mq@40060 = ffffffffffffffff</action>
    </script>
</cheat>
jman

my wip cheat database back-up (2024/12/01 ver.)
https://u3.getuploader.com/...../download/47
downloadpass : jman2020
jman
Posts: 1254
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 9 times

[sandscrp]+ Sand Scorpion

Post by jman »

sandscrp.xml

Code: Select all

<!-- Sand Scorpion -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mw@B0A8 = 00E2</action> <!-- P1 enemy -->
            <action>maincpu.mw@B0E6 = 00A4</action> <!-- P2 enemy -->
            <action>maincpu.mw@B40E = FD7C</action> <!-- P1 bullet -->
            <action>maincpu.mw@B446 = FD44</action> <!-- P2 bullet -->
            <action>maincpu.mw@B5F6 = FB94</action> <!-- P1 laser -->
            <action>maincpu.mw@B630 = FB5A</action> <!-- P2 laser -->
        </script>
        <script state="off">
            <action>maincpu.mw@B0A8 = 006C</action>
            <action>maincpu.mw@B0E6 = 002E</action>
            <action>maincpu.mw@B40E = FD06</action>
            <action>maincpu.mw@B446 = FCCE</action>
            <action>maincpu.mw@B5F6 = FB1E</action>
            <action>maincpu.mw@B630 = FAE4</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@E831 = 01</action>
        </script>
        <script state="off">
            <action>maincpu.mb@E831 = 40</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0001">01 (slow)</item>
            <item value="0x0002">02       </item>
            <item value="0x0006">03       </item>
            <item value="0x000a">04       </item>
            <item value="0x000e">05 (slow)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mw@9B0A = 303C</action> <!-- P1 right -->
            <action>maincpu.mw@9B3A = 303C</action> <!-- P1 left -->
            <action>maincpu.mw@9B76 = 303C</action> <!-- P2 right -->
            <action>maincpu.mw@9BA4 = 303C</action> <!-- P2 left -->
            <action>maincpu.mw@DC3C = 303C</action> <!-- up -->
            <action>maincpu.mw@DC76 = 303C</action> <!-- down -->
        </script>
        <script state="change">
            <action>maincpu.mw@9B0C = param</action>
            <action>maincpu.mw@9B3C = param</action>
            <action>maincpu.mw@9B78 = param</action>
            <action>maincpu.mw@9BA6 = param</action>
            <action>maincpu.mw@DC3E = param</action>
            <action>maincpu.mw@DC78 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@9B0A = 06400002</action>
            <action>maincpu.md@9B3A = 06400002</action>
            <action>maincpu.md@9B76 = 06400002</action>
            <action>maincpu.md@9BA4 = 06400002</action>
            <action>maincpu.md@DC3C = 06400002</action>
            <action>maincpu.md@DC76 = 06400002</action>
        </script>
    </cheat>

    <cheat desc="bullet speed (test)">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.md@0D784 = 00040000        </action> <!-- P1 -->
            <action>maincpu.md@0D7B8 = 00040000        </action> <!-- P2 -->
            <action>maincpu.mq@40000 = 700048E782024EB9</action>
            <action>maincpu.mq@40008 = 0000E8864CDF4041</action>
            <action>maincpu.mq@40010 = 51C8FFF04E75FFFF</action>
            <!--
            40000 | 70xx           : moveq   #$xx, D0
            40002 | 48E7 8202      : movem.l D0/D6/A6, -(A7)
            40006 | 4EB9 0000 E886 : jsr     $e886.l
            4000C | 4CDF 4041      : movem.l (A7)+, D0/D6/A6
            40010 | 51C8 FFF0      : dbra    D0, $40002
            40014 | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@40001 = param - 1</action>
        </script>
        <script state="off">
            <action>maincpu.md@0D784 = 0000E886        </action>
            <action>maincpu.md@0D7B8 = 0000E886        </action>
            <action>maincpu.mq@40000 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40008 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40010 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="max bullets up">
        <script state="on">
            <action>maincpu.mb@F01A = 60</action> <!-- blue -->
            <action>maincpu.mb@F410 = 60</action> <!-- green -->
            <action>maincpu.mb@FEA0 = 60</action> <!-- red -->
        </script>
        <script state="off">
            <action>maincpu.mb@F01A = 67</action>
            <action>maincpu.mb@F410 = 67</action>
            <action>maincpu.mb@FEA0 = 67</action>
        </script>
    </cheat>

    <cheat desc="max missiles up">
        <script state="on">
            <action>maincpu.mb@F7BC = 60</action> <!-- "H" -->
            <action>maincpu.mb@FBE8 = 60</action> <!-- "M" -->
        </script>
        <script state="off">
            <action>maincpu.mb@F7BC = 67</action>
            <action>maincpu.mb@FBE8 = 67</action>
        </script>
    </cheat>

    <cheat desc="hidden character finder">
        <script state="on">
            <action>maincpu.mb@20517 = 0A</action>
        </script>
        <script state="off">
            <action>maincpu.mb@20517 = 96</action>
        </script>
    </cheat>

    <cheat desc="short hit mark">
        <script state="on">
            <!-- shot -->
            <action>maincpu.mb@F391 = 01</action>
            <action>maincpu.mb@F3B6 = 60</action>
            <!-- missile -->
            <action>maincpu.mb@FDEB = 01</action>
            <action>maincpu.mb@FE10 = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mb@F391 = 03</action>
            <action>maincpu.mb@F3B6 = 67</action>
            <action>maincpu.mb@FDEB = 03</action>
            <action>maincpu.mb@FE10 = 67</action>
        </script>
    </cheat>

    <cheat desc="1 hit kill (test)">
        <script state="on">
            <action>maincpu.mb@B023 = 7F</action> <!-- P1 air -->
            <action>maincpu.mb@B069 = 7F</action> <!-- P2 air -->
            <action>maincpu.mb@B2C9 = 7F</action> <!-- P1 ground -->
            <action>maincpu.mb@B30F = 7F</action> <!-- P2 ground -->
        </script>
        <script state="off">
            <action>maincpu.mb@B023 = 01</action>
            <action>maincpu.mb@B069 = 01</action>
            <action>maincpu.mb@B2C9 = 01</action>
            <action>maincpu.mb@B30F = 01</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@00A14 = 4EF9000400204298</action>
            <action>maincpu.mq@40020 = 46FC200043E80100</action>
            <action>maincpu.mq@40028 = 45F900E000011401</action>
            <action>maincpu.mq@40030 = 12280009B40167F6</action>
            <action>maincpu.mq@40038 = 0C0100FB66025311</action>
            <action>maincpu.mq@40040 = 0C0100F766025211</action>
            <action>maincpu.mq@40048 = 0C0100FD66040411</action>
            <action>maincpu.mq@40050 = 00100C0100FE6604</action>
            <action>maincpu.mq@40058 = 061100100C0100EF</action>
            <action>maincpu.mq@40060 = 6608101100000080</action>
            <action>maincpu.mq@40068 = 14800C0100DF6604</action>
            <action>maincpu.mq@40070 = 14BC008060B8FFFF</action>
            <!--
            40020 | 46FC 2000      : move   #$2000,SR    // enable interrupt
            40024 | 43E8 0100      : lea    ($100,A0),A1 // sound code address ($700100)
            40028 | 45F9 00E0 0001 : lea    $e00001.l,A2 // sound latch address
            4002E | 1401           : move.b D1,D2
            40030 | 1228 0009      : move.b ($9,A0),D1   // read input
            40034 | B401           : cmp.b  D1,D2
            40036 | 67F6           : beq    $4002e
            40038 | 0C01 00FB      : cmpi.b #-$5,D1
            4003C | 6602           : bne    $40040
            4003E | 5311           : subq.b #1,(A1)      // decrease code -01
            40040 | 0C01 00F7      : cmpi.b #-$9,D1
            40044 | 6602           : bne    $40048
            40046 | 5211           : addq.b #1,(A1)      // increase code +01
            40048 | 0C01 00FD      : cmpi.b #-$3,D1
            4004C | 6604           : bne    $40052
            4004E | 0411 0010      : subi.b #$10,(A1)    // decrease code -10
            40052 | 0C01 00FE      : cmpi.b #-$2,D1
            40056 | 6604           : bne    $4005c
            40058 | 0611 0010      : addi.b #$10,(A1)    // increase code +10
            4005C | 0C01 00EF      : cmpi.b #-$11,D1
            40060 | 6608           : bne    $4006a
            40062 | 1011           : move.b (A1),D0      // play sound
            40064 | 0000 0080      : ori.b  #$80,D0
            40068 | 1480           : move.b D0,(A2)
            4006A | 0C01 00DF      : cmpi.b #-$21,D1
            4006E | 6604           : bne    $40074
            40070 | 14BC 0080      : move.b #$80,(A2)    // stop sound
            40074 | 60B8           : bra    $4002e
            -->
        </script>
        <script state="run">
            <output format="----- sand scorpion 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 %2.2X &gt;&gt;"        line="19" align="center"  >
                <argument>maincpu.pb@700100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@00A14 = 323C0FF042984298</action>
            <action>maincpu.mq@40020 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40028 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40030 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40038 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40040 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40048 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40050 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40058 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40060 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40068 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40070 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
sandscrpa.xml

Code: Select all

<!-- Sand Scorpion (Earlier) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mw@B038 = 00E2</action> <!-- P1 enemy -->
            <action>maincpu.mw@B076 = 00A4</action> <!-- P2 enemy -->
            <action>maincpu.mw@B39E = FD7C</action> <!-- P1 bullet -->
            <action>maincpu.mw@B3D6 = FD44</action> <!-- P2 bullet -->
            <action>maincpu.mw@B586 = FB94</action> <!-- P1 laser -->
            <action>maincpu.mw@B5C0 = FB5A</action> <!-- P2 laser -->
        </script>
        <script state="off">
            <action>maincpu.mw@B038 = 006C</action>
            <action>maincpu.mw@B076 = 002E</action>
            <action>maincpu.mw@B39E = FD06</action>
            <action>maincpu.mw@B3D6 = FCCE</action>
            <action>maincpu.mw@B586 = FB1E</action>
            <action>maincpu.mw@B5C0 = FAE4</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@E7C9 = 01</action>
        </script>
        <script state="off">
            <action>maincpu.mb@E7C9 = 40</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0001">01 (slow)</item>
            <item value="0x0002">02       </item>
            <item value="0x0006">03       </item>
            <item value="0x000a">04       </item>
            <item value="0x000e">05 (slow)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mw@9AEE = 303C</action> <!-- P1 right -->
            <action>maincpu.mw@9B1E = 303C</action> <!-- P1 left -->
            <action>maincpu.mw@9B5A = 303C</action> <!-- P2 right -->
            <action>maincpu.mw@9B88 = 303C</action> <!-- P2 left -->
            <action>maincpu.mw@DBD4 = 303C</action> <!-- up -->
            <action>maincpu.mw@DC0E = 303C</action> <!-- down -->
        </script>
        <script state="change">
            <action>maincpu.mw@9AF0 = param</action>
            <action>maincpu.mw@9B20 = param</action>
            <action>maincpu.mw@9B5C = param</action>
            <action>maincpu.mw@9B8A = param</action>
            <action>maincpu.mw@DBD6 = param</action>
            <action>maincpu.mw@DC10 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@9AEE = 06400002</action>
            <action>maincpu.md@9B1E = 06400002</action>
            <action>maincpu.md@9B5A = 06400002</action>
            <action>maincpu.md@9B88 = 06400002</action>
            <action>maincpu.md@DBD4 = 06400002</action>
            <action>maincpu.md@DC0E = 06400002</action>
        </script>
    </cheat>

    <cheat desc="bullet speed (test)">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.md@0D71C = 00040000        </action> <!-- P1 -->
            <action>maincpu.md@0D750 = 00040000        </action> <!-- P2 -->
            <action>maincpu.mq@40000 = 700048E782024EB9</action>
            <action>maincpu.mq@40008 = 0000E81E4CDF4041</action>
            <action>maincpu.mq@40010 = 51C8FFF04E75FFFF</action>
            <!--
            40000 | 70xx           : moveq   #$xx, D0
            40002 | 48E7 8202      : movem.l D0/D6/A6, -(A7)
            40006 | 4EB9 0000 E81E : jsr     $e81e.l
            4000C | 4CDF 4041      : movem.l (A7)+, D0/D6/A6
            40010 | 51C8 FFF0      : dbra    D0, $40002
            40014 | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@40001 = param - 1</action>
        </script>
        <script state="off">
            <action>maincpu.md@0D71C = 0000E81E        </action>
            <action>maincpu.md@0D750 = 0000E81E        </action>
            <action>maincpu.mq@40000 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40008 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40010 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="max bullets up">
        <script state="on">
            <action>maincpu.mb@EFB2 = 60</action> <!-- blue -->
            <action>maincpu.mb@F3A8 = 60</action> <!-- green -->
            <action>maincpu.mb@FE38 = 60</action> <!-- red -->
        </script>
        <script state="off">
            <action>maincpu.mb@EFB2 = 67</action>
            <action>maincpu.mb@F3A8 = 67</action>
            <action>maincpu.mb@FE38 = 67</action>
        </script>
    </cheat>

    <cheat desc="max missiles up">
        <script state="on">
            <action>maincpu.mb@F754 = 60</action> <!-- "H" -->
            <action>maincpu.mb@FB80 = 60</action> <!-- "M" -->
        </script>
        <script state="off">
            <action>maincpu.mb@F754 = 67</action>
            <action>maincpu.mb@FB80 = 67</action>
        </script>
    </cheat>

    <cheat desc="hidden character finder">
        <script state="on">
            <action>maincpu.mb@204AF = 0A</action>
        </script>
        <script state="off">
            <action>maincpu.mb@204AF = 96</action>
        </script>
    </cheat>

    <cheat desc="short hit mark">
        <script state="on">
            <!-- shot -->
            <action>maincpu.mb@F329 = 01</action>
            <action>maincpu.mb@F34E = 60</action>
            <!-- missile -->
            <action>maincpu.mb@FD83 = 01</action>
            <action>maincpu.mb@FDA8 = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mb@F329 = 03</action>
            <action>maincpu.mb@F34E = 67</action>
            <action>maincpu.mb@FD83 = 03</action>
            <action>maincpu.mb@FDA8 = 67</action>
        </script>
    </cheat>

    <cheat desc="1 hit kill (test)">
        <script state="on">
            <action>maincpu.mb@AFB3 = 7F</action> <!-- P1 air -->
            <action>maincpu.mb@AFF9 = 7F</action> <!-- P2 air -->
            <action>maincpu.mb@B259 = 7F</action> <!-- P1 ground -->
            <action>maincpu.mb@B29F = 7F</action> <!-- P2 ground -->
        </script>
        <script state="off">
            <action>maincpu.mb@AFB3 = 01</action>
            <action>maincpu.mb@AFF9 = 01</action>
            <action>maincpu.mb@B259 = 01</action>
            <action>maincpu.mb@B29F = 01</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@00A14 = 4EF9000400204298</action>
            <action>maincpu.mq@40020 = 46FC200043E80100</action>
            <action>maincpu.mq@40028 = 45F900E000011401</action>
            <action>maincpu.mq@40030 = 12280009B40167F6</action>
            <action>maincpu.mq@40038 = 0C0100FB66025311</action>
            <action>maincpu.mq@40040 = 0C0100F766025211</action>
            <action>maincpu.mq@40048 = 0C0100FD66040411</action>
            <action>maincpu.mq@40050 = 00100C0100FE6604</action>
            <action>maincpu.mq@40058 = 061100100C0100EF</action>
            <action>maincpu.mq@40060 = 6608101100000080</action>
            <action>maincpu.mq@40068 = 14800C0100DF6604</action>
            <action>maincpu.mq@40070 = 14BC008060B8FFFF</action>
            <!--
            40020 | 46FC 2000      : move   #$2000,SR    // enable interrupt
            40024 | 43E8 0100      : lea    ($100,A0),A1 // sound code address ($700100)
            40028 | 45F9 00E0 0001 : lea    $e00001.l,A2 // sound latch address
            4002E | 1401           : move.b D1,D2
            40030 | 1228 0009      : move.b ($9,A0),D1   // read input
            40034 | B401           : cmp.b  D1,D2
            40036 | 67F6           : beq    $4002e
            40038 | 0C01 00FB      : cmpi.b #-$5,D1
            4003C | 6602           : bne    $40040
            4003E | 5311           : subq.b #1,(A1)      // decrease code -01
            40040 | 0C01 00F7      : cmpi.b #-$9,D1
            40044 | 6602           : bne    $40048
            40046 | 5211           : addq.b #1,(A1)      // increase code +01
            40048 | 0C01 00FD      : cmpi.b #-$3,D1
            4004C | 6604           : bne    $40052
            4004E | 0411 0010      : subi.b #$10,(A1)    // decrease code -10
            40052 | 0C01 00FE      : cmpi.b #-$2,D1
            40056 | 6604           : bne    $4005c
            40058 | 0611 0010      : addi.b #$10,(A1)    // increase code +10
            4005C | 0C01 00EF      : cmpi.b #-$11,D1
            40060 | 6608           : bne    $4006a
            40062 | 1011           : move.b (A1),D0      // play sound
            40064 | 0000 0080      : ori.b  #$80,D0
            40068 | 1480           : move.b D0,(A2)
            4006A | 0C01 00DF      : cmpi.b #-$21,D1
            4006E | 6604           : bne    $40074
            40070 | 14BC 0080      : move.b #$80,(A2)    // stop sound
            40074 | 60B8           : bra    $4002e
            -->
        </script>
        <script state="run">
            <output format="----- sand scorpion 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 %2.2X &gt;&gt;"        line="19" align="center"  >
                <argument>maincpu.pb@700100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@00A14 = 323C0FF042984298</action>
            <action>maincpu.mq@40020 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40028 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40030 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40038 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40040 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40048 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40050 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40058 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40060 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40068 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40070 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
sandscrpb.xml

Code: Select all

<!-- Kuai Da Shizi Huangdi (China?, Revised Hardware) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mw@B0B4 = 00E2</action> <!-- P1 enemy -->
            <action>maincpu.mw@B0F2 = 00A4</action> <!-- P2 enemy -->
            <action>maincpu.mw@B41A = FD7C</action> <!-- P1 bullet -->
            <action>maincpu.mw@B452 = FD44</action> <!-- P2 bullet -->
            <action>maincpu.mw@B602 = FB94</action> <!-- P1 laser -->
            <action>maincpu.mw@B63C = FB5A</action> <!-- P2 laser -->
        </script>
        <script state="off">
            <action>maincpu.mw@B0B4 = 006C</action>
            <action>maincpu.mw@B0F2 = 002E</action>
            <action>maincpu.mw@B41A = FD06</action>
            <action>maincpu.mw@B452 = FCCE</action>
            <action>maincpu.mw@B602 = FB1E</action>
            <action>maincpu.mw@B63C = FAE4</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@E83D = 01</action>
        </script>
        <script state="off">
            <action>maincpu.mb@E83D = 40</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0001">01 (slow)</item>
            <item value="0x0002">02       </item>
            <item value="0x0006">03       </item>
            <item value="0x000a">04       </item>
            <item value="0x000e">05 (slow)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mw@9B16 = 303C</action> <!-- P1 right -->
            <action>maincpu.mw@9B46 = 303C</action> <!-- P1 left -->
            <action>maincpu.mw@9B82 = 303C</action> <!-- P2 right -->
            <action>maincpu.mw@9BB0 = 303C</action> <!-- P2 left -->
            <action>maincpu.mw@DC48 = 303C</action> <!-- up -->
            <action>maincpu.mw@DC82 = 303C</action> <!-- down -->
        </script>
        <script state="change">
            <action>maincpu.mw@9B18 = param</action>
            <action>maincpu.mw@9B48 = param</action>
            <action>maincpu.mw@9B84 = param</action>
            <action>maincpu.mw@9BB2 = param</action>
            <action>maincpu.mw@DC4A = param</action>
            <action>maincpu.mw@DC84 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@9B16 = 06400002</action>
            <action>maincpu.md@9B46 = 06400002</action>
            <action>maincpu.md@9B82 = 06400002</action>
            <action>maincpu.md@9BB0 = 06400002</action>
            <action>maincpu.md@DC48 = 06400002</action>
            <action>maincpu.md@DC82 = 06400002</action>
        </script>
    </cheat>

    <cheat desc="bullet speed (test)">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.md@0D790 = 00040000        </action> <!-- P1 -->
            <action>maincpu.md@0D7C4 = 00040000        </action> <!-- P2 -->
            <action>maincpu.mq@40000 = 700048E782024EB9</action>
            <action>maincpu.mq@40008 = 0000E8924CDF4041</action>
            <action>maincpu.mq@40010 = 51C8FFF04E75FFFF</action>
            <!--
            40000 | 70xx           : moveq   #$xx, D0
            40002 | 48E7 8202      : movem.l D0/D6/A6, -(A7)
            40006 | 4EB9 0000 E892 : jsr     $e892.l
            4000C | 4CDF 4041      : movem.l (A7)+, D0/D6/A6
            40010 | 51C8 FFF0      : dbra    D0, $40002
            40014 | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@40001 = param - 1</action>
        </script>
        <script state="off">
            <action>maincpu.md@0D790 = 0000E892        </action>
            <action>maincpu.md@0D7C4 = 0000E892        </action>
            <action>maincpu.mq@40000 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40008 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40010 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="max bullets up">
        <script state="on">
            <action>maincpu.mb@F026 = 60</action> <!-- blue -->
            <action>maincpu.mb@F41C = 60</action> <!-- green -->
            <action>maincpu.mb@FEAC = 60</action> <!-- red -->
        </script>
        <script state="off">
            <action>maincpu.mb@F026 = 67</action>
            <action>maincpu.mb@F41C = 67</action>
            <action>maincpu.mb@FEAC = 67</action>
        </script>
    </cheat>

    <cheat desc="max missiles up">
        <script state="on">
            <action>maincpu.mb@F7C8 = 60</action> <!-- "H" -->
            <action>maincpu.mb@FBF4 = 60</action> <!-- "M" -->
        </script>
        <script state="off">
            <action>maincpu.mb@F7C8 = 67</action>
            <action>maincpu.mb@FBF4 = 67</action>
        </script>
    </cheat>

    <cheat desc="hidden character finder">
        <script state="on">
            <action>maincpu.mb@20523 = 0A</action>
        </script>
        <script state="off">
            <action>maincpu.mb@20523 = 96</action>
        </script>
    </cheat>

    <cheat desc="short hit mark">
        <script state="on">
            <!-- shot -->
            <action>maincpu.mb@F39D = 01</action>
            <action>maincpu.mb@F3C2 = 60</action>
            <!-- missile -->
            <action>maincpu.mb@FDF7 = 01</action>
            <action>maincpu.mb@FE1C = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mb@F39D = 03</action>
            <action>maincpu.mb@F3C2 = 67</action>
            <action>maincpu.mb@FDF7 = 03</action>
            <action>maincpu.mb@FE1C = 67</action>
        </script>
    </cheat>

    <cheat desc="1 hit kill (test)">
        <script state="on">
            <action>maincpu.mb@B02F = 7F</action> <!-- P1 air -->
            <action>maincpu.mb@B075 = 7F</action> <!-- P2 air -->
            <action>maincpu.mb@B2D5 = 7F</action> <!-- P1 ground -->
            <action>maincpu.mb@B31B = 7F</action> <!-- P2 ground -->
        </script>
        <script state="off">
            <action>maincpu.mb@B02F = 01</action>
            <action>maincpu.mb@B075 = 01</action>
            <action>maincpu.mb@B2D5 = 01</action>
            <action>maincpu.mb@B31B = 01</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@00A14 = 4EF9000400204298</action>
            <action>maincpu.mq@40020 = 46FC200043E80100</action>
            <action>maincpu.mq@40028 = 45F900E000011401</action>
            <action>maincpu.mq@40030 = 12280009B40167F6</action>
            <action>maincpu.mq@40038 = 0C0100FB66025311</action>
            <action>maincpu.mq@40040 = 0C0100F766025211</action>
            <action>maincpu.mq@40048 = 0C0100FD66040411</action>
            <action>maincpu.mq@40050 = 00100C0100FE6604</action>
            <action>maincpu.mq@40058 = 061100100C0100EF</action>
            <action>maincpu.mq@40060 = 6608101100000080</action>
            <action>maincpu.mq@40068 = 14800C0100DF6604</action>
            <action>maincpu.mq@40070 = 14BC008060B8FFFF</action>
            <!--
            40020 | 46FC 2000      : move   #$2000,SR    // enable interrupt
            40024 | 43E8 0100      : lea    ($100,A0),A1 // sound code address ($700100)
            40028 | 45F9 00E0 0001 : lea    $e00001.l,A2 // sound latch address
            4002E | 1401           : move.b D1,D2
            40030 | 1228 0009      : move.b ($9,A0),D1   // read input
            40034 | B401           : cmp.b  D1,D2
            40036 | 67F6           : beq    $4002e
            40038 | 0C01 00FB      : cmpi.b #-$5,D1
            4003C | 6602           : bne    $40040
            4003E | 5311           : subq.b #1,(A1)      // decrease code -01
            40040 | 0C01 00F7      : cmpi.b #-$9,D1
            40044 | 6602           : bne    $40048
            40046 | 5211           : addq.b #1,(A1)      // increase code +01
            40048 | 0C01 00FD      : cmpi.b #-$3,D1
            4004C | 6604           : bne    $40052
            4004E | 0411 0010      : subi.b #$10,(A1)    // decrease code -10
            40052 | 0C01 00FE      : cmpi.b #-$2,D1
            40056 | 6604           : bne    $4005c
            40058 | 0611 0010      : addi.b #$10,(A1)    // increase code +10
            4005C | 0C01 00EF      : cmpi.b #-$11,D1
            40060 | 6608           : bne    $4006a
            40062 | 1011           : move.b (A1),D0      // play sound
            40064 | 0000 0080      : ori.b  #$80,D0
            40068 | 1480           : move.b D0,(A2)
            4006A | 0C01 00DF      : cmpi.b #-$21,D1
            4006E | 6604           : bne    $40074
            40070 | 14BC 0080      : move.b #$80,(A2)    // stop sound
            40074 | 60B8           : bra    $4002e
            -->
        </script>
        <script state="run">
            <output format="----- kuai da shizi huangdi 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 %2.2X &gt;&gt;"                line="19" align="center"  >
                <argument>maincpu.pb@700100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@00A14 = 323C0FF042984298</action>
            <action>maincpu.mq@40020 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40028 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40030 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40038 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40040 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40048 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40050 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40058 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40060 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40068 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40070 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
  • "no hit" : Merge two codes into one.
  • "bullet speed" : Rewrite routine though test code. Now "red" weapon and missiles get speed up.
  • "hidden character finder", "short hit mark" : Add new.
  • "1 hit kill" : Add new as test code.
  • "sound test mode" : Rewrite routine.
jman

my wip cheat database back-up (2024/12/01 ver.)
https://u3.getuploader.com/...../download/47
downloadpass : jman2020
jman
Posts: 1254
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 9 times

[sandscrp]+ Sand Scorpion

Post by jman »

sandscrp.xml

Code: Select all

<!-- Sand Scorpion -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mw@B0A8 = 00E2</action> <!-- 1P enemy -->
            <action>maincpu.mw@B0E6 = 00A4</action> <!-- 2P enemy -->
            <action>maincpu.mw@B40E = FD7C</action> <!-- 1P bullet -->
            <action>maincpu.mw@B446 = FD44</action> <!-- 2P bullet -->
            <action>maincpu.mw@B5F6 = FB94</action> <!-- 1P laser -->
            <action>maincpu.mw@B630 = FB5A</action> <!-- 2P laser -->
        </script>
        <script state="off">
            <action>maincpu.mw@B0A8 = 006C</action>
            <action>maincpu.mw@B0E6 = 002E</action>
            <action>maincpu.mw@B40E = FD06</action>
            <action>maincpu.mw@B446 = FCCE</action>
            <action>maincpu.mw@B5F6 = FB1E</action>
            <action>maincpu.mw@B630 = FAE4</action>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <script state="on">
            <action>maincpu.mb@E831 = 01</action>
        </script>
        <script state="off">
            <action>maincpu.mb@E831 = 40</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x303c0001">01 (slow)</item>
            <item value="0x303c0002">02       </item>
            <item value="0x303c0006">03       </item>
            <item value="0x303c000a">04       </item>
            <item value="0x303c000e">05 (slow)</item>
        </parameter>
        <script state="change">
            <action>maincpu.md@9B0A = param</action> <!-- 1P right -->
            <action>maincpu.md@9B3A = param</action> <!-- 1P left -->
            <action>maincpu.md@9B76 = param</action> <!-- 2P right -->
            <action>maincpu.md@9BA4 = param</action> <!-- 2P left -->
            <action>maincpu.md@DC3C = param</action> <!-- up -->
            <action>maincpu.md@DC76 = param</action> <!-- down -->
        </script>
        <script state="off">
            <action>maincpu.md@9B0A = 06400002</action>
            <action>maincpu.md@9B3A = 06400002</action>
            <action>maincpu.md@9B76 = 06400002</action>
            <action>maincpu.md@9BA4 = 06400002</action>
            <action>maincpu.md@DC3C = 06400002</action>
            <action>maincpu.md@DC76 = 06400002</action>
        </script>
    </cheat>

    <cheat desc="bullet speed (test)">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.md@0D784 = 00040000        </action> <!-- 1P -->
            <action>maincpu.md@0D7B8 = 00040000        </action> <!-- 2P -->
            <action>maincpu.mq@40000 = 700048E782024EB9</action>
            <action>maincpu.mq@40008 = 0000E8864CDF4041</action>
            <action>maincpu.mq@40010 = 51C8FFF04E75FFFF</action>
            <!--
            40000 | 70xx           : moveq   #$xx, D0
            40002 | 48E7 8202      : movem.l D0/D6/A6, -(A7)
            40006 | 4EB9 0000 E886 : jsr     $e886.l
            4000C | 4CDF 4041      : movem.l (A7)+, D0/D6/A6
            40010 | 51C8 FFF0      : dbra    D0, $40002
            40014 | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@40001 = param - 1</action>
        </script>
        <script state="off">
            <action>maincpu.md@0D784 = 0000E886        </action>
            <action>maincpu.md@0D7B8 = 0000E886        </action>
            <action>maincpu.mq@40000 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40008 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40010 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="max bullets up">
        <script state="on">
            <action>maincpu.mb@F01A = 60</action> <!-- blue -->
            <action>maincpu.mb@F410 = 60</action> <!-- green -->
            <action>maincpu.mb@FEA0 = 60</action> <!-- red -->
        </script>
        <script state="off">
            <action>maincpu.mb@F01A = 67</action>
            <action>maincpu.mb@F410 = 67</action>
            <action>maincpu.mb@FEA0 = 67</action>
        </script>
    </cheat>

    <cheat desc="max missiles up">
        <script state="on">
            <action>maincpu.mb@F7BC = 60</action> <!-- homing -->
            <action>maincpu.mb@FBE8 = 60</action> <!-- missile -->
        </script>
        <script state="off">
            <action>maincpu.mb@F7BC = 67</action>
            <action>maincpu.mb@FBE8 = 67</action>
        </script>
    </cheat>

    <cheat desc="hidden character finder">
        <script state="on">
            <action>maincpu.mb@20517 = 0A</action>
        </script>
        <script state="off">
            <action>maincpu.mb@20517 = 96</action>
        </script>
    </cheat>

    <cheat desc="short hit mark">
        <script state="on">
            <!-- shot -->
            <action>maincpu.mb@F391 = 01</action>
            <action>maincpu.mb@F3B6 = 60</action>
            <!-- missile -->
            <action>maincpu.mb@FDEB = 01</action>
            <action>maincpu.mb@FE10 = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mb@F391 = 03</action>
            <action>maincpu.mb@F3B6 = 67</action>
            <action>maincpu.mb@FDEB = 03</action>
            <action>maincpu.mb@FE10 = 67</action>
        </script>
    </cheat>

    <cheat desc="damage level">
        <parameter>
            <item value="0x303C00014E714E75">01 (low) </item>
            <item value="0x303C00084E714E75">02       </item>
            <item value="0x303C00104E714E75">03       </item>
            <item value="0x303C00184E714E75">04       </item>
            <item value="0x303C01004E714E75">05 (high)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mq@B024 = param</action> <!-- 1P -->
            <action>maincpu.mq@B06A = param</action> <!-- 2P -->
            <action>maincpu.mq@B2CA = param</action> <!-- 1P -->
            <action>maincpu.mq@B310 = param</action> <!-- 2P -->
        </script>
        <script state="off">
            <action>maincpu.mq@B024 = D079007002D84E75</action>
            <action>maincpu.mq@B06A = D079007002D84E75</action>
            <action>maincpu.mq@B2CA = D079007002D84E75</action>
            <action>maincpu.mq@B310 = D079007002D84E75</action>
        </script>
    </cheat>

    <cheat desc="1 hit kill (test)">
        <script state="on">
            <action>maincpu.mb@B023 = 7F</action> <!-- 1P air -->
            <action>maincpu.mb@B069 = 7F</action> <!-- 2P air -->
            <action>maincpu.mb@B2C9 = 7F</action> <!-- 1P ground -->
            <action>maincpu.mb@B30F = 7F</action> <!-- 2P ground -->
        </script>
        <script state="off">
            <action>maincpu.mb@B023 = 01</action>
            <action>maincpu.mb@B069 = 01</action>
            <action>maincpu.mb@B2C9 = 01</action>
            <action>maincpu.mb@B30F = 01</action>
        </script>
    </cheat>

    <cheat desc="auto damage">
        <script state="on">
            <action>maincpu.mq@0AF5C = 4EB90004008041F9</action>
            <action>maincpu.mq@0B1FC = 4EB90004008041F9</action>
            <action>maincpu.mq@40080 = 082E000700086734</action>
            <action>maincpu.mq@40088 = 222E000A0C4100D8</action>
            <action>maincpu.mq@40090 = 642A0C4100086524</action>
            <action>maincpu.mq@40098 = 48414A416B1E0C41</action>
            <action>maincpu.mq@400A0 = 00F864180C410008</action>
            <action>maincpu.mq@400A8 = 651208EE00030008</action>
            <action>maincpu.mq@400B0 = 47F9007060607002</action>
            <action>maincpu.mq@400B8 = 221F4E7508AE0003</action>
            <action>maincpu.mq@400C0 = 00084E75FFFFFFFF</action>
            <!--
            40080 | 082E 0007 0008 : btst    #$7, ($8,A6)
            40086 | 6734           : beq     $400bc
            40088 | 222E 000A      : move.l  ($a,A6), D1
            4008C | 0C41 00D8      : cmpi.w  #$d8, D1      // check x position
            40090 | 642A           : bcc     $400bc
            40092 | 0C41 0008      : cmpi.w  #$8, D1
            40096 | 6524           : bcs     $400bc
            40098 | 4841           : swap    D1
            4009A | 4A41           : tst.w   D1            // check y position
            4009C | 6B1E           : bmi     $400bc
            4009E | 0C41 00F8      : cmpi.w  #$f8, D1
            400A2 | 6418           : bcc     $400bc
            400A4 | 0C41 0008      : cmpi.w  #$8, D1
            400A8 | 6512           : bcs     $400bc
            400AA | 08EE 0003 0008 : bset    #$3, ($8,A6)  // set parameters
            400B0 | 47F9 0070 6060 : lea     $706060.l, A3
            400B6 | 7002           : moveq   #$2, D0
            400B8 | 221F           : move.l  (A7)+, D1
            400BA | 4E75           : rts
            400BC | 08AE 0003 0008 : bclr    #$3, ($8,A6)
            400C2 | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.mq@0AF5C = 08AE0003000841F9</action>
            <action>maincpu.mq@0B1FC = 08AE0003000841F9</action>
            <action>maincpu.mq@40080 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40088 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40090 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40098 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@400A0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@400A8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@400B0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@400B8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@400C0 = 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@00A14 = 4EF9000400204298</action>
            <action>maincpu.mq@40020 = 46FC200043E81000</action>
            <action>maincpu.mq@40028 = 45F900E000011401</action>
            <action>maincpu.mq@40030 = 12280009B40167F6</action>
            <action>maincpu.mq@40038 = 0C0100FB66025311</action>
            <action>maincpu.mq@40040 = 0C0100F766025211</action>
            <action>maincpu.mq@40048 = 0C0100FD66040411</action>
            <action>maincpu.mq@40050 = 00100C0100FE6604</action>
            <action>maincpu.mq@40058 = 061100100C0100EF</action>
            <action>maincpu.mq@40060 = 6608101100000080</action>
            <action>maincpu.mq@40068 = 14800C0100DF6604</action>
            <action>maincpu.mq@40070 = 14BC008060B8FFFF</action>
            <!--
            40020 | 46FC 2000      : move   #$2000,SR     // enable interrupt
            40024 | 43E8 1000      : lea    ($1000,A0),A1 // sound code address ($700100)
            40028 | 45F9 00E0 0001 : lea    $e00001.l,A2  // sound latch address
            4002E | 1401           : move.b D1,D2
            40030 | 1228 0009      : move.b ($9,A0),D1    // read input ($700009)
            40034 | B401           : cmp.b  D1,D2
            40036 | 67F6           : beq    $4002e
            40038 | 0C01 00FB      : cmpi.b #-$5,D1
            4003C | 6602           : bne    $40040
            4003E | 5311           : subq.b #1,(A1)       // decrease code -01
            40040 | 0C01 00F7      : cmpi.b #-$9,D1
            40044 | 6602           : bne    $40048
            40046 | 5211           : addq.b #1,(A1)       // increase code +01
            40048 | 0C01 00FD      : cmpi.b #-$3,D1
            4004C | 6604           : bne    $40052
            4004E | 0411 0010      : subi.b #$10,(A1)     // decrease code -10
            40052 | 0C01 00FE      : cmpi.b #-$2,D1
            40056 | 6604           : bne    $4005c
            40058 | 0611 0010      : addi.b #$10,(A1)     // increase code +10
            4005C | 0C01 00EF      : cmpi.b #-$11,D1
            40060 | 6608           : bne    $4006a
            40062 | 1011           : move.b (A1),D0       // play sound
            40064 | 0000 0080      : ori.b  #$80,D0
            40068 | 1480           : move.b D0,(A2)
            4006A | 0C01 00DF      : cmpi.b #-$21,D1
            4006E | 6604           : bne    $40074
            40070 | 14BC 0080      : move.b #$80,(A2)     // stop sound
            40074 | 60B8           : bra    $4002e
            -->
        </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@701000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@00A14 = 323C0FF042984298</action>
            <action>maincpu.mq@40020 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40028 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40030 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40038 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40040 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40048 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40050 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40058 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40060 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40068 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40070 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
sandscrpa.xml

Code: Select all

<!-- Sand Scorpion (Earlier) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mw@B038 = 00E2</action> <!-- 1P enemy -->
            <action>maincpu.mw@B076 = 00A4</action> <!-- 2P enemy -->
            <action>maincpu.mw@B39E = FD7C</action> <!-- 1P bullet -->
            <action>maincpu.mw@B3D6 = FD44</action> <!-- 2P bullet -->
            <action>maincpu.mw@B586 = FB94</action> <!-- 1P laser -->
            <action>maincpu.mw@B5C0 = FB5A</action> <!-- 2P laser -->
        </script>
        <script state="off">
            <action>maincpu.mw@B038 = 006C</action>
            <action>maincpu.mw@B076 = 002E</action>
            <action>maincpu.mw@B39E = FD06</action>
            <action>maincpu.mw@B3D6 = FCCE</action>
            <action>maincpu.mw@B586 = FB1E</action>
            <action>maincpu.mw@B5C0 = FAE4</action>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <script state="on">
            <action>maincpu.mb@E7C9 = 01</action>
        </script>
        <script state="off">
            <action>maincpu.mb@E7C9 = 40</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x303c0001">01 (slow)</item>
            <item value="0x303c0002">02       </item>
            <item value="0x303c0006">03       </item>
            <item value="0x303c000a">04       </item>
            <item value="0x303c000e">05 (slow)</item>
        </parameter>
        <script state="change">
            <action>maincpu.md@9AEE = param</action> <!-- 1P right -->
            <action>maincpu.md@9B1E = param</action> <!-- 1P left -->
            <action>maincpu.md@9B5A = param</action> <!-- 2P right -->
            <action>maincpu.md@9B88 = param</action> <!-- 2P left -->
            <action>maincpu.md@DBD4 = param</action> <!-- up -->
            <action>maincpu.md@DC0E = param</action> <!-- down -->
        </script>
        <script state="off">
            <action>maincpu.md@9AEE = 06400002</action>
            <action>maincpu.md@9B1E = 06400002</action>
            <action>maincpu.md@9B5A = 06400002</action>
            <action>maincpu.md@9B88 = 06400002</action>
            <action>maincpu.md@DBD4 = 06400002</action>
            <action>maincpu.md@DC0E = 06400002</action>
        </script>
    </cheat>

    <cheat desc="bullet speed (test)">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.md@0D71C = 00040000        </action> <!-- 1P -->
            <action>maincpu.md@0D750 = 00040000        </action> <!-- 2P -->
            <action>maincpu.mq@40000 = 700048E782024EB9</action>
            <action>maincpu.mq@40008 = 0000E81E4CDF4041</action>
            <action>maincpu.mq@40010 = 51C8FFF04E75FFFF</action>
            <!--
            40000 | 70xx           : moveq   #$xx, D0
            40002 | 48E7 8202      : movem.l D0/D6/A6, -(A7)
            40006 | 4EB9 0000 E81E : jsr     $e81e.l
            4000C | 4CDF 4041      : movem.l (A7)+, D0/D6/A6
            40010 | 51C8 FFF0      : dbra    D0, $40002
            40014 | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@40001 = param - 1</action>
        </script>
        <script state="off">
            <action>maincpu.md@0D71C = 0000E81E        </action>
            <action>maincpu.md@0D750 = 0000E81E        </action>
            <action>maincpu.mq@40000 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40008 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40010 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="max bullets up">
        <script state="on">
            <action>maincpu.mb@EFB2 = 60</action> <!-- blue -->
            <action>maincpu.mb@F3A8 = 60</action> <!-- green -->
            <action>maincpu.mb@FE38 = 60</action> <!-- red -->
        </script>
        <script state="off">
            <action>maincpu.mb@EFB2 = 67</action>
            <action>maincpu.mb@F3A8 = 67</action>
            <action>maincpu.mb@FE38 = 67</action>
        </script>
    </cheat>

    <cheat desc="max missiles up">
        <script state="on">
            <action>maincpu.mb@F754 = 60</action> <!-- homing -->
            <action>maincpu.mb@FB80 = 60</action> <!-- missile -->
        </script>
        <script state="off">
            <action>maincpu.mb@F754 = 67</action>
            <action>maincpu.mb@FB80 = 67</action>
        </script>
    </cheat>

    <cheat desc="hidden character finder">
        <script state="on">
            <action>maincpu.mb@204AF = 0A</action>
        </script>
        <script state="off">
            <action>maincpu.mb@204AF = 96</action>
        </script>
    </cheat>

    <cheat desc="short hit mark">
        <script state="on">
            <!-- shot -->
            <action>maincpu.mb@F329 = 01</action>
            <action>maincpu.mb@F34E = 60</action>
            <!-- missile -->
            <action>maincpu.mb@FD83 = 01</action>
            <action>maincpu.mb@FDA8 = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mb@F329 = 03</action>
            <action>maincpu.mb@F34E = 67</action>
            <action>maincpu.mb@FD83 = 03</action>
            <action>maincpu.mb@FDA8 = 67</action>
        </script>
    </cheat>

    <cheat desc="damage level">
        <parameter>
            <item value="0x303C00014E714E75">01 (low) </item>
            <item value="0x303C00084E714E75">02       </item>
            <item value="0x303C00104E714E75">03       </item>
            <item value="0x303C00184E714E75">04       </item>
            <item value="0x303C01004E714E75">05 (high)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mq@AFB4 = param</action> <!-- 1P -->
            <action>maincpu.mq@AFFA = param</action> <!-- 2P -->
            <action>maincpu.mq@B25A = param</action> <!-- 1P -->
            <action>maincpu.mq@B2A0 = param</action> <!-- 2P -->
        </script>
        <script state="off">
            <action>maincpu.mq@AFB4 = D079007002D84E75</action>
            <action>maincpu.mq@AFFA = D079007002D84E75</action>
            <action>maincpu.mq@B25A = D079007002D84E75</action>
            <action>maincpu.mq@B2A0 = D079007002D84E75</action>
        </script>
    </cheat>

    <cheat desc="1 hit kill (test)">
        <script state="on">
            <action>maincpu.mb@AFB3 = 7F</action> <!-- 1P air -->
            <action>maincpu.mb@AFF9 = 7F</action> <!-- 2P air -->
            <action>maincpu.mb@B259 = 7F</action> <!-- 1P ground -->
            <action>maincpu.mb@B29F = 7F</action> <!-- 2P ground -->
        </script>
        <script state="off">
            <action>maincpu.mb@AFB3 = 01</action>
            <action>maincpu.mb@AFF9 = 01</action>
            <action>maincpu.mb@B259 = 01</action>
            <action>maincpu.mb@B29F = 01</action>
        </script>
    </cheat>

    <cheat desc="auto damage">
        <script state="on">
            <action>maincpu.mq@0AEEC = 4EB90004008041F9</action>
            <action>maincpu.mq@0B18C = 4EB90004008041F9</action>
            <action>maincpu.mq@40080 = 082E000700086734</action>
            <action>maincpu.mq@40088 = 222E000A0C4100D8</action>
            <action>maincpu.mq@40090 = 642A0C4100086524</action>
            <action>maincpu.mq@40098 = 48414A416B1E0C41</action>
            <action>maincpu.mq@400A0 = 00F864180C410008</action>
            <action>maincpu.mq@400A8 = 651208EE00030008</action>
            <action>maincpu.mq@400B0 = 47F9007060607002</action>
            <action>maincpu.mq@400B8 = 221F4E7508AE0003</action>
            <action>maincpu.mq@400C0 = 00084E75FFFFFFFF</action>
            <!--
            40080 | 082E 0007 0008 : btst    #$7, ($8,A6)
            40086 | 6734           : beq     $400bc
            40088 | 222E 000A      : move.l  ($a,A6), D1
            4008C | 0C41 00D8      : cmpi.w  #$d8, D1      // check x position
            40090 | 642A           : bcc     $400bc
            40092 | 0C41 0008      : cmpi.w  #$8, D1
            40096 | 6524           : bcs     $400bc
            40098 | 4841           : swap    D1
            4009A | 4A41           : tst.w   D1            // check y position
            4009C | 6B1E           : bmi     $400bc
            4009E | 0C41 00F8      : cmpi.w  #$f8, D1
            400A2 | 6418           : bcc     $400bc
            400A4 | 0C41 0008      : cmpi.w  #$8, D1
            400A8 | 6512           : bcs     $400bc
            400AA | 08EE 0003 0008 : bset    #$3, ($8,A6)  // set parameters
            400B0 | 47F9 0070 6060 : lea     $706060.l, A3
            400B6 | 7002           : moveq   #$2, D0
            400B8 | 221F           : move.l  (A7)+, D1
            400BA | 4E75           : rts
            400BC | 08AE 0003 0008 : bclr    #$3, ($8,A6)
            400C2 | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.mq@0AEEC = 08AE0003000841F9</action>
            <action>maincpu.mq@0B18C = 08AE0003000841F9</action>
            <action>maincpu.mq@40080 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40088 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40090 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40098 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@400A0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@400A8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@400B0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@400B8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@400C0 = 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@00A14 = 4EF9000400204298</action>
            <action>maincpu.mq@40020 = 46FC200043E81000</action>
            <action>maincpu.mq@40028 = 45F900E000011401</action>
            <action>maincpu.mq@40030 = 12280009B40167F6</action>
            <action>maincpu.mq@40038 = 0C0100FB66025311</action>
            <action>maincpu.mq@40040 = 0C0100F766025211</action>
            <action>maincpu.mq@40048 = 0C0100FD66040411</action>
            <action>maincpu.mq@40050 = 00100C0100FE6604</action>
            <action>maincpu.mq@40058 = 061100100C0100EF</action>
            <action>maincpu.mq@40060 = 6608101100000080</action>
            <action>maincpu.mq@40068 = 14800C0100DF6604</action>
            <action>maincpu.mq@40070 = 14BC008060B8FFFF</action>
            <!--
            40020 | 46FC 2000      : move   #$2000,SR     // enable interrupt
            40024 | 43E8 1000      : lea    ($1000,A0),A1 // sound code address ($701000)
            40028 | 45F9 00E0 0001 : lea    $e00001.l,A2  // sound latch address
            4002E | 1401           : move.b D1,D2
            40030 | 1228 0009      : move.b ($9,A0),D1    // read input ($700009)
            40034 | B401           : cmp.b  D1,D2
            40036 | 67F6           : beq    $4002e
            40038 | 0C01 00FB      : cmpi.b #-$5,D1
            4003C | 6602           : bne    $40040
            4003E | 5311           : subq.b #1,(A1)       // decrease code -01
            40040 | 0C01 00F7      : cmpi.b #-$9,D1
            40044 | 6602           : bne    $40048
            40046 | 5211           : addq.b #1,(A1)       // increase code +01
            40048 | 0C01 00FD      : cmpi.b #-$3,D1
            4004C | 6604           : bne    $40052
            4004E | 0411 0010      : subi.b #$10,(A1)     // decrease code -10
            40052 | 0C01 00FE      : cmpi.b #-$2,D1
            40056 | 6604           : bne    $4005c
            40058 | 0611 0010      : addi.b #$10,(A1)     // increase code +10
            4005C | 0C01 00EF      : cmpi.b #-$11,D1
            40060 | 6608           : bne    $4006a
            40062 | 1011           : move.b (A1),D0       // play sound
            40064 | 0000 0080      : ori.b  #$80,D0
            40068 | 1480           : move.b D0,(A2)
            4006A | 0C01 00DF      : cmpi.b #-$21,D1
            4006E | 6604           : bne    $40074
            40070 | 14BC 0080      : move.b #$80,(A2)     // stop sound
            40074 | 60B8           : bra    $4002e
            -->
        </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@701000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@00A14 = 323C0FF042984298</action>
            <action>maincpu.mq@40020 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40028 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40030 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40038 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40040 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40048 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40050 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40058 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40060 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40068 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40070 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
sandscrpb.xml

Code: Select all

<!-- Kuai Da Shizi Huangdi (China?, Revised Hardware) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mw@B0B4 = 00E2</action> <!-- 1P enemy -->
            <action>maincpu.mw@B0F2 = 00A4</action> <!-- 2P enemy -->
            <action>maincpu.mw@B41A = FD7C</action> <!-- 1P bullet -->
            <action>maincpu.mw@B452 = FD44</action> <!-- 2P bullet -->
            <action>maincpu.mw@B602 = FB94</action> <!-- 1P laser -->
            <action>maincpu.mw@B63C = FB5A</action> <!-- 2P laser -->
        </script>
        <script state="off">
            <action>maincpu.mw@B0B4 = 006C</action>
            <action>maincpu.mw@B0F2 = 002E</action>
            <action>maincpu.mw@B41A = FD06</action>
            <action>maincpu.mw@B452 = FCCE</action>
            <action>maincpu.mw@B602 = FB1E</action>
            <action>maincpu.mw@B63C = FAE4</action>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <script state="on">
            <action>maincpu.mb@E83D = 01</action>
        </script>
        <script state="off">
            <action>maincpu.mb@E83D = 40</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x303c0001">01 (slow)</item>
            <item value="0x303c0002">02       </item>
            <item value="0x303c0006">03       </item>
            <item value="0x303c000a">04       </item>
            <item value="0x303c000e">05 (slow)</item>
        </parameter>
        <script state="change">
            <action>maincpu.md@9B16 = param</action> <!-- 1P right -->
            <action>maincpu.md@9B46 = param</action> <!-- 1P left -->
            <action>maincpu.md@9B82 = param</action> <!-- 2P right -->
            <action>maincpu.md@9BB0 = param</action> <!-- 2P left -->
            <action>maincpu.md@DC48 = param</action> <!-- up -->
            <action>maincpu.md@DC82 = param</action> <!-- down -->
        </script>
        <script state="off">
            <action>maincpu.md@9B16 = 06400002</action>
            <action>maincpu.md@9B46 = 06400002</action>
            <action>maincpu.md@9B82 = 06400002</action>
            <action>maincpu.md@9BB0 = 06400002</action>
            <action>maincpu.md@DC48 = 06400002</action>
            <action>maincpu.md@DC82 = 06400002</action>
        </script>
    </cheat>

    <cheat desc="bullet speed (test)">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.md@0D790 = 00040000        </action> <!-- 1P -->
            <action>maincpu.md@0D7C4 = 00040000        </action> <!-- 2P -->
            <action>maincpu.mq@40000 = 700048E782024EB9</action>
            <action>maincpu.mq@40008 = 0000E8924CDF4041</action>
            <action>maincpu.mq@40010 = 51C8FFF04E75FFFF</action>
            <!--
            40000 | 70xx           : moveq   #$xx, D0
            40002 | 48E7 8202      : movem.l D0/D6/A6, -(A7)
            40006 | 4EB9 0000 E892 : jsr     $e892.l
            4000C | 4CDF 4041      : movem.l (A7)+, D0/D6/A6
            40010 | 51C8 FFF0      : dbra    D0, $40002
            40014 | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@40001 = param - 1</action>
        </script>
        <script state="off">
            <action>maincpu.md@0D790 = 0000E892        </action>
            <action>maincpu.md@0D7C4 = 0000E892        </action>
            <action>maincpu.mq@40000 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40008 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40010 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="max bullets up">
        <script state="on">
            <action>maincpu.mb@F026 = 60</action> <!-- blue -->
            <action>maincpu.mb@F41C = 60</action> <!-- green -->
            <action>maincpu.mb@FEAC = 60</action> <!-- red -->
        </script>
        <script state="off">
            <action>maincpu.mb@F026 = 67</action>
            <action>maincpu.mb@F41C = 67</action>
            <action>maincpu.mb@FEAC = 67</action>
        </script>
    </cheat>

    <cheat desc="max missiles up">
        <script state="on">
            <action>maincpu.mb@F7C8 = 60</action> <!-- homing -->
            <action>maincpu.mb@FBF4 = 60</action> <!-- missile -->
        </script>
        <script state="off">
            <action>maincpu.mb@F7C8 = 67</action>
            <action>maincpu.mb@FBF4 = 67</action>
        </script>
    </cheat>

    <cheat desc="hidden character finder">
        <script state="on">
            <action>maincpu.mb@20523 = 0A</action>
        </script>
        <script state="off">
            <action>maincpu.mb@20523 = 96</action>
        </script>
    </cheat>

    <cheat desc="short hit mark">
        <script state="on">
            <!-- shot -->
            <action>maincpu.mb@F39D = 01</action>
            <action>maincpu.mb@F3C2 = 60</action>
            <!-- missile -->
            <action>maincpu.mb@FDF7 = 01</action>
            <action>maincpu.mb@FE1C = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mb@F39D = 03</action>
            <action>maincpu.mb@F3C2 = 67</action>
            <action>maincpu.mb@FDF7 = 03</action>
            <action>maincpu.mb@FE1C = 67</action>
        </script>
    </cheat>

    <cheat desc="damage level">
        <parameter>
            <item value="0x303C00014E714E75">01 (low) </item>
            <item value="0x303C00084E714E75">02       </item>
            <item value="0x303C00104E714E75">03       </item>
            <item value="0x303C00184E714E75">04       </item>
            <item value="0x303C01004E714E75">05 (high)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mq@B030 = param</action> <!-- 1P -->
            <action>maincpu.mq@B076 = param</action> <!-- 2P -->
            <action>maincpu.mq@B2D6 = param</action> <!-- 1P -->
            <action>maincpu.mq@B31C = param</action> <!-- 2P -->
        </script>
        <script state="off">
            <action>maincpu.mq@B030 = D079007002D84E75</action>
            <action>maincpu.mq@B076 = D079007002D84E75</action>
            <action>maincpu.mq@B2D6 = D079007002D84E75</action>
            <action>maincpu.mq@B31C = D079007002D84E75</action>
        </script>
    </cheat>

    <cheat desc="1 hit kill (test)">
        <script state="on">
            <action>maincpu.mb@B02F = 7F</action> <!-- 1P air -->
            <action>maincpu.mb@B075 = 7F</action> <!-- 2P air -->
            <action>maincpu.mb@B2D5 = 7F</action> <!-- 1P ground -->
            <action>maincpu.mb@B31B = 7F</action> <!-- 2P ground -->
        </script>
        <script state="off">
            <action>maincpu.mb@B02F = 01</action>
            <action>maincpu.mb@B075 = 01</action>
            <action>maincpu.mb@B2D5 = 01</action>
            <action>maincpu.mb@B31B = 01</action>
        </script>
    </cheat>

    <cheat desc="auto damage">
        <script state="on">
            <action>maincpu.mq@0AF68 = 4EB90004008041F9</action>
            <action>maincpu.mq@0B208 = 4EB90004008041F9</action>
            <action>maincpu.mq@40080 = 082E000700086734</action>
            <action>maincpu.mq@40088 = 222E000A0C4100D8</action>
            <action>maincpu.mq@40090 = 642A0C4100086524</action>
            <action>maincpu.mq@40098 = 48414A416B1E0C41</action>
            <action>maincpu.mq@400A0 = 00F864180C410008</action>
            <action>maincpu.mq@400A8 = 651208EE00030008</action>
            <action>maincpu.mq@400B0 = 47F9007060607002</action>
            <action>maincpu.mq@400B8 = 221F4E7508AE0003</action>
            <action>maincpu.mq@400C0 = 00084E75FFFFFFFF</action>
            <!--
            40080 | 082E 0007 0008 : btst    #$7, ($8,A6)
            40086 | 6734           : beq     $400bc
            40088 | 222E 000A      : move.l  ($a,A6), D1
            4008C | 0C41 00D8      : cmpi.w  #$d8, D1      // check x position
            40090 | 642A           : bcc     $400bc
            40092 | 0C41 0008      : cmpi.w  #$8, D1
            40096 | 6524           : bcs     $400bc
            40098 | 4841           : swap    D1
            4009A | 4A41           : tst.w   D1            // check y position
            4009C | 6B1E           : bmi     $400bc
            4009E | 0C41 00F8      : cmpi.w  #$f8, D1
            400A2 | 6418           : bcc     $400bc
            400A4 | 0C41 0008      : cmpi.w  #$8, D1
            400A8 | 6512           : bcs     $400bc
            400AA | 08EE 0003 0008 : bset    #$3, ($8,A6)  // set parameters
            400B0 | 47F9 0070 6060 : lea     $706060.l, A3
            400B6 | 7002           : moveq   #$2, D0
            400B8 | 221F           : move.l  (A7)+, D1
            400BA | 4E75           : rts
            400BC | 08AE 0003 0008 : bclr    #$3, ($8,A6)
            400C2 | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.mq@0AF68 = 08AE0003000841F9</action>
            <action>maincpu.mq@0B208 = 08AE0003000841F9</action>
            <action>maincpu.mq@40080 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40088 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40090 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40098 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@400A0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@400A8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@400B0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@400B8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@400C0 = 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@00A14 = 4EF9000400204298</action>
            <action>maincpu.mq@40020 = 46FC200043E81000</action>
            <action>maincpu.mq@40028 = 45F900E000011401</action>
            <action>maincpu.mq@40030 = 12280009B40167F6</action>
            <action>maincpu.mq@40038 = 0C0100FB66025311</action>
            <action>maincpu.mq@40040 = 0C0100F766025211</action>
            <action>maincpu.mq@40048 = 0C0100FD66040411</action>
            <action>maincpu.mq@40050 = 00100C0100FE6604</action>
            <action>maincpu.mq@40058 = 061100100C0100EF</action>
            <action>maincpu.mq@40060 = 6608101100000080</action>
            <action>maincpu.mq@40068 = 14800C0100DF6604</action>
            <action>maincpu.mq@40070 = 14BC008060B8FFFF</action>
            <!--
            40020 | 46FC 2000      : move   #$2000,SR     // enable interrupt
            40024 | 43E8 0100      : lea    ($1000,A0),A1 // sound code address ($701000)
            40028 | 45F9 00E0 0001 : lea    $e00001.l,A2  // sound latch address
            4002E | 1401           : move.b D1,D2
            40030 | 1228 0009      : move.b ($9,A0),D1    // read input ($700009)
            40034 | B401           : cmp.b  D1,D2
            40036 | 67F6           : beq    $4002e
            40038 | 0C01 00FB      : cmpi.b #-$5,D1
            4003C | 6602           : bne    $40040
            4003E | 5311           : subq.b #1,(A1)       // decrease code -01
            40040 | 0C01 00F7      : cmpi.b #-$9,D1
            40044 | 6602           : bne    $40048
            40046 | 5211           : addq.b #1,(A1)       // increase code +01
            40048 | 0C01 00FD      : cmpi.b #-$3,D1
            4004C | 6604           : bne    $40052
            4004E | 0411 0010      : subi.b #$10,(A1)     // decrease code -10
            40052 | 0C01 00FE      : cmpi.b #-$2,D1
            40056 | 6604           : bne    $4005c
            40058 | 0611 0010      : addi.b #$10,(A1)     // increase code +10
            4005C | 0C01 00EF      : cmpi.b #-$11,D1
            40060 | 6608           : bne    $4006a
            40062 | 1011           : move.b (A1),D0       // play sound
            40064 | 0000 0080      : ori.b  #$80,D0
            40068 | 1480           : move.b D0,(A2)
            4006A | 0C01 00DF      : cmpi.b #-$21,D1
            4006E | 6604           : bne    $40074
            40070 | 14BC 0080      : move.b #$80,(A2)     // stop sound
            40074 | 60B8           : bra    $4002e
            -->
        </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@701000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@00A14 = 323C0FF042984298</action>
            <action>maincpu.mq@40020 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40028 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40030 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40038 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40040 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40048 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40050 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40058 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40060 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40068 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40070 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
"damage level" and "auto damage" : Added new.
jman

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