[tdragon] Thunder Dragon

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

[tdragon] Thunder Dragon

Post by jman »

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>maincpu.mb@b498 = 60</action> <!-- enemy -->
        <action>maincpu.mb@ae40 = 60</action> <!-- bullet -->
    </script>
    <script state="off">
        <action>maincpu.mb@b498 = 66</action>
        <action>maincpu.mb@ae40 = 66</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mb@9e2b = 00</action>
        <action>maincpu.mb@9f85 = 00</action>
    </script>
    <script state="off">
        <action>maincpu.mb@9e2b = 20</action>
        <action>maincpu.mb@9f85 = 20</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter min="0x01" max="0x05" step="0x01" />
    <script state="on">
        <action>maincpu.md@9816 =         4eb80210</action>
        <action>maincpu.mq@0210 = 2030000476004843</action>
        <action>maincpu.mq@0218 = 4a8167066a024483</action>
        <action>maincpu.mq@0220 = 2203760048434a80</action>
        <action>maincpu.mq@0228 = 67066a0244832003</action>
        <action>maincpu.mq@0230 = 4e75000000000000</action>
        <!--
        9816 | 4eb8 0210 : jsr    $210.w
        0210 | 2030 0004 : move.l ($4,A0,D0.w),D0
        0214 | 76xx      : moveq  #$xx,D3
        0216 | 4843      : swap   D3
        0218 | 4a81      : tst.l  D1
        021a | 6706      : beq    $222
        021c | 6a02      : bpl    $220
        021e | 4483      : neg.l  D3
        0220 | 2203      : move.l D3,D1
        0222 | 76xx      : moveq  #$xx,D3
        0224 | 4843      : swap   D3
        0226 | 4a80      : tst.l  D0
        0228 | 6706      : beq    $230
        022a | 6a02      : bpl    $22e
        022c | 4483      : neg.l  D3
        022e | 2003      : move.l D3,D0
        0230 | 4e75      : rts
        -->
    </script>
    <script state="change">
        <action>maincpu.mb@0215 = param</action>
        <action>maincpu.mb@0223 = param</action>
    </script>
    <script state="off">
        <action>maincpu.md@9816 =         20300004</action>
        <action>maincpu.mq@0210 = 0000000000000000</action>
        <action>maincpu.mq@0218 = 0000000000000000</action>
        <action>maincpu.mq@0220 = 0000000000000000</action>
        <action>maincpu.mq@0228 = 0000000000000000</action>
        <action>maincpu.mq@0230 = 0000000000000000</action>
    </script>
</cheat>

<cheat desc="bullet speed">
    <comment>mainshot, weapon 1 and 2 only</comment>
    <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@9eae =         4eb80200</action>
        <action>maincpu.md@a02e =         4eb80200</action>
        <action>maincpu.md@a0a4 =         4eb80200</action>
        <action>maincpu.mq@0200 = 201b700048402940</action>
        <action>maincpu.mq@0208 = 00204e7500000000</action>
        <!--
        0200 | 201b      : move.l (A3)+,D0
        0202 | 70xx      : moveq  #$xx,D0
        0204 | 4840      : swap   D0
        0206 | 2940 0020 : move.l D0,($20,A4)
        020a | 4e75      : rts
        -->
    </script>
    <script state="change">
        <action>maincpu.mb@0203 = param</action>
    </script>
    <script state="off">
        <action>maincpu.md@9eae =         295b0020</action>
        <action>maincpu.md@a02e =         295b0020</action>
        <action>maincpu.md@a0a4 =         295b0020</action>
        <action>maincpu.mq@0200 = 0000000000000000</action>
        <action>maincpu.mq@0208 = 0000000000000000</action>
    </script>
</cheat>

<cheat desc="unlock test mode">
    <comment>reset the game (F3) to enter test mode</comment>
    <script state="on">
        <action>maincpu.mb@05b5 = 46</action>
    </script>
    <script state="off">
        <action>maincpu.mb@05b5 = 56</action>
    </script>
</cheat>

<cheat desc="sound test mode">
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action>maincpu.mw@e1d6 =             4e75</action> <!-- sound enable routine stopper -->
        <action>maincpu.md@be92 =         4ef80240</action>
        <action>maincpu.mq@0240 = 41f9000b01001401</action>
        <action>maincpu.mq@0248 = 1239000c0003b401</action>
        <action>maincpu.mq@0250 = 67f40c0100fd6602</action>
        <action>maincpu.mq@0258 = 53100c0100fe6602</action>
        <action>maincpu.mq@0260 = 52100c0100fb6604</action>
        <action>maincpu.mq@0268 = 041000100c0100f7</action>
        <action>maincpu.mq@0270 = 6604061000100c01</action>
        <action>maincpu.mq@0278 = 00ef660810104eb9</action>
        <action>maincpu.mq@0280 = 0000e1ca0c0100df</action>
        <action>maincpu.mq@0288 = 66064eb90000dbf4</action>
        <action>maincpu.mq@0290 = 60b4000000000000</action>
        <!--
        0240 | 41f9 000b 0100 : lea    $b0100.l,A0 // sound code address
        0246 | 1401           : move.b D1,D2
        0248 | 1239 000c 0003 : move.b $c0003.l,D1 // read input
        024e | b401           : cmp.b  D1,D2
        0250 | 67f4           : beq    $246
        0252 | 0c01 00fd      : cmpi.b #-$3,D1
        0256 | 6602           : bne    $25a
        0258 | 5310           : subq.b #1,(A0)     // decrease code -01
        025a | 0c01 00fe      : cmpi.b #-$2,D1
        025e | 6602           : bne    $262
        0260 | 5210           : addq.b #1,(A0)     // increase code +01
        0262 | 0c01 00fb      : cmpi.b #-$5,D1
        0266 | 6604           : bne    $26c
        0268 | 0410 0010      : subi.b #$10,(A0)   // decrease code -10
        026c | 0c01 00f7      : cmpi.b #-$9,D1
        0270 | 6604           : bne    $276
        0272 | 0610 0010      : addi.b #$10,(A0)   // increase code +10
        0276 | 0c01 00ef      : cmpi.b #-$11 D1
        027a | 6608           : bne    $284
        027c | 1010           : move.b (A0),D0     // play sound
        027e | 4eb9 0000 e1ca : jsr    $e1ca.l
        0284 | 0c01 00df      : cmpi.b #-$21,D1
        0288 | 6606           : bne    $290
        028a | 4eb9 0000 dbf4 : jsr    $dbf4.l     // stop sound
        0290 | 60b4           : bra    $246
        -->
    </script>
    <script state="run">
        <output format="----- thunder dragon 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@b0100</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mw@e1d6 =             3c01</action>
        <action>maincpu.md@be92 =         610016b2</action>
        <action>maincpu.mq@0240 = 0000000000000000</action>
        <action>maincpu.mq@0248 = 0000000000000000</action>
        <action>maincpu.mq@0250 = 0000000000000000</action>
        <action>maincpu.mq@0258 = 0000000000000000</action>
        <action>maincpu.mq@0260 = 0000000000000000</action>
        <action>maincpu.mq@0268 = 0000000000000000</action>
        <action>maincpu.mq@0270 = 0000000000000000</action>
        <action>maincpu.mq@0278 = 0000000000000000</action>
        <action>maincpu.mq@0280 = 0000000000000000</action>
        <action>maincpu.mq@0288 = 0000000000000000</action>
        <action>maincpu.mq@0290 = 0000000000000000</action>
    </script>
</cheat>
If you set both "unlock test mode" and "sound test mode" codes, secret test mode is preferred.
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

[tdragon] Thunder Dragon (update)

Post by jman »

Code: Select all

<!-- Thunder Dragon (8th Jan. 1992, unprotected) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@ae40 = 60</action> <!-- bullet -->
            <action>maincpu.mb@b498 = 60</action> <!-- enemy -->
        </script>
        <script state="off">
            <action>maincpu.mb@ae40 = 66</action>
            <action>maincpu.mb@b498 = 66</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@9e2b = 00</action> <!-- main shot -->
            <action>maincpu.mb@9f61 = 00</action> <!-- weapon 3 -->
            <action>maincpu.mb@9f7d = 00</action> <!-- weapon 2 -->
            <action>maincpu.mb@9f85 = 00</action> <!-- weapon 1,4 -->
        </script>
        <script state="off">
            <action>maincpu.mb@9e2b = 20</action>
            <action>maincpu.mb@9f61 = 02</action>
            <action>maincpu.mb@9f7d = 04</action>
            <action>maincpu.mb@9f85 = 20</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x00018000">01 (slow)</item>
            <item value="0x00028000">02       </item>
            <item value="0x00048000">03       </item>
            <item value="0x00068000">04       </item>
            <item value="0x00088000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@9816 =         4eb800c0</action>
            <action>maincpu.mq@00c0 = 203000040c6e00a8</action>
            <action>maincpu.mq@00c8 = 002c6420263c0000</action>
            <action>maincpu.mq@00d0 = 00004a8167066a02</action>
            <action>maincpu.mq@00d8 = 44832203263c0000</action>
            <action>maincpu.mq@00e0 = 00004a8067066a02</action>
            <action>maincpu.mq@00e8 = 448320034e750000</action>
            <!--
            00c0 | 2030 0004      : move.l ($4,A0,D0.w),D0
            00c4 | 0c6e 00a8 002c : cmpi.w #$a8,($2c,A6)   // check auto moving flag
            00ca | 6420           : bcc    $ec
            00cc | 263c xxxx xxxx : move.l #$xxxx,D3       // y-position
            00d2 | 4a81           : tst.l  D1
            00d4 | 6706           : beq    $dc
            00d6 | 6a02           : bpl    $da
            00d8 | 4483           : neg.l  D3
            00da | 2203           : move.l D3,D1
            00dc | 263c xxxx xxxx : move.l #$xxxx,D3       // x-position
            00e2 | 4a80           : tst.l  D0
            00e4 | 6706           : beq    $ec
            00e6 | 6a02           : bpl    $ea
            00e8 | 4483           : neg.l  D3
            00ea | 2003           : move.l D3,D0
            00ec | 4e75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@00ce = param</action>
            <action>maincpu.md@00de = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@9816 =         20300004</action>
            <action>maincpu.mq@00c0 = 0000000000000000</action>
            <action>maincpu.mq@00c8 = 0000000000000000</action>
            <action>maincpu.mq@00d0 = 0000000000000000</action>
            <action>maincpu.mq@00d8 = 0000000000000000</action>
            <action>maincpu.mq@00e0 = 0000000000000000</action>
            <action>maincpu.mq@00e8 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <comment>mainshot, weapon 1 and 2 only</comment>
        <parameter>
            <item value="0x00048000">01 (slow)</item>
            <item value="0x00088000">02       </item>
            <item value="0x000c8000">03       </item>
            <item value="0x00108000">04       </item>
            <item value="0x00148000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@9eae =         4eb800f0</action>
            <action>maincpu.md@a02e =         4eb800f0</action>
            <action>maincpu.md@a0a4 =         4eb800f0</action>
            <action>maincpu.mq@00f0 = 584b297c00000000</action>
            <action>maincpu.mq@00f8 = 00204e7500000000</action>
            <!--
            00f0 | 584b                : addq.w #4,A3
            00f2 | 297c xxxx xxxx 0020 : move.l #$xxxx,($20,A4)
            00fa | 4e75                : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@00f4 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@9eae =         295b0020</action>
            <action>maincpu.md@a02e =         295b0020</action>
            <action>maincpu.md@a0a4 =         295b0020</action>
            <action>maincpu.mq@00f0 = 0000000000000000</action>
            <action>maincpu.mq@00f8 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="max bullets up (test)">
        <comment>mainshot, weapon 1 and 2 only</comment>
        <script state="on">
            <!-- main shot -->
            <action>maincpu.mb@9e04 = 79</action>
            <action>maincpu.mb@9e55 = 18</action>
            <action>maincpu.mb@9ee0 = 00</action>
            <!-- weapon 1 -->
            <action>maincpu.mb@16201 = 04</action> <!-- level 1 -->
            <action>maincpu.mb@1625d = 04</action> <!-- level 2 -->
            <action>maincpu.mb@162b9 = 04</action> <!-- level 3 -->
            <action>maincpu.mb@1636d = 04</action> <!-- level 4 -->
            <action>maincpu.mb@16421 = 04</action> <!-- level 5 -->
            <action>maincpu.mb@164d5 = 04</action> <!-- level 6 -->
            <action>maincpu.mb@16589 = 04</action> <!-- level 7 -->
            <action>maincpu.mb@1663d = 04</action> <!-- level 8 -->
            <!-- weapon 2 -->
            <action>maincpu.mb@16ca9 = 08</action> <!-- level 1 -->
            <action>maincpu.mb@16cd7 = 0a</action> <!-- level 2 -->
            <action>maincpu.mb@16d05 = 0c</action> <!-- level 3 -->
            <action>maincpu.mb@16d33 = 0e</action> <!-- level 4 -->
            <action>maincpu.mb@16d61 = 10</action> <!-- level 5 -->
            <action>maincpu.mb@16d8f = 12</action> <!-- level 6 -->
            <action>maincpu.mb@16dbd = 14</action> <!-- level 7 -->
            <action>maincpu.mb@16deb = 16</action> <!-- level 8 -->
        </script>
        <script state="off">
            <action>maincpu.mb@09e04 = 69</action>
            <action>maincpu.mb@09e55 = 03</action>
            <action>maincpu.mb@09ee0 = 10</action>
            <action>maincpu.mb@16201 = 02</action>
            <action>maincpu.mb@1625d = 02</action>
            <action>maincpu.mb@162b9 = 02</action>
            <action>maincpu.mb@1636d = 02</action>
            <action>maincpu.mb@16421 = 02</action>
            <action>maincpu.mb@164d5 = 02</action>
            <action>maincpu.mb@16589 = 02</action>
            <action>maincpu.mb@1663d = 02</action>
            <action>maincpu.mb@16ca9 = 04</action>
            <action>maincpu.mb@16cd7 = 05</action>
            <action>maincpu.mb@16d05 = 06</action>
            <action>maincpu.mb@16d33 = 07</action>
            <action>maincpu.mb@16d61 = 08</action>
            <action>maincpu.mb@16d8f = 09</action>
            <action>maincpu.mb@16dbd = 0a</action>
            <action>maincpu.mb@16deb =  b</action>
        </script>
    </cheat>

    <cheat desc="short hit mark (test)">
        <comment>mainshot, weapon 1 and 2 only</comment>
        <script state="on">
            <action>maincpu.mb@16c57 = 00</action>
            <action>maincpu.mb@16c83 = 00</action>
            <action>maincpu.mb@16feb = 00</action>
            <action>maincpu.mb@1700b = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@16c57 = 01</action>
            <action>maincpu.mb@16c83 = 01</action>
            <action>maincpu.mb@16feb = 01</action>
            <action>maincpu.mb@1700b = 01</action>
        </script>
    </cheat>

    <cheat desc="hidden star item finder">
        <script state="on">
            <action>maincpu.md@b758 =         4eb80100</action>
            <action>maincpu.mq@0100 = 0c6e00280004660e</action>
            <action>maincpu.mq@0108 = 0c6e02c000106e06</action>
            <action>maincpu.mq@0110 = 3d7c0010003a302e</action>
            <action>maincpu.mq@0118 = 003a4e7500000000</action>
            <!--
            0100 | 0c6e 0028 0004 : cmpi.w #$28,($4,A6)
            0106 | 660e           : bne    $116
            0108 | 0c6e 02c0 0010 : cmpi.w #$2c0,($10,A6)
            010e | 6e06           : bgt    $116
            0110 | 3d7c 0010 003a : move.w #$10,($3a,A6)
            0116 | 302e 003a      : move.w ($3a,A6),D0
            011a | 4e75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.md@b758 =         302e003a</action>
            <action>maincpu.mq@0100 = 0000000000000000</action>
            <action>maincpu.mq@0108 = 0000000000000000</action>
            <action>maincpu.mq@0110 = 0000000000000000</action>
            <action>maincpu.mq@0118 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="unlock test mode">
        <comment>reset the game (F3) to enter test mode</comment>
        <script state="on">
            <action>maincpu.mb@05b5 = 46</action>
        </script>
        <script state="off">
            <action>maincpu.mb@05b5 = 56</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mw@e1d6 =             4e75</action> <!-- sound routine stopper -->
            <action>maincpu.md@be92 =         4ef80120</action>
            <action>maincpu.mq@0120 = 41f9000b01001401</action>
            <action>maincpu.mq@0128 = 1239000c0003b401</action>
            <action>maincpu.mq@0130 = 67f40c0100fd6602</action>
            <action>maincpu.mq@0138 = 53100c0100fe6602</action>
            <action>maincpu.mq@0140 = 52100c0100fb6604</action>
            <action>maincpu.mq@0148 = 041000100c0100f7</action>
            <action>maincpu.mq@0150 = 6604061000100c01</action>
            <action>maincpu.mq@0158 = 00ef660810104eb9</action>
            <action>maincpu.mq@0160 = 0000e1ca0c0100df</action>
            <action>maincpu.mq@0168 = 66064eb90000dbf4</action>
            <action>maincpu.mq@0170 = 60b4000000000000</action>
            <!--
            0120 | 41f9 000b 0100 : lea    $b0100.l,A0 // sound code address
            0126 | 1401           : move.b D1,D2
            0128 | 1239 000c 0003 : move.b $c0003.l,D1 // read input
            012e | b401           : cmp.b  D1,D2
            0130 | 67f4           : beq    $126
            0132 | 0c01 00fd      : cmpi.b #-$3,D1
            0136 | 6602           : bne    $13a
            0138 | 5310           : subq.b #1,(A0)     // decrease code -01
            013a | 0c01 00fe      : cmpi.b #-$2,D1
            013e | 6602           : bne    $142
            0140 | 5210           : addq.b #1,(A0)     // increase code +01
            0142 | 0c01 00fb      : cmpi.b #-$5,D1
            0146 | 6604           : bne    $14c
            0148 | 0410 0010      : subi.b #$10,(A0)   // decrease code -10
            014c | 0c01 00f7      : cmpi.b #-$9,D1
            0150 | 6604           : bne    $156
            0152 | 0610 0010      : addi.b #$10,(A0)   // increase code +10
            0156 | 0c01 00ef      : cmpi.b #-$11 D1
            015a | 6608           : bne    $164
            015c | 1010           : move.b (A0),D0     // play sound
            015e | 4eb9 0000 e1ca : jsr    $e1ca.l
            0164 | 0c01 00df      : cmpi.b #-$21,D1
            0168 | 6606           : bne    $170
            016a | 4eb9 0000 dbf4 : jsr    $dbf4.l     // stop sound
            0170 | 60b4           : bra    $126
            -->
        </script>
        <script state="run">
            <output format="----- thunder dragon 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@b0100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@e1d6 =             3c01</action>
            <action>maincpu.md@be92 =         610016b2</action>
            <action>maincpu.mq@0120 = 0000000000000000</action>
            <action>maincpu.mq@0128 = 0000000000000000</action>
            <action>maincpu.mq@0130 = 0000000000000000</action>
            <action>maincpu.mq@0138 = 0000000000000000</action>
            <action>maincpu.mq@0140 = 0000000000000000</action>
            <action>maincpu.mq@0148 = 0000000000000000</action>
            <action>maincpu.mq@0150 = 0000000000000000</action>
            <action>maincpu.mq@0158 = 0000000000000000</action>
            <action>maincpu.mq@0160 = 0000000000000000</action>
            <action>maincpu.mq@0168 = 0000000000000000</action>
            <action>maincpu.mq@0170 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
  • "auto fire" : fix weapon 2 and 3.
  • "player speed" : rewrite routine. check auto-moving flag at start. reallocate address.
  • "bullet speed" : rewrite routine. reallocate address.
  • "max bullets up", "short hit mark" : add new as test code. there need further test.
  • "hidden star item finder" : add new.
  • "sound test mode" : reallocate address.
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

[tdragon]+ Thunder Dragon

Post by jman »

tdragon.xml

Code: Select all

<!-- Thunder Dragon (8th Jan. 1992, unprotected) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@AE40 = 60</action> <!-- bullet -->
            <action>maincpu.mb@B498 = 60</action> <!-- enemy -->
        </script>
        <script state="off">
            <action>maincpu.mb@AE40 = 66</action>
            <action>maincpu.mb@B498 = 66</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@9E2B = 00</action> <!-- main shot -->
            <action>maincpu.mb@9F61 = 00</action> <!-- weapon 3 -->
            <action>maincpu.mb@9F7D = 00</action> <!-- weapon 2 -->
            <action>maincpu.mb@9F85 = 00</action> <!-- weapon 1,4 -->
        </script>
        <script state="off">
            <action>maincpu.mb@9E2B = 20</action>
            <action>maincpu.mb@9F61 = 02</action>
            <action>maincpu.mb@9F7D = 04</action>
            <action>maincpu.mb@9F85 = 20</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x00018000">01 (slow)</item>
            <item value="0x00028000">02       </item>
            <item value="0x00048000">03       </item>
            <item value="0x00068000">04       </item>
            <item value="0x00088000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@9816 = 4EB800C0        </action>
            <action>maincpu.mq@00C0 = 203000040C6E00A8</action>
            <action>maincpu.mq@00C8 = 002C6420263C0000</action>
            <action>maincpu.mq@00D0 = 00004A8167066A02</action>
            <action>maincpu.mq@00D8 = 44832203263C0000</action>
            <action>maincpu.mq@00E0 = 00004A8067066A02</action>
            <action>maincpu.mq@00E8 = 448320034E750000</action>
            <!--
            00C0 | 2030 0004      : move.l  ($4,A0,D0.w), D0
            00C4 | 0C6E 00A8 002C : cmpi.w  #$a8, ($2c,A6)   // check auto move flag
            00CA | 6420           : bcc     $ec
            00CC | 263C xxxx xxxx : move.l  #$xxxx, D3       // y position
            00D2 | 4A81           : tst.l   D1
            00D4 | 6706           : beq     $dc
            00D6 | 6A02           : bpl     $da
            00D8 | 4483           : neg.l   D3
            00DA | 2203           : move.l  D3, D1
            00DC | 263C xxxx xxxx : move.l  #$xxxx, D3       // x position
            00E2 | 4A80           : tst.l   D0
            00E4 | 6706           : beq     $ec
            00E6 | 6A02           : bpl     $ea
            00E8 | 4483           : neg.l   D3
            00EA | 2003           : move.l  D3, D0
            00EC | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@00CE = param</action>
            <action>maincpu.md@00DE = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@9816 = 20300004        </action>
            <action>maincpu.mq@00C0 = 0000000000000000</action>
            <action>maincpu.mq@00C8 = 0000000000000000</action>
            <action>maincpu.mq@00D0 = 0000000000000000</action>
            <action>maincpu.mq@00D8 = 0000000000000000</action>
            <action>maincpu.mq@00E0 = 0000000000000000</action>
            <action>maincpu.mq@00E8 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <comment>mainshot, weapon 1 and 2 only</comment>
        <parameter>
            <item value="0x00048000">01 (slow)</item>
            <item value="0x00088000">02       </item>
            <item value="0x000c8000">03       </item>
            <item value="0x00108000">04       </item>
            <item value="0x00148000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@9EAE = 4EB800F0        </action>
            <action>maincpu.md@A02E = 4EB800F0        </action>
            <action>maincpu.md@A0A4 = 4EB800F0        </action>
            <action>maincpu.mq@00F0 = 584B297C00000000</action>
            <action>maincpu.mq@00F8 = 00204E7500000000</action>
            <!--
            00F0 | 584B                : addq.w  #4, A3
            00F2 | 297C xxxx xxxx 0020 : move.l  #$xxxx, ($20,A4)
            00FA | 4E75                : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@00F4 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@9EAE = 295B0020        </action>
            <action>maincpu.md@A02E = 295B0020        </action>
            <action>maincpu.md@A0A4 = 295B0020        </action>
            <action>maincpu.mq@00F0 = 0000000000000000</action>
            <action>maincpu.mq@00F8 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="max bullets up (test)">
        <comment>mainshot, weapon 1 and 2 only</comment>
        <script state="on">
            <!-- main shot -->
            <action>maincpu.mb@9E04 = 79</action>
            <action>maincpu.mb@9E55 = 18</action>
            <action>maincpu.mb@9EE0 = 00</action>
            <!-- weapon 1 -->
            <action>maincpu.mb@16201 = 04</action> <!-- level 1 -->
            <action>maincpu.mb@1625D = 04</action> <!-- level 2 -->
            <action>maincpu.mb@162B9 = 04</action> <!-- level 3 -->
            <action>maincpu.mb@1636D = 04</action> <!-- level 4 -->
            <action>maincpu.mb@16421 = 04</action> <!-- level 5 -->
            <action>maincpu.mb@164D5 = 04</action> <!-- level 6 -->
            <action>maincpu.mb@16589 = 04</action> <!-- level 7 -->
            <action>maincpu.mb@1663D = 04</action> <!-- level 8 -->
            <!-- weapon 2 -->
            <action>maincpu.mb@16CA9 = 08</action> <!-- level 1 -->
            <action>maincpu.mb@16CD7 = 0A</action> <!-- level 2 -->
            <action>maincpu.mb@16D05 = 0C</action> <!-- level 3 -->
            <action>maincpu.mb@16D33 = 0E</action> <!-- level 4 -->
            <action>maincpu.mb@16D61 = 10</action> <!-- level 5 -->
            <action>maincpu.mb@16D8F = 12</action> <!-- level 6 -->
            <action>maincpu.mb@16DBD = 14</action> <!-- level 7 -->
            <action>maincpu.mb@16DEB = 16</action> <!-- level 8 -->
        </script>
        <script state="off">
            <action>maincpu.mb@09E04 = 69</action>
            <action>maincpu.mb@09E55 = 03</action>
            <action>maincpu.mb@09EE0 = 10</action>
            <action>maincpu.mb@16201 = 02</action>
            <action>maincpu.mb@1625D = 02</action>
            <action>maincpu.mb@162B9 = 02</action>
            <action>maincpu.mb@1636D = 02</action>
            <action>maincpu.mb@16421 = 02</action>
            <action>maincpu.mb@164D5 = 02</action>
            <action>maincpu.mb@16589 = 02</action>
            <action>maincpu.mb@1663D = 02</action>
            <action>maincpu.mb@16CA9 = 04</action>
            <action>maincpu.mb@16CD7 = 05</action>
            <action>maincpu.mb@16D05 = 06</action>
            <action>maincpu.mb@16D33 = 07</action>
            <action>maincpu.mb@16D61 = 08</action>
            <action>maincpu.mb@16D8F = 09</action>
            <action>maincpu.mb@16DBD = 0A</action>
            <action>maincpu.mb@16DEB =  B</action>
        </script>
    </cheat>

    <cheat desc="short hit mark (test)">
        <comment>mainshot, weapon 1 and 2 only</comment>
        <script state="on">
            <action>maincpu.mb@16C57 = 00</action>
            <action>maincpu.mb@16C83 = 00</action>
            <action>maincpu.mb@16FEB = 00</action>
            <action>maincpu.mb@1700B = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@16C57 = 01</action>
            <action>maincpu.mb@16C83 = 01</action>
            <action>maincpu.mb@16FEB = 01</action>
            <action>maincpu.mb@1700B = 01</action>
        </script>
    </cheat>

    <cheat desc="hidden star item finder">
        <script state="on">
            <action>maincpu.md@B758 = 4EB80100        </action>
            <action>maincpu.mq@0100 = 0C6E00280004660E</action>
            <action>maincpu.mq@0108 = 0C6E02C000106E06</action>
            <action>maincpu.mq@0110 = 3D7C0010003A302E</action>
            <action>maincpu.mq@0118 = 003A4E7500000000</action>
            <!--
            0100 | 0C6E 0028 0004 : cmpi.w  #$28, ($4,A6)
            0106 | 660E           : bne     $116
            0108 | 0C6E 02C0 0010 : cmpi.w  #$2c0, ($10,A6)
            010E | 6E06           : bgt     $116
            0110 | 3D7C 0010 003A : move.w  #$10, ($3a,A6)
            0116 | 302E 003A      : move.w  ($3a,A6), D0
            011A | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.md@B758 = 302E003A        </action>
            <action>maincpu.mq@0100 = 0000000000000000</action>
            <action>maincpu.mq@0108 = 0000000000000000</action>
            <action>maincpu.mq@0110 = 0000000000000000</action>
            <action>maincpu.mq@0118 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="unlock test mode">
        <comment>reset the game (F3) to enter test mode</comment>
        <script state="on">
            <action>maincpu.mw@053A = 6046</action>
        </script>
        <script state="off">
            <action>maincpu.mw@053A = 6600</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mw@E1D6 = 4E75            </action> <!-- sound routine stopper -->
            <action>maincpu.md@BE92 = 4EF80120        </action>
            <action>maincpu.mq@0120 = 41F9000B00001401</action>
            <action>maincpu.mq@0128 = 1239000C0003B401</action>
            <action>maincpu.mq@0130 = 67F40C0100FD6602</action>
            <action>maincpu.mq@0138 = 53100C0100FE6602</action>
            <action>maincpu.mq@0140 = 52100C0100FB6604</action>
            <action>maincpu.mq@0148 = 041000100C0100F7</action>
            <action>maincpu.mq@0150 = 6604061000100C01</action>
            <action>maincpu.mq@0158 = 00EF660810104EB9</action>
            <action>maincpu.mq@0160 = 0000E1CA0C0100DF</action>
            <action>maincpu.mq@0168 = 66064EB90000DBF4</action>
            <action>maincpu.mq@0170 = 60B4000000000000</action>
            <!--
            0120 | 41F9 000B 0000 : lea     $b0000.l, A0 // sound code address
            0126 | 1401           : move.b  D1, D2
            0128 | 1239 000C 0003 : move.b  $c0003.l, D1 // read input
            012E | B401           : cmp.b   D1, D2
            0130 | 67F4           : beq     $126
            0132 | 0C01 00FD      : cmpi.b  #-$3, D1
            0136 | 6602           : bne     $13a
            0138 | 5310           : subq.b  #1, (A0)     // decrease code -01
            013A | 0C01 00FE      : cmpi.b  #-$2, D1
            013E | 6602           : bne     $142
            0140 | 5210           : addq.b  #1, (A0)     // increase code +01
            0142 | 0C01 00FB      : cmpi.b  #-$5, D1
            0146 | 6604           : bne     $14c
            0148 | 0410 0010      : subi.b  #$10, (A0)   // decrease code -10
            014C | 0C01 00F7      : cmpi.b  #-$9, D1
            0150 | 6604           : bne     $156
            0152 | 0610 0010      : addi.b  #$10, (A0)   // increase code +10
            0156 | 0C01 00EF      : cmpi.b  #-$11, D1
            015A | 6608           : bne     $164
            015C | 1010           : move.b  (A0), D0     // play sound
            015E | 4EB9 0000 E1CA : jsr     $e1ca.l
            0164 | 0C01 00DF      : cmpi.b  #-$21, D1
            0168 | 6606           : bne     $170
            016A | 4EB9 0000 DBF4 : jsr     $dbf4.l      // stop sound
            0170 | 60B4           : bra     $126
            -->
        </script>
        <script state="run">
            <output format="----- thunder dragon 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@B0000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@E1D6 = 3C01            </action>
            <action>maincpu.md@BE92 = 610016B2        </action>
            <action>maincpu.mq@0120 = 0000000000000000</action>
            <action>maincpu.mq@0128 = 0000000000000000</action>
            <action>maincpu.mq@0130 = 0000000000000000</action>
            <action>maincpu.mq@0138 = 0000000000000000</action>
            <action>maincpu.mq@0140 = 0000000000000000</action>
            <action>maincpu.mq@0148 = 0000000000000000</action>
            <action>maincpu.mq@0150 = 0000000000000000</action>
            <action>maincpu.mq@0158 = 0000000000000000</action>
            <action>maincpu.mq@0160 = 0000000000000000</action>
            <action>maincpu.mq@0168 = 0000000000000000</action>
            <action>maincpu.mq@0170 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
tdragon1.xml

Code: Select all

<!-- Thunder Dragon (4th Jun. 1991, protected) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@B0B6 = 60</action> <!-- bullet -->
            <action>maincpu.mb@B70E = 60</action> <!-- enemy -->
        </script>
        <script state="off">
            <action>maincpu.mb@B0B6 = 66</action>
            <action>maincpu.mb@B70E = 66</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@A093 = 00</action> <!-- main shot -->
            <action>maincpu.mb@A1C9 = 00</action> <!-- weapon 3 -->
            <action>maincpu.mb@A1E5 = 00</action> <!-- weapon 2 -->
            <action>maincpu.mb@A1ED = 00</action> <!-- weapon 1,4 -->
        </script>
        <script state="off">
            <action>maincpu.mb@A093 = 20</action>
            <action>maincpu.mb@A1C9 = 02</action>
            <action>maincpu.mb@A1E5 = 04</action>
            <action>maincpu.mb@A1ED = 20</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x00018000">01 (slow)</item>
            <item value="0x00028000">02       </item>
            <item value="0x00048000">03       </item>
            <item value="0x00068000">04       </item>
            <item value="0x00088000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@9A80 = 4EB800C0        </action>
            <action>maincpu.mq@00C0 = 203000040C6E00A8</action>
            <action>maincpu.mq@00C8 = 002C6420263C0000</action>
            <action>maincpu.mq@00D0 = 00004A8167066A02</action>
            <action>maincpu.mq@00D8 = 44832203263C0000</action>
            <action>maincpu.mq@00E0 = 00004A8067066A02</action>
            <action>maincpu.mq@00E8 = 448320034E750000</action>
            <!--
            00C0 | 2030 0004      : move.l  ($4,A0,D0.w), D0
            00C4 | 0C6E 00A8 002C : cmpi.w  #$a8, ($2c,A6)   // check auto move flag
            00CA | 6420           : bcc     $ec
            00CC | 263C xxxx xxxx : move.l  #$xxxx, D3       // y position
            00D2 | 4A81           : tst.l   D1
            00D4 | 6706           : beq     $dc
            00D6 | 6A02           : bpl     $da
            00D8 | 4483           : neg.l   D3
            00DA | 2203           : move.l  D3, D1
            00DC | 263C xxxx xxxx : move.l  #$xxxx, D3       // x position
            00E2 | 4A80           : tst.l   D0
            00E4 | 6706           : beq     $ec
            00E6 | 6A02           : bpl     $ea
            00E8 | 4483           : neg.l   D3
            00EA | 2003           : move.l  D3, D0
            00EC | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@00CE = param</action>
            <action>maincpu.md@00DE = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@9A80 = 20300004        </action>
            <action>maincpu.mq@00C0 = 0000000000000000</action>
            <action>maincpu.mq@00C8 = 0000000000000000</action>
            <action>maincpu.mq@00D0 = 0000000000000000</action>
            <action>maincpu.mq@00D8 = 0000000000000000</action>
            <action>maincpu.mq@00E0 = 0000000000000000</action>
            <action>maincpu.mq@00E8 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <comment>mainshot, weapon 1 and 2 only</comment>
        <parameter>
            <item value="0x00048000">01 (slow)</item>
            <item value="0x00088000">02       </item>
            <item value="0x000c8000">03       </item>
            <item value="0x00108000">04       </item>
            <item value="0x00148000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@A116 = 4EB800F0        </action>
            <action>maincpu.md@A296 = 4EB800F0        </action>
            <action>maincpu.md@A30C = 4EB800F0        </action>
            <action>maincpu.mq@00F0 = 584B297C00000000</action>
            <action>maincpu.mq@00F8 = 00204E7500000000</action>
            <!--
            00F0 | 584B                : addq.w  #4, A3
            00F2 | 297C xxxx xxxx 0020 : move.l  #$xxxx, ($20,A4)
            00FA | 4E75                : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@00F4 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@9EAE = 295B0020        </action>
            <action>maincpu.md@A02E = 295B0020        </action>
            <action>maincpu.md@A0A4 = 295B0020        </action>
            <action>maincpu.mq@00F0 = 0000000000000000</action>
            <action>maincpu.mq@00F8 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="max bullets up (test)">
        <comment>mainshot, weapon 1 and 2 only</comment>
        <script state="on">
            <!-- main shot -->
            <action>maincpu.mb@A06C = 79</action>
            <action>maincpu.mb@A0BD = 18</action>
            <action>maincpu.mb@A148 = 00</action>
            <!-- weapon 1 -->
            <action>maincpu.mb@16201 = 04</action> <!-- level 1 -->
            <action>maincpu.mb@1625D = 04</action> <!-- level 2 -->
            <action>maincpu.mb@162B9 = 04</action> <!-- level 3 -->
            <action>maincpu.mb@1636D = 04</action> <!-- level 4 -->
            <action>maincpu.mb@16421 = 04</action> <!-- level 5 -->
            <action>maincpu.mb@164D5 = 04</action> <!-- level 6 -->
            <action>maincpu.mb@16589 = 04</action> <!-- level 7 -->
            <action>maincpu.mb@1663D = 04</action> <!-- level 8 -->
            <!-- weapon 2 -->
            <action>maincpu.mb@16CA9 = 08</action> <!-- level 1 -->
            <action>maincpu.mb@16CD7 = 0A</action> <!-- level 2 -->
            <action>maincpu.mb@16D05 = 0C</action> <!-- level 3 -->
            <action>maincpu.mb@16D33 = 0E</action> <!-- level 4 -->
            <action>maincpu.mb@16D61 = 10</action> <!-- level 5 -->
            <action>maincpu.mb@16D8F = 12</action> <!-- level 6 -->
            <action>maincpu.mb@16DBD = 14</action> <!-- level 7 -->
            <action>maincpu.mb@16DEB = 16</action> <!-- level 8 -->
        </script>
        <script state="off">
            <action>maincpu.mb@0A06C = 69</action>
            <action>maincpu.mb@0A0BD = 03</action>
            <action>maincpu.mb@0A148 = 10</action>
            <action>maincpu.mb@16201 = 02</action>
            <action>maincpu.mb@1625D = 02</action>
            <action>maincpu.mb@162B9 = 02</action>
            <action>maincpu.mb@1636D = 02</action>
            <action>maincpu.mb@16421 = 02</action>
            <action>maincpu.mb@164D5 = 02</action>
            <action>maincpu.mb@16589 = 02</action>
            <action>maincpu.mb@1663D = 02</action>
            <action>maincpu.mb@16CA9 = 04</action>
            <action>maincpu.mb@16CD7 = 05</action>
            <action>maincpu.mb@16D05 = 06</action>
            <action>maincpu.mb@16D33 = 07</action>
            <action>maincpu.mb@16D61 = 08</action>
            <action>maincpu.mb@16D8F = 09</action>
            <action>maincpu.mb@16DBD = 0A</action>
            <action>maincpu.mb@16DEB =  B</action>
        </script>
    </cheat>

    <cheat desc="short hit mark (test)">
        <comment>mainshot, weapon 1 and 2 only</comment>
        <script state="on">
            <action>maincpu.mb@16C57 = 00</action>
            <action>maincpu.mb@16C83 = 00</action>
            <action>maincpu.mb@16FEB = 00</action>
            <action>maincpu.mb@1700B = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@16C57 = 01</action>
            <action>maincpu.mb@16C83 = 01</action>
            <action>maincpu.mb@16FEB = 01</action>
            <action>maincpu.mb@1700B = 01</action>
        </script>
    </cheat>

    <cheat desc="hidden star item finder">
        <script state="on">
            <action>maincpu.md@B9CE = 4EB80100        </action>
            <action>maincpu.mq@0100 = 0C6E00280004660E</action>
            <action>maincpu.mq@0108 = 0C6E02C000106E06</action>
            <action>maincpu.mq@0110 = 3D7C0010003A302E</action>
            <action>maincpu.mq@0118 = 003A4E7500000000</action>
            <!--
            0100 | 0C6E 0028 0004 : cmpi.w  #$28, ($4,A6)
            0106 | 660E           : bne     $116
            0108 | 0C6E 02C0 0010 : cmpi.w  #$2c0, ($10,A6)
            010E | 6E06           : bgt     $116
            0110 | 3D7C 0010 003A : move.w  #$10, ($3a,A6)
            0116 | 302E 003A      : move.w  ($3a,A6), D0
            011A | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.md@B9CE = 302E003A        </action>
            <action>maincpu.mq@0100 = 0000000000000000</action>
            <action>maincpu.mq@0108 = 0000000000000000</action>
            <action>maincpu.mq@0110 = 0000000000000000</action>
            <action>maincpu.mq@0118 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="unlock test mode">
        <comment>reset the game (F3) to enter test mode</comment>
        <script state="on">
            <action>maincpu.mw@053A = 6046</action>
        </script>
        <script state="off">
            <action>maincpu.mw@053A = 6600</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mw@E46C = 4E75            </action> <!-- sound routine stopper -->
            <action>maincpu.md@C110 = 4EF80120        </action>
            <action>maincpu.mq@0120 = 41F9000B00001401</action>
            <action>maincpu.mq@0128 = 1239000C0003B401</action>
            <action>maincpu.mq@0130 = 67F40C0100FD6602</action>
            <action>maincpu.mq@0138 = 53100C0100FE6602</action>
            <action>maincpu.mq@0140 = 52100C0100FB6604</action>
            <action>maincpu.mq@0148 = 041000100C0100F7</action>
            <action>maincpu.mq@0150 = 6604061000100C01</action>
            <action>maincpu.mq@0158 = 00EF660810104EB9</action>
            <action>maincpu.mq@0160 = 0000E4600C0100DF</action>
            <action>maincpu.mq@0168 = 66064EB90000DE82</action>
            <action>maincpu.mq@0170 = 60B4000000000000</action>
            <!--
            0120 | 41F9 000B 0000 : lea     $b0000.l, A0 // sound code address
            0126 | 1401           : move.b  D1, D2
            0128 | 1239 000C 0003 : move.b  $c0003.l, D1 // read input
            012E | B401           : cmp.b   D1, D2
            0130 | 67F4           : beq     $126
            0132 | 0C01 00FD      : cmpi.b  #-$3, D1
            0136 | 6602           : bne     $13a
            0138 | 5310           : subq.b  #1, (A0)     // decrease code -01
            013A | 0C01 00FE      : cmpi.b  #-$2, D1
            013E | 6602           : bne     $142
            0140 | 5210           : addq.b  #1, (A0)     // increase code +01
            0142 | 0C01 00FB      : cmpi.b  #-$5, D1
            0146 | 6604           : bne     $14c
            0148 | 0410 0010      : subi.b  #$10, (A0)   // decrease code -10
            014C | 0C01 00F7      : cmpi.b  #-$9, D1
            0150 | 6604           : bne     $156
            0152 | 0610 0010      : addi.b  #$10, (A0)   // increase code +10
            0156 | 0C01 00EF      : cmpi.b  #-$11, D1
            015A | 6608           : bne     $164
            015C | 1010           : move.b  (A0), D0     // play sound
            015E | 4EB9 0000 E460 : jsr     $e460.l
            0164 | 0C01 00DF      : cmpi.b  #-$21, D1
            0168 | 6606           : bne     $170
            016A | 4EB9 0000 DE82 : jsr     $de82.l      // stop sound
            0170 | 60B4           : bra     $126
            -->
        </script>
        <script state="run">
            <output format="----- thunder dragon 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@B0000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@E46C = 3C01            </action>
            <action>maincpu.md@C110 = 610016C2        </action>
            <action>maincpu.mq@0120 = 0000000000000000</action>
            <action>maincpu.mq@0128 = 0000000000000000</action>
            <action>maincpu.mq@0130 = 0000000000000000</action>
            <action>maincpu.mq@0138 = 0000000000000000</action>
            <action>maincpu.mq@0140 = 0000000000000000</action>
            <action>maincpu.mq@0148 = 0000000000000000</action>
            <action>maincpu.mq@0150 = 0000000000000000</action>
            <action>maincpu.mq@0158 = 0000000000000000</action>
            <action>maincpu.mq@0160 = 0000000000000000</action>
            <action>maincpu.mq@0168 = 0000000000000000</action>
            <action>maincpu.mq@0170 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
tdragonb.xml

Code: Select all

<!-- Thunder Dragon (bootleg with Raiden sounds, encrypted) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@B0B6 = 60</action> <!-- bullet -->
            <action>maincpu.mb@B70E = 60</action> <!-- enemy -->
        </script>
        <script state="off">
            <action>maincpu.mb@B0B6 = 66</action>
            <action>maincpu.mb@B70E = 66</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@A093 = 00</action> <!-- main shot -->
            <action>maincpu.mb@A1C9 = 00</action> <!-- weapon 3 -->
            <action>maincpu.mb@A1E5 = 00</action> <!-- weapon 2 -->
            <action>maincpu.mb@A1ED = 00</action> <!-- weapon 1,4 -->
        </script>
        <script state="off">
            <action>maincpu.mb@A093 = 20</action>
            <action>maincpu.mb@A1C9 = 02</action>
            <action>maincpu.mb@A1E5 = 04</action>
            <action>maincpu.mb@A1ED = 20</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x00018000">01 (slow)</item>
            <item value="0x00028000">02       </item>
            <item value="0x00048000">03       </item>
            <item value="0x00068000">04       </item>
            <item value="0x00088000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@9A80 = 4EB81040        </action>
            <action>maincpu.mq@1040 = 203000040C6E00A8</action>
            <action>maincpu.mq@1048 = 002C6420263C0000</action>
            <action>maincpu.mq@1050 = 00004A8167066A02</action>
            <action>maincpu.mq@1058 = 44832203263C0000</action>
            <action>maincpu.mq@1060 = 00004A8067066A02</action>
            <action>maincpu.mq@1068 = 448320034E750000</action>
            <!--
            1040 | 2030 0004      : move.l  ($4,A0,D0.w), D0
            1044 | 0C6E 00A8 002C : cmpi.w  #$a8, ($2c,A6)   // check auto move flag
            104A | 6420           : bcc     $106c
            104C | 263C xxxx xxxx : move.l  #$xxxx, D3       // y position
            1052 | 4A81           : tst.l   D1
            1054 | 6706           : beq     $105c
            1056 | 6A02           : bpl     $105a
            1058 | 4483           : neg.l   D3
            105A | 2203           : move.l  D3, D1
            105C | 263C xxxx xxxx : move.l  #$xxxx, D3       // x position
            1062 | 4A80           : tst.l   D0
            1064 | 6706           : beq     $106c
            1066 | 6A02           : bpl     $106a
            1068 | 4483           : neg.l   D3
            106A | 2003           : move.l  D3, D0
            106C | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@104E = param</action>
            <action>maincpu.md@105E = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@9A80 = 20300004        </action>
            <action>maincpu.mq@1040 = 0000000000000000</action>
            <action>maincpu.mq@1048 = 0000000000000000</action>
            <action>maincpu.mq@1050 = 0000000000000000</action>
            <action>maincpu.mq@1058 = 0000000000000000</action>
            <action>maincpu.mq@1060 = 0000000000000000</action>
            <action>maincpu.mq@1068 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <comment>mainshot, weapon 1 and 2 only</comment>
        <parameter>
            <item value="0x00048000">01 (slow)</item>
            <item value="0x00088000">02       </item>
            <item value="0x000c8000">03       </item>
            <item value="0x00108000">04       </item>
            <item value="0x00148000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@A116 = 4EB81070        </action>
            <action>maincpu.md@A296 = 4EB81070        </action>
            <action>maincpu.md@A30C = 4EB81070        </action>
            <action>maincpu.mq@1070 = 584B297C00000000</action>
            <action>maincpu.mq@1078 = 00204E7500000000</action>
            <!--
            1070 | 584B                : addq.w  #4, A3
            1072 | 297C xxxx xxxx 0020 : move.l  #$xxxx, ($20,A4)
            107A | 4E75                : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@1074 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@9EAE = 295B0020        </action>
            <action>maincpu.md@A02E = 295B0020        </action>
            <action>maincpu.md@A0A4 = 295B0020        </action>
            <action>maincpu.mq@1070 = 0000000000000000</action>
            <action>maincpu.mq@1078 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="max bullets up (test)">
        <comment>mainshot, weapon 1 and 2 only</comment>
        <script state="on">
            <!-- main shot -->
            <action>maincpu.mb@A06C = 79</action>
            <action>maincpu.mb@A0BD = 18</action>
            <action>maincpu.mb@A148 = 00</action>
            <!-- weapon 1 -->
            <action>maincpu.mb@16201 = 04</action> <!-- level 1 -->
            <action>maincpu.mb@1625D = 04</action> <!-- level 2 -->
            <action>maincpu.mb@162B9 = 04</action> <!-- level 3 -->
            <action>maincpu.mb@1636D = 04</action> <!-- level 4 -->
            <action>maincpu.mb@16421 = 04</action> <!-- level 5 -->
            <action>maincpu.mb@164D5 = 04</action> <!-- level 6 -->
            <action>maincpu.mb@16589 = 04</action> <!-- level 7 -->
            <action>maincpu.mb@1663D = 04</action> <!-- level 8 -->
            <!-- weapon 2 -->
            <action>maincpu.mb@16CA9 = 08</action> <!-- level 1 -->
            <action>maincpu.mb@16CD7 = 0A</action> <!-- level 2 -->
            <action>maincpu.mb@16D05 = 0C</action> <!-- level 3 -->
            <action>maincpu.mb@16D33 = 0E</action> <!-- level 4 -->
            <action>maincpu.mb@16D61 = 10</action> <!-- level 5 -->
            <action>maincpu.mb@16D8F = 12</action> <!-- level 6 -->
            <action>maincpu.mb@16DBD = 14</action> <!-- level 7 -->
            <action>maincpu.mb@16DEB = 16</action> <!-- level 8 -->
        </script>
        <script state="off">
            <action>maincpu.mb@0A06C = 69</action>
            <action>maincpu.mb@0A0BD = 03</action>
            <action>maincpu.mb@0A148 = 10</action>
            <action>maincpu.mb@16201 = 02</action>
            <action>maincpu.mb@1625D = 02</action>
            <action>maincpu.mb@162B9 = 02</action>
            <action>maincpu.mb@1636D = 02</action>
            <action>maincpu.mb@16421 = 02</action>
            <action>maincpu.mb@164D5 = 02</action>
            <action>maincpu.mb@16589 = 02</action>
            <action>maincpu.mb@1663D = 02</action>
            <action>maincpu.mb@16CA9 = 04</action>
            <action>maincpu.mb@16CD7 = 05</action>
            <action>maincpu.mb@16D05 = 06</action>
            <action>maincpu.mb@16D33 = 07</action>
            <action>maincpu.mb@16D61 = 08</action>
            <action>maincpu.mb@16D8F = 09</action>
            <action>maincpu.mb@16DBD = 0A</action>
            <action>maincpu.mb@16DEB =  B</action>
        </script>
    </cheat>

    <cheat desc="short hit mark (test)">
        <comment>mainshot, weapon 1 and 2 only</comment>
        <script state="on">
            <action>maincpu.mb@16C57 = 00</action>
            <action>maincpu.mb@16C83 = 00</action>
            <action>maincpu.mb@16FEB = 00</action>
            <action>maincpu.mb@1700B = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@16C57 = 01</action>
            <action>maincpu.mb@16C83 = 01</action>
            <action>maincpu.mb@16FEB = 01</action>
            <action>maincpu.mb@1700B = 01</action>
        </script>
    </cheat>

    <cheat desc="hidden star item finder">
        <script state="on">
            <action>maincpu.md@B9CE = 4EB81080        </action>
            <action>maincpu.mq@1080 = 0C6E00280004660E</action>
            <action>maincpu.mq@1088 = 0C6E02C000106E06</action>
            <action>maincpu.mq@1090 = 3D7C0010003A302E</action>
            <action>maincpu.mq@1098 = 003A4E7500000000</action>
            <!--
            1080 | 0C6E 0028 0004 : cmpi.w  #$28, ($4,A6)
            1086 | 660E           : bne     $1096
            1088 | 0C6E 02C0 0010 : cmpi.w  #$2c0, ($10,A6)
            108E | 6E06           : bgt     $1096
            1090 | 3D7C 0010 003A : move.w  #$10, ($3a,A6)
            1096 | 302E 003A      : move.w  ($3a,A6), D0
            109A | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.md@B9CE = 302E003A        </action>
            <action>maincpu.mq@1080 = 0000000000000000</action>
            <action>maincpu.mq@1080 = 0000000000000000</action>
            <action>maincpu.mq@1090 = 0000000000000000</action>
            <action>maincpu.mq@1090 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="unlock test mode">
        <comment>reset the game (F3) to enter test mode</comment>
        <script state="on">
            <action>maincpu.mb@053D = 46</action>
        </script>
        <script state="off">
            <action>maincpu.mb@053D = 56</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.md@C110 = 4EF81090        </action>
            <action>maincpu.mq@1090 = 41F9000B000043F9</action>
            <action>maincpu.mq@1098 = 000C001E12001029</action>
            <action>maincpu.mq@10A0 = FFE5B20067F60C00</action>
            <action>maincpu.mq@10A8 = 00FD660253100C00</action>
            <action>maincpu.mq@10B0 = 00FE660252100C00</action>
            <action>maincpu.mq@10B8 = 00FB660404100010</action>
            <action>maincpu.mq@10C0 = 0C0000F766040610</action>
            <action>maincpu.mq@10C8 = 00100C0000EF6608</action>
            <action>maincpu.mq@10D0 = 343C800084103282</action>
            <action>maincpu.mq@10D8 = 0C0000DF6606343C</action>
            <action>maincpu.mq@10E0 = 82FF328260B60000</action>
            <!--
            1090 | 41F9 000B 0000 : lea     $b0000.l, A0  // sound code address
            1096 | 43F9 000C 001E : lea     $c001e.l, A1  // sound latch address
            109C | 1200           : move.b  D0, D1
            109E | 1029 FFE5      : move.b  (-$1b,A1), D0 // read input ($c0003)
            10A2 | B200           : cmp.b   D0, D1
            10A4 | 67F6           : beq     $109c
            10A6 | 0C00 00FD      : cmpi.b  #-$3, D0
            10AA | 6602           : bne     $10ae
            10AC | 5310           : subq.b  #1, (A0)      // decrease code -01
            10AE | 0C00 00FE      : cmpi.b  #-$2, D0
            10B2 | 6602           : bne     $10b6
            10B4 | 5210           : addq.b  #1, (A0)      // increase code +01
            10B6 | 0C00 00FB      : cmpi.b  #-$5, D0
            10BA | 6604           : bne     $10c0
            10BC | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            10C0 | 0C00 00F7      : cmpi.b  #-$9, D0
            10C4 | 6604           : bne     $10ca
            10C6 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            10CA | 0C00 00EF      : cmpi.b  #-$11, D0
            10CE | 6608           : bne     $10d8
            10D0 | 343C 8000      : move.w  #$8000, D2    // play sound
            10D4 | 8410           : or.b    (A0), D2
            10D6 | 3282           : move.w  D2, (A1)
            10D8 | 0C00 00DF      : cmpi.b  #-$21, D0
            10DC | 6606           : bne     $10e4
            10DE | 343C 82FF      : move.w  #$82ff, D2    // stop sound
            10E2 | 3282           : move.w  D2, (A1)
            10E4 | 60B6           : bra     $109c
            -->
        </script>
        <script state="run">
            <output format="----- thunder dragon 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@B0000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@C110 = 610016C2        </action>
            <action>maincpu.mq@1090 = 0000000000000000</action>
            <action>maincpu.mq@1098 = 0000000000000000</action>
            <action>maincpu.mq@10A0 = 0000000000000000</action>
            <action>maincpu.mq@10A8 = 0000000000000000</action>
            <action>maincpu.mq@10B0 = 0000000000000000</action>
            <action>maincpu.mq@10B8 = 0000000000000000</action>
            <action>maincpu.mq@10C0 = 0000000000000000</action>
            <action>maincpu.mq@10C8 = 0000000000000000</action>
            <action>maincpu.mq@10D0 = 0000000000000000</action>
            <action>maincpu.mq@10D8 = 0000000000000000</action>
            <action>maincpu.mq@10E0 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
tdragonb3.xml

Code: Select all

<!-- Thunder Dragon (bootleg with Raiden sounds, unencrypted) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@B0B6 = 60</action> <!-- bullet -->
            <action>maincpu.mb@B70E = 60</action> <!-- enemy -->
        </script>
        <script state="off">
            <action>maincpu.mb@B0B6 = 66</action>
            <action>maincpu.mb@B70E = 66</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@A093 = 00</action> <!-- main shot -->
            <action>maincpu.mb@A1C9 = 00</action> <!-- weapon 3 -->
            <action>maincpu.mb@A1E5 = 00</action> <!-- weapon 2 -->
            <action>maincpu.mb@A1ED = 00</action> <!-- weapon 1,4 -->
        </script>
        <script state="off">
            <action>maincpu.mb@A093 = 20</action>
            <action>maincpu.mb@A1C9 = 02</action>
            <action>maincpu.mb@A1E5 = 04</action>
            <action>maincpu.mb@A1ED = 20</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x00018000">01 (slow)</item>
            <item value="0x00028000">02       </item>
            <item value="0x00048000">03       </item>
            <item value="0x00068000">04       </item>
            <item value="0x00088000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@9A80 = 4EB81040        </action>
            <action>maincpu.mq@1040 = 203000040C6E00A8</action>
            <action>maincpu.mq@1048 = 002C6420263C0000</action>
            <action>maincpu.mq@1050 = 00004A8167066A02</action>
            <action>maincpu.mq@1058 = 44832203263C0000</action>
            <action>maincpu.mq@1060 = 00004A8067066A02</action>
            <action>maincpu.mq@1068 = 448320034E750000</action>
            <!--
            1040 | 2030 0004      : move.l  ($4,A0,D0.w), D0
            1044 | 0C6E 00A8 002C : cmpi.w  #$a8, ($2c,A6)   // check auto move flag
            104A | 6420           : bcc     $106c
            104C | 263C xxxx xxxx : move.l  #$xxxx, D3       // y position
            1052 | 4A81           : tst.l   D1
            1054 | 6706           : beq     $105c
            1056 | 6A02           : bpl     $105a
            1058 | 4483           : neg.l   D3
            105A | 2203           : move.l  D3, D1
            105C | 263C xxxx xxxx : move.l  #$xxxx, D3       // x position
            1062 | 4A80           : tst.l   D0
            1064 | 6706           : beq     $106c
            1066 | 6A02           : bpl     $106a
            1068 | 4483           : neg.l   D3
            106A | 2003           : move.l  D3, D0
            106C | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@104E = param</action>
            <action>maincpu.md@105E = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@9A80 = 20300004        </action>
            <action>maincpu.mq@1040 = 0000000000000000</action>
            <action>maincpu.mq@1048 = 0000000000000000</action>
            <action>maincpu.mq@1050 = 0000000000000000</action>
            <action>maincpu.mq@1058 = 0000000000000000</action>
            <action>maincpu.mq@1060 = 0000000000000000</action>
            <action>maincpu.mq@1068 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <comment>mainshot, weapon 1 and 2 only</comment>
        <parameter>
            <item value="0x00048000">01 (slow)</item>
            <item value="0x00088000">02       </item>
            <item value="0x000c8000">03       </item>
            <item value="0x00108000">04       </item>
            <item value="0x00148000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@A116 = 4EB81070        </action>
            <action>maincpu.md@A296 = 4EB81070        </action>
            <action>maincpu.md@A30C = 4EB81070        </action>
            <action>maincpu.mq@1070 = 584B297C00000000</action>
            <action>maincpu.mq@1078 = 00204E7500000000</action>
            <!--
            1070 | 584B                : addq.w  #4, A3
            1072 | 297C xxxx xxxx 0020 : move.l  #$xxxx, ($20,A4)
            107A | 4E75                : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@1074 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@9EAE = 295B0020        </action>
            <action>maincpu.md@A02E = 295B0020        </action>
            <action>maincpu.md@A0A4 = 295B0020        </action>
            <action>maincpu.mq@1070 = 0000000000000000</action>
            <action>maincpu.mq@1078 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="max bullets up (test)">
        <comment>mainshot, weapon 1 and 2 only</comment>
        <script state="on">
            <!-- main shot -->
            <action>maincpu.mb@A06C = 79</action>
            <action>maincpu.mb@A0BD = 18</action>
            <action>maincpu.mb@A148 = 00</action>
            <!-- weapon 1 -->
            <action>maincpu.mb@16201 = 04</action> <!-- level 1 -->
            <action>maincpu.mb@1625D = 04</action> <!-- level 2 -->
            <action>maincpu.mb@162B9 = 04</action> <!-- level 3 -->
            <action>maincpu.mb@1636D = 04</action> <!-- level 4 -->
            <action>maincpu.mb@16421 = 04</action> <!-- level 5 -->
            <action>maincpu.mb@164D5 = 04</action> <!-- level 6 -->
            <action>maincpu.mb@16589 = 04</action> <!-- level 7 -->
            <action>maincpu.mb@1663D = 04</action> <!-- level 8 -->
            <!-- weapon 2 -->
            <action>maincpu.mb@16CA9 = 08</action> <!-- level 1 -->
            <action>maincpu.mb@16CD7 = 0A</action> <!-- level 2 -->
            <action>maincpu.mb@16D05 = 0C</action> <!-- level 3 -->
            <action>maincpu.mb@16D33 = 0E</action> <!-- level 4 -->
            <action>maincpu.mb@16D61 = 10</action> <!-- level 5 -->
            <action>maincpu.mb@16D8F = 12</action> <!-- level 6 -->
            <action>maincpu.mb@16DBD = 14</action> <!-- level 7 -->
            <action>maincpu.mb@16DEB = 16</action> <!-- level 8 -->
        </script>
        <script state="off">
            <action>maincpu.mb@0A06C = 69</action>
            <action>maincpu.mb@0A0BD = 03</action>
            <action>maincpu.mb@0A148 = 10</action>
            <action>maincpu.mb@16201 = 02</action>
            <action>maincpu.mb@1625D = 02</action>
            <action>maincpu.mb@162B9 = 02</action>
            <action>maincpu.mb@1636D = 02</action>
            <action>maincpu.mb@16421 = 02</action>
            <action>maincpu.mb@164D5 = 02</action>
            <action>maincpu.mb@16589 = 02</action>
            <action>maincpu.mb@1663D = 02</action>
            <action>maincpu.mb@16CA9 = 04</action>
            <action>maincpu.mb@16CD7 = 05</action>
            <action>maincpu.mb@16D05 = 06</action>
            <action>maincpu.mb@16D33 = 07</action>
            <action>maincpu.mb@16D61 = 08</action>
            <action>maincpu.mb@16D8F = 09</action>
            <action>maincpu.mb@16DBD = 0A</action>
            <action>maincpu.mb@16DEB =  B</action>
        </script>
    </cheat>

    <cheat desc="short hit mark (test)">
        <comment>mainshot, weapon 1 and 2 only</comment>
        <script state="on">
            <action>maincpu.mb@16C57 = 00</action>
            <action>maincpu.mb@16C83 = 00</action>
            <action>maincpu.mb@16FEB = 00</action>
            <action>maincpu.mb@1700B = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@16C57 = 01</action>
            <action>maincpu.mb@16C83 = 01</action>
            <action>maincpu.mb@16FEB = 01</action>
            <action>maincpu.mb@1700B = 01</action>
        </script>
    </cheat>

    <cheat desc="hidden star item finder">
        <script state="on">
            <action>maincpu.md@B9CE = 4EB81080        </action>
            <action>maincpu.mq@1080 = 0C6E00280004660E</action>
            <action>maincpu.mq@1088 = 0C6E02C000106E06</action>
            <action>maincpu.mq@1090 = 3D7C0010003A302E</action>
            <action>maincpu.mq@1098 = 003A4E7500000000</action>
            <!--
            1080 | 0C6E 0028 0004 : cmpi.w  #$28, ($4,A6)
            1086 | 660E           : bne     $1096
            1088 | 0C6E 02C0 0010 : cmpi.w  #$2c0, ($10,A6)
            108E | 6E06           : bgt     $1096
            1090 | 3D7C 0010 003A : move.w  #$10, ($3a,A6)
            1096 | 302E 003A      : move.w  ($3a,A6), D0
            109A | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.md@B9CE = 302E003A        </action>
            <action>maincpu.mq@1080 = 0000000000000000</action>
            <action>maincpu.mq@1080 = 0000000000000000</action>
            <action>maincpu.mq@1090 = 0000000000000000</action>
            <action>maincpu.mq@1090 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="unlock test mode">
        <comment>reset the game (F3) to enter test mode</comment>
        <script state="on">
            <action>maincpu.mw@053A = 6046</action>
        </script>
        <script state="off">
            <action>maincpu.mw@053A = 6600</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.md@C110 = 4EF81090        </action>
            <action>maincpu.mq@1090 = 41F9000B000043F9</action>
            <action>maincpu.mq@1098 = 000C001E12001029</action>
            <action>maincpu.mq@10A0 = FFE5B20067F60C00</action>
            <action>maincpu.mq@10A8 = 00FD660253100C00</action>
            <action>maincpu.mq@10B0 = 00FE660252100C00</action>
            <action>maincpu.mq@10B8 = 00FB660404100010</action>
            <action>maincpu.mq@10C0 = 0C0000F766040610</action>
            <action>maincpu.mq@10C8 = 00100C0000EF6608</action>
            <action>maincpu.mq@10D0 = 343C800084103282</action>
            <action>maincpu.mq@10D8 = 0C0000DF6606343C</action>
            <action>maincpu.mq@10E0 = 82FF328260B60000</action>
            <!--
            1090 | 41F9 000B 0000 : lea     $b0000.l, A0  // sound code address
            1096 | 43F9 000C 001E : lea     $c001e.l, A1  // sound latch address
            109C | 1200           : move.b  D0, D1
            109E | 1029 FFE5      : move.b  (-$1b,A1), D0 // read input ($c0003)
            10A2 | B200           : cmp.b   D0, D1
            10A4 | 67F6           : beq     $109c
            10A6 | 0C00 00FD      : cmpi.b  #-$3, D0
            10AA | 6602           : bne     $10ae
            10AC | 5310           : subq.b  #1, (A0)      // decrease code -01
            10AE | 0C00 00FE      : cmpi.b  #-$2, D0
            10B2 | 6602           : bne     $10b6
            10B4 | 5210           : addq.b  #1, (A0)      // increase code +01
            10B6 | 0C00 00FB      : cmpi.b  #-$5, D0
            10BA | 6604           : bne     $10c0
            10BC | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            10C0 | 0C00 00F7      : cmpi.b  #-$9, D0
            10C4 | 6604           : bne     $10ca
            10C6 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            10CA | 0C00 00EF      : cmpi.b  #-$11, D0
            10CE | 6608           : bne     $10d8
            10D0 | 343C 8000      : move.w  #$8000, D2    // play sound
            10D4 | 8410           : or.b    (A0), D2
            10D6 | 3282           : move.w  D2, (A1)
            10D8 | 0C00 00DF      : cmpi.b  #-$21, D0
            10DC | 6606           : bne     $10e4
            10DE | 343C 82FF      : move.w  #$82ff, D2    // stop sound
            10E2 | 3282           : move.w  D2, (A1)
            10E4 | 60B6           : bra     $109c
            -->
        </script>
        <script state="run">
            <output format="----- thunder dragon 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@B0000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@C110 = 610016C2        </action>
            <action>maincpu.mq@1090 = 0000000000000000</action>
            <action>maincpu.mq@1098 = 0000000000000000</action>
            <action>maincpu.mq@10A0 = 0000000000000000</action>
            <action>maincpu.mq@10A8 = 0000000000000000</action>
            <action>maincpu.mq@10B0 = 0000000000000000</action>
            <action>maincpu.mq@10B8 = 0000000000000000</action>
            <action>maincpu.mq@10C0 = 0000000000000000</action>
            <action>maincpu.mq@10C8 = 0000000000000000</action>
            <action>maincpu.mq@10D0 = 0000000000000000</action>
            <action>maincpu.mq@10D8 = 0000000000000000</action>
            <action>maincpu.mq@10E0 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
Last edited by jman on Fri Feb 02, 2024 9:51 am, edited 1 time in total.
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

[tdragon]+ Thunder Dragon

Post by jman »

tdragonb2.xml

Code: Select all

<!-- Thunder Dragon (bootleg with reduced sound system) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@B0B6 = 60</action> <!-- bullet -->
            <action>maincpu.mb@B70E = 60</action> <!-- enemy -->
        </script>
        <script state="off">
            <action>maincpu.mb@B0B6 = 66</action>
            <action>maincpu.mb@B70E = 66</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@A093 = 00</action> <!-- main shot -->
            <action>maincpu.mb@A1C9 = 00</action> <!-- weapon 3 -->
            <action>maincpu.mb@A1E5 = 00</action> <!-- weapon 2 -->
            <action>maincpu.mb@A1ED = 00</action> <!-- weapon 1,4 -->
        </script>
        <script state="off">
            <action>maincpu.mb@A093 = 20</action>
            <action>maincpu.mb@A1C9 = 02</action>
            <action>maincpu.mb@A1E5 = 04</action>
            <action>maincpu.mb@A1ED = 20</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x00018000">01 (slow)</item>
            <item value="0x00028000">02       </item>
            <item value="0x00048000">03       </item>
            <item value="0x00068000">04       </item>
            <item value="0x00088000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@9A80 = 4EB81040        </action>
            <action>maincpu.mq@1040 = 203000040C6E00A8</action>
            <action>maincpu.mq@1048 = 002C6420263C0000</action>
            <action>maincpu.mq@1050 = 00004A8167066A02</action>
            <action>maincpu.mq@1058 = 44832203263C0000</action>
            <action>maincpu.mq@1060 = 00004A8067066A02</action>
            <action>maincpu.mq@1068 = 448320034E750000</action>
            <!--
            1040 | 2030 0004      : move.l  ($4,A0,D0.w), D0
            1044 | 0C6E 00A8 002C : cmpi.w  #$a8, ($2c,A6)   // check auto move flag
            104A | 6420           : bcc     $106c
            104C | 263C xxxx xxxx : move.l  #$xxxx, D3       // y position
            1052 | 4A81           : tst.l   D1
            1054 | 6706           : beq     $105c
            1056 | 6A02           : bpl     $105a
            1058 | 4483           : neg.l   D3
            105A | 2203           : move.l  D3, D1
            105C | 263C xxxx xxxx : move.l  #$xxxx, D3       // x position
            1062 | 4A80           : tst.l   D0
            1064 | 6706           : beq     $106c
            1066 | 6A02           : bpl     $106a
            1068 | 4483           : neg.l   D3
            106A | 2003           : move.l  D3, D0
            106C | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@104E = param</action>
            <action>maincpu.md@105E = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@9A80 = 20300004        </action>
            <action>maincpu.mq@1040 = 0000000000000000</action>
            <action>maincpu.mq@1048 = 0000000000000000</action>
            <action>maincpu.mq@1050 = 0000000000000000</action>
            <action>maincpu.mq@1058 = 0000000000000000</action>
            <action>maincpu.mq@1060 = 0000000000000000</action>
            <action>maincpu.mq@1068 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <comment>mainshot, weapon 1 and 2 only</comment>
        <parameter>
            <item value="0x00048000">01 (slow)</item>
            <item value="0x00088000">02       </item>
            <item value="0x000c8000">03       </item>
            <item value="0x00108000">04       </item>
            <item value="0x00148000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@A116 = 4EB81070        </action>
            <action>maincpu.md@A296 = 4EB81070        </action>
            <action>maincpu.md@A30C = 4EB81070        </action>
            <action>maincpu.mq@1070 = 584B297C00000000</action>
            <action>maincpu.mq@1078 = 00204E7500000000</action>
            <!--
            1070 | 584B                : addq.w  #4, A3
            1072 | 297C xxxx xxxx 0020 : move.l  #$xxxx, ($20,A4)
            107A | 4E75                : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@1074 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@9EAE = 295B0020        </action>
            <action>maincpu.md@A02E = 295B0020        </action>
            <action>maincpu.md@A0A4 = 295B0020        </action>
            <action>maincpu.mq@1070 = 0000000000000000</action>
            <action>maincpu.mq@1078 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="max bullets up (test)">
        <comment>mainshot, weapon 1 and 2 only</comment>
        <script state="on">
            <!-- main shot -->
            <action>maincpu.mb@A06C = 79</action>
            <action>maincpu.mb@A0BD = 18</action>
            <action>maincpu.mb@A148 = 00</action>
            <!-- weapon 1 -->
            <action>maincpu.mb@16201 = 04</action> <!-- level 1 -->
            <action>maincpu.mb@1625D = 04</action> <!-- level 2 -->
            <action>maincpu.mb@162B9 = 04</action> <!-- level 3 -->
            <action>maincpu.mb@1636D = 04</action> <!-- level 4 -->
            <action>maincpu.mb@16421 = 04</action> <!-- level 5 -->
            <action>maincpu.mb@164D5 = 04</action> <!-- level 6 -->
            <action>maincpu.mb@16589 = 04</action> <!-- level 7 -->
            <action>maincpu.mb@1663D = 04</action> <!-- level 8 -->
            <!-- weapon 2 -->
            <action>maincpu.mb@16CA9 = 08</action> <!-- level 1 -->
            <action>maincpu.mb@16CD7 = 0A</action> <!-- level 2 -->
            <action>maincpu.mb@16D05 = 0C</action> <!-- level 3 -->
            <action>maincpu.mb@16D33 = 0E</action> <!-- level 4 -->
            <action>maincpu.mb@16D61 = 10</action> <!-- level 5 -->
            <action>maincpu.mb@16D8F = 12</action> <!-- level 6 -->
            <action>maincpu.mb@16DBD = 14</action> <!-- level 7 -->
            <action>maincpu.mb@16DEB = 16</action> <!-- level 8 -->
        </script>
        <script state="off">
            <action>maincpu.mb@0A06C = 69</action>
            <action>maincpu.mb@0A0BD = 03</action>
            <action>maincpu.mb@0A148 = 10</action>
            <action>maincpu.mb@16201 = 02</action>
            <action>maincpu.mb@1625D = 02</action>
            <action>maincpu.mb@162B9 = 02</action>
            <action>maincpu.mb@1636D = 02</action>
            <action>maincpu.mb@16421 = 02</action>
            <action>maincpu.mb@164D5 = 02</action>
            <action>maincpu.mb@16589 = 02</action>
            <action>maincpu.mb@1663D = 02</action>
            <action>maincpu.mb@16CA9 = 04</action>
            <action>maincpu.mb@16CD7 = 05</action>
            <action>maincpu.mb@16D05 = 06</action>
            <action>maincpu.mb@16D33 = 07</action>
            <action>maincpu.mb@16D61 = 08</action>
            <action>maincpu.mb@16D8F = 09</action>
            <action>maincpu.mb@16DBD = 0A</action>
            <action>maincpu.mb@16DEB =  B</action>
        </script>
    </cheat>

    <cheat desc="short hit mark (test)">
        <comment>mainshot, weapon 1 and 2 only</comment>
        <script state="on">
            <action>maincpu.mb@16C57 = 00</action>
            <action>maincpu.mb@16C83 = 00</action>
            <action>maincpu.mb@16FEB = 00</action>
            <action>maincpu.mb@1700B = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@16C57 = 01</action>
            <action>maincpu.mb@16C83 = 01</action>
            <action>maincpu.mb@16FEB = 01</action>
            <action>maincpu.mb@1700B = 01</action>
        </script>
    </cheat>

    <cheat desc="hidden star item finder">
        <script state="on">
            <action>maincpu.md@B9CE = 4EB81080        </action>
            <action>maincpu.mq@1080 = 0C6E00280004660E</action>
            <action>maincpu.mq@1088 = 0C6E02C000106E06</action>
            <action>maincpu.mq@1090 = 3D7C0010003A302E</action>
            <action>maincpu.mq@1098 = 003A4E7500000000</action>
            <!--
            1080 | 0C6E 0028 0004 : cmpi.w  #$28, ($4,A6)
            1086 | 660E           : bne     $1096
            1088 | 0C6E 02C0 0010 : cmpi.w  #$2c0, ($10,A6)
            108E | 6E06           : bgt     $1096
            1090 | 3D7C 0010 003A : move.w  #$10, ($3a,A6)
            1096 | 302E 003A      : move.w  ($3a,A6), D0
            109A | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.md@B9CE = 302E003A        </action>
            <action>maincpu.mq@1080 = 0000000000000000</action>
            <action>maincpu.mq@1080 = 0000000000000000</action>
            <action>maincpu.mq@1090 = 0000000000000000</action>
            <action>maincpu.mq@1090 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="unlock test mode">
        <comment>reset the game (F3) to enter test mode</comment>
        <script state="on">
            <action>maincpu.mw@053A = 6046</action>
        </script>
        <script state="off">
            <action>maincpu.mw@053A = 6600</action>
        </script>
    </cheat>

    <cheat desc="sound test mode (test)">
        <!-- no sound response when you try to play or stop -->
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.md@C110 = 4EF81090        </action>
            <action>maincpu.mq@1090 = 41F9000B000043F9</action>
            <action>maincpu.mq@1098 = 000C001F12001029</action>
            <action>maincpu.mq@10A0 = FFE4B20067F60C00</action>
            <action>maincpu.mq@10A8 = 00FD660253100C00</action>
            <action>maincpu.mq@10B0 = 00FE660252100C00</action>
            <action>maincpu.mq@10B8 = 00FB660404100010</action>
            <action>maincpu.mq@10C0 = 0C0000F766040610</action>
            <action>maincpu.mq@10C8 = 00100C0000EF6602</action>
            <action>maincpu.mq@10D0 = 12900C0000DF6606</action>
            <action>maincpu.mq@10D8 = 143C0000128260BC</action>
            <!--
            1090 | 41F9 000B 0000 : lea     $b0000.l, A0  // sound code address
            1096 | 43F9 000C 001F : lea     $c001f.l, A1  // sound latch address
            109C | 1200           : move.b  D0, D1
            109E | 1029 FFE4      : move.b  (-$1c,A1), D0 // read input ($c0003)
            10A2 | B200           : cmp.b   D0, D1
            10A4 | 67F6           : beq     $109c
            10A6 | 0C00 00FD      : cmpi.b  #-$3, D0
            10AA | 6602           : bne     $10ae
            10AC | 5310           : subq.b  #1, (A0)      // decrease code -01
            10AE | 0C00 00FE      : cmpi.b  #-$2, D0
            10B2 | 6602           : bne     $10b6
            10B4 | 5210           : addq.b  #1, (A0)      // increase code +01
            10B6 | 0C00 00FB      : cmpi.b  #-$5, D0
            10BA | 6604           : bne     $10c0
            10BC | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            10C0 | 0C00 00F7      : cmpi.b  #-$9, D0
            10C4 | 6604           : bne     $10ca
            10C6 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            10CA | 0C00 00EF      : cmpi.b  #-$11, D0
            10CE | 6602           : bne     $10d2
            10D0 | 1290           : move.b  (A0), (A1)    // play sound
            10D2 | 0C00 00DF      : cmpi.b  #-$21, D0
            10D6 | 6606           : bne     $10de
            10D8 | 143C 0000      : move.b  #$0, D2       // stop sound
            10DC | 1282           : move.b  D2, (A1)
            10DE | 60BC           : bra     $109c
            -->
        </script>
        <script state="run">
            <output format="----- thunder dragon 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@B0000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@C110 = 610016C2        </action>
            <action>maincpu.mq@1090 = 0000000000000000</action>
            <action>maincpu.mq@1098 = 0000000000000000</action>
            <action>maincpu.mq@10A0 = 0000000000000000</action>
            <action>maincpu.mq@10A8 = 0000000000000000</action>
            <action>maincpu.mq@10B0 = 0000000000000000</action>
            <action>maincpu.mq@10B8 = 0000000000000000</action>
            <action>maincpu.mq@10C0 = 0000000000000000</action>
            <action>maincpu.mq@10C8 = 0000000000000000</action>
            <action>maincpu.mq@10D0 = 0000000000000000</action>
            <action>maincpu.mq@10D8 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
tdragonb2 doesn't work in 0.262. You can't control player character after the game start so that I can't verify the codes.
Also you can enter "sound test mode" after set this code then reset the game and choose sound code but sound is no response.
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

[tdragon]+ Thunder Dragon

Post by jman »

tdragon.xml

Code: Select all

<!-- Thunder Dragon (8th Jan. 1992, unprotected) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@AE40 = 60</action> <!-- bullet -->
            <action>maincpu.mb@B498 = 60</action> <!-- enemy -->
        </script>
        <script state="off">
            <action>maincpu.mb@AE40 = 66</action>
            <action>maincpu.mb@B498 = 66</action>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <script state="on">
            <action>maincpu.mb@9E2B = 00</action> <!-- main shot -->
            <action>maincpu.mb@9F61 = 00</action> <!-- weapon 3 -->
            <action>maincpu.mb@9F7D = 00</action> <!-- weapon 2 -->
            <action>maincpu.mb@9F85 = 00</action> <!-- weapon 1,4 -->
        </script>
        <script state="off">
            <action>maincpu.mb@9E2B = 20</action>
            <action>maincpu.mb@9F61 = 02</action>
            <action>maincpu.mb@9F7D = 04</action>
            <action>maincpu.mb@9F85 = 20</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x00018000">01 (slow)</item>
            <item value="0x00028000">02       </item>
            <item value="0x00048000">03       </item>
            <item value="0x00068000">04       </item>
            <item value="0x00088000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@9816 = 4EB800C0        </action>
            <action>maincpu.mq@00C0 = 203000040C6E00A8</action>
            <action>maincpu.mq@00C8 = 002C6420263C0000</action>
            <action>maincpu.mq@00D0 = 00004A8167066A02</action>
            <action>maincpu.mq@00D8 = 44832203263C0000</action>
            <action>maincpu.mq@00E0 = 00004A8067066A02</action>
            <action>maincpu.mq@00E8 = 448320034E750000</action>
            <!--
            00C0 | 2030 0004      : move.l  ($4,A0,D0.w), D0
            00C4 | 0C6E 00A8 002C : cmpi.w  #$a8, ($2c,A6)   // check auto move flag
            00CA | 6420           : bcc     $ec
            00CC | 263C xxxx xxxx : move.l  #$xxxx, D3       // y position
            00D2 | 4A81           : tst.l   D1
            00D4 | 6706           : beq     $dc
            00D6 | 6A02           : bpl     $da
            00D8 | 4483           : neg.l   D3
            00DA | 2203           : move.l  D3, D1
            00DC | 263C xxxx xxxx : move.l  #$xxxx, D3       // x position
            00E2 | 4A80           : tst.l   D0
            00E4 | 6706           : beq     $ec
            00E6 | 6A02           : bpl     $ea
            00E8 | 4483           : neg.l   D3
            00EA | 2003           : move.l  D3, D0
            00EC | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@00CE = param</action>
            <action>maincpu.md@00DE = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@9816 = 20300004        </action>
            <action>maincpu.mq@00C0 = 0000000000000000</action>
            <action>maincpu.mq@00C8 = 0000000000000000</action>
            <action>maincpu.mq@00D0 = 0000000000000000</action>
            <action>maincpu.mq@00D8 = 0000000000000000</action>
            <action>maincpu.mq@00E0 = 0000000000000000</action>
            <action>maincpu.mq@00E8 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <comment>mainshot, weapon 1 and 2 only</comment>
        <parameter>
            <item value="0x00048000">01 (slow)</item>
            <item value="0x00088000">02       </item>
            <item value="0x000c8000">03       </item>
            <item value="0x00108000">04       </item>
            <item value="0x00148000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@9EAE = 4EB800F0        </action>
            <action>maincpu.md@A02E = 4EB800F0        </action>
            <action>maincpu.md@A0A4 = 4EB800F0        </action>
            <action>maincpu.mq@00F0 = 584B297C00000000</action>
            <action>maincpu.mq@00F8 = 00204E7500000000</action>
            <!--
            00F0 | 584B                : addq.w  #4, A3
            00F2 | 297C xxxx xxxx 0020 : move.l  #$xxxx, ($20,A4)
            00FA | 4E75                : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@00F4 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@9EAE = 295B0020        </action>
            <action>maincpu.md@A02E = 295B0020        </action>
            <action>maincpu.md@A0A4 = 295B0020        </action>
            <action>maincpu.mq@00F0 = 0000000000000000</action>
            <action>maincpu.mq@00F8 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="max bullets up (test)">
        <comment>mainshot, weapon 1 and 2 only</comment>
        <script state="on">
            <!-- main shot -->
            <action>maincpu.mb@9E04 = 79</action>
            <action>maincpu.mb@9E55 = 18</action>
            <action>maincpu.mb@9EE0 = 00</action>
            <!-- weapon 1 -->
            <action>maincpu.mb@16201 = 04</action> <!-- level 1 -->
            <action>maincpu.mb@1625D = 04</action> <!-- level 2 -->
            <action>maincpu.mb@162B9 = 04</action> <!-- level 3 -->
            <action>maincpu.mb@1636D = 04</action> <!-- level 4 -->
            <action>maincpu.mb@16421 = 04</action> <!-- level 5 -->
            <action>maincpu.mb@164D5 = 04</action> <!-- level 6 -->
            <action>maincpu.mb@16589 = 04</action> <!-- level 7 -->
            <action>maincpu.mb@1663D = 04</action> <!-- level 8 -->
            <!-- weapon 2 -->
            <action>maincpu.mb@16CA9 = 08</action> <!-- level 1 -->
            <action>maincpu.mb@16CD7 = 0A</action> <!-- level 2 -->
            <action>maincpu.mb@16D05 = 0C</action> <!-- level 3 -->
            <action>maincpu.mb@16D33 = 0E</action> <!-- level 4 -->
            <action>maincpu.mb@16D61 = 10</action> <!-- level 5 -->
            <action>maincpu.mb@16D8F = 12</action> <!-- level 6 -->
            <action>maincpu.mb@16DBD = 14</action> <!-- level 7 -->
            <action>maincpu.mb@16DEB = 16</action> <!-- level 8 -->
        </script>
        <script state="off">
            <action>maincpu.mb@09E04 = 69</action>
            <action>maincpu.mb@09E55 = 03</action>
            <action>maincpu.mb@09EE0 = 10</action>
            <action>maincpu.mb@16201 = 02</action>
            <action>maincpu.mb@1625D = 02</action>
            <action>maincpu.mb@162B9 = 02</action>
            <action>maincpu.mb@1636D = 02</action>
            <action>maincpu.mb@16421 = 02</action>
            <action>maincpu.mb@164D5 = 02</action>
            <action>maincpu.mb@16589 = 02</action>
            <action>maincpu.mb@1663D = 02</action>
            <action>maincpu.mb@16CA9 = 04</action>
            <action>maincpu.mb@16CD7 = 05</action>
            <action>maincpu.mb@16D05 = 06</action>
            <action>maincpu.mb@16D33 = 07</action>
            <action>maincpu.mb@16D61 = 08</action>
            <action>maincpu.mb@16D8F = 09</action>
            <action>maincpu.mb@16DBD = 0A</action>
            <action>maincpu.mb@16DEB =  B</action>
        </script>
    </cheat>

    <cheat desc="short hit mark (test)">
        <comment>mainshot, weapon 1 and 2 only</comment>
        <script state="on">
            <action>maincpu.mb@16C57 = 00</action>
            <action>maincpu.mb@16C83 = 00</action>
            <action>maincpu.mb@16FEB = 00</action>
            <action>maincpu.mb@1700B = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@16C57 = 01</action>
            <action>maincpu.mb@16C83 = 01</action>
            <action>maincpu.mb@16FEB = 01</action>
            <action>maincpu.mb@1700B = 01</action>
        </script>
    </cheat>

    <cheat desc="hidden star item finder">
        <script state="on">
            <action>maincpu.md@B758 = 4EB80100        </action>
            <action>maincpu.mq@0100 = 0C6E00280004660E</action>
            <action>maincpu.mq@0108 = 0C6E02C000106E06</action>
            <action>maincpu.mq@0110 = 3D7C0010003A302E</action>
            <action>maincpu.mq@0118 = 003A4E7500000000</action>
            <!--
            0100 | 0C6E 0028 0004 : cmpi.w  #$28, ($4,A6)
            0106 | 660E           : bne     $116
            0108 | 0C6E 02C0 0010 : cmpi.w  #$2c0, ($10,A6)
            010E | 6E06           : bgt     $116
            0110 | 3D7C 0010 003A : move.w  #$10, ($3a,A6)
            0116 | 302E 003A      : move.w  ($3a,A6), D0
            011A | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.md@B758 = 302E003A        </action>
            <action>maincpu.mq@0100 = 0000000000000000</action>
            <action>maincpu.mq@0108 = 0000000000000000</action>
            <action>maincpu.mq@0110 = 0000000000000000</action>
            <action>maincpu.mq@0118 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="auto damage">
        <script state="on">
            <action>maincpu.md@0B758 = 4EB80180        </action>
            <action>maincpu.md@0B8F2 = 4EB80180        </action>
            <action>maincpu.mq@00180 = 4EF9000106500000</action>
            <action>maincpu.mq@10650 = 0C6E0004000E643A</action>
            <action>maincpu.mq@10658 = 302E003A6632202E</action>
            <action>maincpu.mq@10660 = 00100C8002F00000</action>
            <action>maincpu.mq@10668 = 64280C8002000000</action>
            <action>maincpu.mq@10670 = 6520202E00140C80</action>
            <action>maincpu.mq@10678 = 0200000065140C80</action>
            <action>maincpu.mq@10680 = 02E00000640C08D6</action>
            <action>maincpu.mq@10688 = 000208D600037001</action>
            <action>maincpu.mq@10690 = 4E7570004E750000</action>
            <!--
            10650 | 0C6E 0004 000E : cmpi.w  #$4, ($e,A6)  // check enemy or item
            10656 | 643A           : bcc     $10692
            10658 | 302E 003A      : move.w  ($3a,A6), D0  // check hit flag
            1065C | 6632           : bne     $10690
            1065E | 202E 0010      : move.l  ($10,A6), D0  // check y position
            10662 | 0C80 02F0 0000 : cmpi.l  #$2f00000, D0
            10668 | 6428           : bcc     $10692
            1066A | 0C80 0200 0000 : cmpi.l  #$2000000, D0
            10670 | 6520           : bcs     $10692
            10672 | 202E 0014      : move.l  ($14,A6), D0  // check x position
            10676 | 0C80 0200 0000 : cmpi.l  #$2000000, D0
            1067C | 6514           : bcs     $10692
            1067E | 0C80 02E0 0000 : cmpi.l  #$2e00000, D0
            10684 | 640C           : bcc     $10692
            10686 | 08D6 0002      : bset    #$2, (A6)     // set parameters
            1068A | 08D6 0003      : bset    #$3, (A6)
            1068E | 7001           : moveq   #$1, D0
            10690 | 4E75           : rts
            10692 | 7000           : moveq   #$0, D0
            10694 | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.md@0B758 = 302E003A        </action>
            <action>maincpu.md@0B8F2 = 302E003A        </action>
            <action>maincpu.mq@00180 = 0000000000000000</action>
            <action>maincpu.mq@10650 = 4E764E764E764E76</action>
            <action>maincpu.mq@10658 = 4E764E764E764E76</action>
            <action>maincpu.mq@10660 = 4E764E764E764E76</action>
            <action>maincpu.mq@10668 = 4E764E764E764E76</action>
            <action>maincpu.mq@10670 = 4E764E764E764E76</action>
            <action>maincpu.mq@10678 = 4E764E764E764E76</action>
            <action>maincpu.mq@10680 = 4E764E764E764E76</action>
            <action>maincpu.mq@10688 = 4E764E764E764E76</action>
            <action>maincpu.mq@10690 = 4E764E764E764E76</action>
        </script>
    </cheat>

    <cheat desc="unlock test mode">
        <comment>reset the game (F3) to enter test mode</comment>
        <script state="on">
            <action>maincpu.mw@053A = 6046</action>
        </script>
        <script state="off">
            <action>maincpu.mw@053A = 6600</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mw@E1D6 = 4E75            </action> <!-- sound routine stopper -->
            <action>maincpu.md@BE92 = 4EF80120        </action>
            <action>maincpu.mq@0120 = 41F9000B00001401</action>
            <action>maincpu.mq@0128 = 1239000C0003B401</action>
            <action>maincpu.mq@0130 = 67F40C0100FD6602</action>
            <action>maincpu.mq@0138 = 53100C0100FE6602</action>
            <action>maincpu.mq@0140 = 52100C0100FB6604</action>
            <action>maincpu.mq@0148 = 041000100C0100F7</action>
            <action>maincpu.mq@0150 = 6604061000100C01</action>
            <action>maincpu.mq@0158 = 00EF660810104EB9</action>
            <action>maincpu.mq@0160 = 0000E1CA0C0100DF</action>
            <action>maincpu.mq@0168 = 66064EB90000DBF4</action>
            <action>maincpu.mq@0170 = 60B4000000000000</action>
            <!--
            0120 | 41F9 000B 0000 : lea     $b0000.l, A0 // sound code address
            0126 | 1401           : move.b  D1, D2
            0128 | 1239 000C 0003 : move.b  $c0003.l, D1 // read input
            012E | B401           : cmp.b   D1, D2
            0130 | 67F4           : beq     $126
            0132 | 0C01 00FD      : cmpi.b  #-$3, D1
            0136 | 6602           : bne     $13a
            0138 | 5310           : subq.b  #1, (A0)     // decrease code -01
            013A | 0C01 00FE      : cmpi.b  #-$2, D1
            013E | 6602           : bne     $142
            0140 | 5210           : addq.b  #1, (A0)     // increase code +01
            0142 | 0C01 00FB      : cmpi.b  #-$5, D1
            0146 | 6604           : bne     $14c
            0148 | 0410 0010      : subi.b  #$10, (A0)   // decrease code -10
            014C | 0C01 00F7      : cmpi.b  #-$9, D1
            0150 | 6604           : bne     $156
            0152 | 0610 0010      : addi.b  #$10, (A0)   // increase code +10
            0156 | 0C01 00EF      : cmpi.b  #-$11, D1
            015A | 6608           : bne     $164
            015C | 1010           : move.b  (A0), D0     // play sound
            015E | 4EB9 0000 E1CA : jsr     $e1ca.l
            0164 | 0C01 00DF      : cmpi.b  #-$21, D1
            0168 | 6606           : bne     $170
            016A | 4EB9 0000 DBF4 : jsr     $dbf4.l      // stop sound
            0170 | 60B4           : bra     $126
            -->
        </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@B0000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@E1D6 = 3C01            </action>
            <action>maincpu.md@BE92 = 610016B2        </action>
            <action>maincpu.mq@0120 = 0000000000000000</action>
            <action>maincpu.mq@0128 = 0000000000000000</action>
            <action>maincpu.mq@0130 = 0000000000000000</action>
            <action>maincpu.mq@0138 = 0000000000000000</action>
            <action>maincpu.mq@0140 = 0000000000000000</action>
            <action>maincpu.mq@0148 = 0000000000000000</action>
            <action>maincpu.mq@0150 = 0000000000000000</action>
            <action>maincpu.mq@0158 = 0000000000000000</action>
            <action>maincpu.mq@0160 = 0000000000000000</action>
            <action>maincpu.mq@0168 = 0000000000000000</action>
            <action>maincpu.mq@0170 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
tdragon1.xml

Code: Select all

<!-- Thunder Dragon (4th Jun. 1991, protected) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@B0B6 = 60</action> <!-- bullet -->
            <action>maincpu.mb@B70E = 60</action> <!-- enemy -->
        </script>
        <script state="off">
            <action>maincpu.mb@B0B6 = 66</action>
            <action>maincpu.mb@B70E = 66</action>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <script state="on">
            <action>maincpu.mb@A093 = 00</action> <!-- main shot -->
            <action>maincpu.mb@A1C9 = 00</action> <!-- weapon 3 -->
            <action>maincpu.mb@A1E5 = 00</action> <!-- weapon 2 -->
            <action>maincpu.mb@A1ED = 00</action> <!-- weapon 1,4 -->
        </script>
        <script state="off">
            <action>maincpu.mb@A093 = 20</action>
            <action>maincpu.mb@A1C9 = 02</action>
            <action>maincpu.mb@A1E5 = 04</action>
            <action>maincpu.mb@A1ED = 20</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x00018000">01 (slow)</item>
            <item value="0x00028000">02       </item>
            <item value="0x00048000">03       </item>
            <item value="0x00068000">04       </item>
            <item value="0x00088000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@9A80 = 4EB800C0        </action>
            <action>maincpu.mq@00C0 = 203000040C6E00A8</action>
            <action>maincpu.mq@00C8 = 002C6420263C0000</action>
            <action>maincpu.mq@00D0 = 00004A8167066A02</action>
            <action>maincpu.mq@00D8 = 44832203263C0000</action>
            <action>maincpu.mq@00E0 = 00004A8067066A02</action>
            <action>maincpu.mq@00E8 = 448320034E750000</action>
            <!--
            00C0 | 2030 0004      : move.l  ($4,A0,D0.w), D0
            00C4 | 0C6E 00A8 002C : cmpi.w  #$a8, ($2c,A6)   // check auto move flag
            00CA | 6420           : bcc     $ec
            00CC | 263C xxxx xxxx : move.l  #$xxxx, D3       // y position
            00D2 | 4A81           : tst.l   D1
            00D4 | 6706           : beq     $dc
            00D6 | 6A02           : bpl     $da
            00D8 | 4483           : neg.l   D3
            00DA | 2203           : move.l  D3, D1
            00DC | 263C xxxx xxxx : move.l  #$xxxx, D3       // x position
            00E2 | 4A80           : tst.l   D0
            00E4 | 6706           : beq     $ec
            00E6 | 6A02           : bpl     $ea
            00E8 | 4483           : neg.l   D3
            00EA | 2003           : move.l  D3, D0
            00EC | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@00CE = param</action>
            <action>maincpu.md@00DE = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@9A80 = 20300004        </action>
            <action>maincpu.mq@00C0 = 0000000000000000</action>
            <action>maincpu.mq@00C8 = 0000000000000000</action>
            <action>maincpu.mq@00D0 = 0000000000000000</action>
            <action>maincpu.mq@00D8 = 0000000000000000</action>
            <action>maincpu.mq@00E0 = 0000000000000000</action>
            <action>maincpu.mq@00E8 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <comment>mainshot, weapon 1 and 2 only</comment>
        <parameter>
            <item value="0x00048000">01 (slow)</item>
            <item value="0x00088000">02       </item>
            <item value="0x000c8000">03       </item>
            <item value="0x00108000">04       </item>
            <item value="0x00148000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@A116 = 4EB800F0        </action>
            <action>maincpu.md@A296 = 4EB800F0        </action>
            <action>maincpu.md@A30C = 4EB800F0        </action>
            <action>maincpu.mq@00F0 = 584B297C00000000</action>
            <action>maincpu.mq@00F8 = 00204E7500000000</action>
            <!--
            00F0 | 584B                : addq.w  #4, A3
            00F2 | 297C xxxx xxxx 0020 : move.l  #$xxxx, ($20,A4)
            00FA | 4E75                : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@00F4 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@9EAE = 295B0020        </action>
            <action>maincpu.md@A02E = 295B0020        </action>
            <action>maincpu.md@A0A4 = 295B0020        </action>
            <action>maincpu.mq@00F0 = 0000000000000000</action>
            <action>maincpu.mq@00F8 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="max bullets up (test)">
        <comment>mainshot, weapon 1 and 2 only</comment>
        <script state="on">
            <!-- main shot -->
            <action>maincpu.mb@A06C = 79</action>
            <action>maincpu.mb@A0BD = 18</action>
            <action>maincpu.mb@A148 = 00</action>
            <!-- weapon 1 -->
            <action>maincpu.mb@16201 = 04</action> <!-- level 1 -->
            <action>maincpu.mb@1625D = 04</action> <!-- level 2 -->
            <action>maincpu.mb@162B9 = 04</action> <!-- level 3 -->
            <action>maincpu.mb@1636D = 04</action> <!-- level 4 -->
            <action>maincpu.mb@16421 = 04</action> <!-- level 5 -->
            <action>maincpu.mb@164D5 = 04</action> <!-- level 6 -->
            <action>maincpu.mb@16589 = 04</action> <!-- level 7 -->
            <action>maincpu.mb@1663D = 04</action> <!-- level 8 -->
            <!-- weapon 2 -->
            <action>maincpu.mb@16CA9 = 08</action> <!-- level 1 -->
            <action>maincpu.mb@16CD7 = 0A</action> <!-- level 2 -->
            <action>maincpu.mb@16D05 = 0C</action> <!-- level 3 -->
            <action>maincpu.mb@16D33 = 0E</action> <!-- level 4 -->
            <action>maincpu.mb@16D61 = 10</action> <!-- level 5 -->
            <action>maincpu.mb@16D8F = 12</action> <!-- level 6 -->
            <action>maincpu.mb@16DBD = 14</action> <!-- level 7 -->
            <action>maincpu.mb@16DEB = 16</action> <!-- level 8 -->
        </script>
        <script state="off">
            <action>maincpu.mb@0A06C = 69</action>
            <action>maincpu.mb@0A0BD = 03</action>
            <action>maincpu.mb@0A148 = 10</action>
            <action>maincpu.mb@16201 = 02</action>
            <action>maincpu.mb@1625D = 02</action>
            <action>maincpu.mb@162B9 = 02</action>
            <action>maincpu.mb@1636D = 02</action>
            <action>maincpu.mb@16421 = 02</action>
            <action>maincpu.mb@164D5 = 02</action>
            <action>maincpu.mb@16589 = 02</action>
            <action>maincpu.mb@1663D = 02</action>
            <action>maincpu.mb@16CA9 = 04</action>
            <action>maincpu.mb@16CD7 = 05</action>
            <action>maincpu.mb@16D05 = 06</action>
            <action>maincpu.mb@16D33 = 07</action>
            <action>maincpu.mb@16D61 = 08</action>
            <action>maincpu.mb@16D8F = 09</action>
            <action>maincpu.mb@16DBD = 0A</action>
            <action>maincpu.mb@16DEB =  B</action>
        </script>
    </cheat>

    <cheat desc="short hit mark (test)">
        <comment>mainshot, weapon 1 and 2 only</comment>
        <script state="on">
            <action>maincpu.mb@16C57 = 00</action>
            <action>maincpu.mb@16C83 = 00</action>
            <action>maincpu.mb@16FEB = 00</action>
            <action>maincpu.mb@1700B = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@16C57 = 01</action>
            <action>maincpu.mb@16C83 = 01</action>
            <action>maincpu.mb@16FEB = 01</action>
            <action>maincpu.mb@1700B = 01</action>
        </script>
    </cheat>

    <cheat desc="hidden star item finder">
        <script state="on">
            <action>maincpu.md@B9CE = 4EB80100        </action>
            <action>maincpu.mq@0100 = 0C6E00280004660E</action>
            <action>maincpu.mq@0108 = 0C6E02C000106E06</action>
            <action>maincpu.mq@0110 = 3D7C0010003A302E</action>
            <action>maincpu.mq@0118 = 003A4E7500000000</action>
            <!--
            0100 | 0C6E 0028 0004 : cmpi.w  #$28, ($4,A6)
            0106 | 660E           : bne     $116
            0108 | 0C6E 02C0 0010 : cmpi.w  #$2c0, ($10,A6)
            010E | 6E06           : bgt     $116
            0110 | 3D7C 0010 003A : move.w  #$10, ($3a,A6)
            0116 | 302E 003A      : move.w  ($3a,A6), D0
            011A | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.md@B9CE = 302E003A        </action>
            <action>maincpu.mq@0100 = 0000000000000000</action>
            <action>maincpu.mq@0108 = 0000000000000000</action>
            <action>maincpu.mq@0110 = 0000000000000000</action>
            <action>maincpu.mq@0118 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="auto damage">
        <script state="on">
            <action>maincpu.md@0B9CE = 4EB80180        </action>
            <action>maincpu.md@0BB68 = 4EB80180        </action>
            <action>maincpu.mq@00180 = 4EF9000109600000</action>
            <action>maincpu.mq@10960 = 0C6E0004000E643A</action>
            <action>maincpu.mq@10968 = 302E003A6632202E</action>
            <action>maincpu.mq@10970 = 00100C8002F00000</action>
            <action>maincpu.mq@10978 = 64280C8002000000</action>
            <action>maincpu.mq@10980 = 6520202E00140C80</action>
            <action>maincpu.mq@10988 = 0200000065140C80</action>
            <action>maincpu.mq@10990 = 02E00000640C08D6</action>
            <action>maincpu.mq@10998 = 000208D600037001</action>
            <action>maincpu.mq@109A0 = 4E7570004E750000</action>
            <!--
            10960 | 0C6E 0004 000E : cmpi.w  #$4, ($e,A6)  // check enemy or item
            10966 | 643A           : bcc     $109a2
            10968 | 302E 003A      : move.w  ($3a,A6), D0  // check hit flag
            1096C | 6632           : bne     $109a0
            1096E | 202E 0010      : move.l  ($10,A6), D0  // check y position
            10972 | 0C80 02F0 0000 : cmpi.l  #$2f00000, D0
            10978 | 6428           : bcc     $109a2
            1097A | 0C80 0200 0000 : cmpi.l  #$2000000, D0
            10980 | 6520           : bcs     $109a2
            10982 | 202E 0014      : move.l  ($14,A6), D0  // check x position
            10986 | 0C80 0200 0000 : cmpi.l  #$2000000, D0
            1098C | 6514           : bcs     $109a2
            1098E | 0C80 02E0 0000 : cmpi.l  #$2e00000, D0
            10994 | 640C           : bcc     $109a2
            10996 | 08D6 0002      : bset    #$2, (A6)     // set parameters
            1099A | 08D6 0003      : bset    #$3, (A6)
            1099E | 7001           : moveq   #$1, D0
            109A0 | 4E75           : rts
            109A2 | 7000           : moveq   #$0, D0
            109A4 | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.md@0B9CE = 302E003A        </action>
            <action>maincpu.md@0BB68 = 302E003A        </action>
            <action>maincpu.mq@00180 = 0000000000000000</action>
            <action>maincpu.mq@10960 = 4E764E764E764E76</action>
            <action>maincpu.mq@10968 = 4E764E764E764E76</action>
            <action>maincpu.mq@10970 = 4E764E764E764E76</action>
            <action>maincpu.mq@10978 = 4E764E764E764E76</action>
            <action>maincpu.mq@10980 = 4E764E764E764E76</action>
            <action>maincpu.mq@10988 = 4E764E764E764E76</action>
            <action>maincpu.mq@10990 = 4E764E764E764E76</action>
            <action>maincpu.mq@10998 = 4E764E764E764E76</action>
            <action>maincpu.mq@109A0 = 4E764E764E764E76</action>
        </script>
    </cheat>

    <cheat desc="unlock test mode">
        <comment>reset the game (F3) to enter test mode</comment>
        <script state="on">
            <action>maincpu.mw@053A = 6046</action>
        </script>
        <script state="off">
            <action>maincpu.mw@053A = 6600</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mw@E46C = 4E75            </action> <!-- sound routine stopper -->
            <action>maincpu.md@C110 = 4EF80120        </action>
            <action>maincpu.mq@0120 = 41F9000B00001401</action>
            <action>maincpu.mq@0128 = 1239000C0003B401</action>
            <action>maincpu.mq@0130 = 67F40C0100FD6602</action>
            <action>maincpu.mq@0138 = 53100C0100FE6602</action>
            <action>maincpu.mq@0140 = 52100C0100FB6604</action>
            <action>maincpu.mq@0148 = 041000100C0100F7</action>
            <action>maincpu.mq@0150 = 6604061000100C01</action>
            <action>maincpu.mq@0158 = 00EF660810104EB9</action>
            <action>maincpu.mq@0160 = 0000E4600C0100DF</action>
            <action>maincpu.mq@0168 = 66064EB90000DE82</action>
            <action>maincpu.mq@0170 = 60B4000000000000</action>
            <!--
            0120 | 41F9 000B 0000 : lea     $b0000.l, A0 // sound code address
            0126 | 1401           : move.b  D1, D2
            0128 | 1239 000C 0003 : move.b  $c0003.l, D1 // read input
            012E | B401           : cmp.b   D1, D2
            0130 | 67F4           : beq     $126
            0132 | 0C01 00FD      : cmpi.b  #-$3, D1
            0136 | 6602           : bne     $13a
            0138 | 5310           : subq.b  #1, (A0)     // decrease code -01
            013A | 0C01 00FE      : cmpi.b  #-$2, D1
            013E | 6602           : bne     $142
            0140 | 5210           : addq.b  #1, (A0)     // increase code +01
            0142 | 0C01 00FB      : cmpi.b  #-$5, D1
            0146 | 6604           : bne     $14c
            0148 | 0410 0010      : subi.b  #$10, (A0)   // decrease code -10
            014C | 0C01 00F7      : cmpi.b  #-$9, D1
            0150 | 6604           : bne     $156
            0152 | 0610 0010      : addi.b  #$10, (A0)   // increase code +10
            0156 | 0C01 00EF      : cmpi.b  #-$11, D1
            015A | 6608           : bne     $164
            015C | 1010           : move.b  (A0), D0     // play sound
            015E | 4EB9 0000 E460 : jsr     $e460.l
            0164 | 0C01 00DF      : cmpi.b  #-$21, D1
            0168 | 6606           : bne     $170
            016A | 4EB9 0000 DE82 : jsr     $de82.l      // stop sound
            0170 | 60B4           : bra     $126
            -->
        </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@B0000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@E46C = 3C01            </action>
            <action>maincpu.md@C110 = 610016C2        </action>
            <action>maincpu.mq@0120 = 0000000000000000</action>
            <action>maincpu.mq@0128 = 0000000000000000</action>
            <action>maincpu.mq@0130 = 0000000000000000</action>
            <action>maincpu.mq@0138 = 0000000000000000</action>
            <action>maincpu.mq@0140 = 0000000000000000</action>
            <action>maincpu.mq@0148 = 0000000000000000</action>
            <action>maincpu.mq@0150 = 0000000000000000</action>
            <action>maincpu.mq@0158 = 0000000000000000</action>
            <action>maincpu.mq@0160 = 0000000000000000</action>
            <action>maincpu.mq@0168 = 0000000000000000</action>
            <action>maincpu.mq@0170 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
tdragonb.xml

Code: Select all

<!-- Thunder Dragon (bootleg with Raiden sounds, encrypted) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@B0B6 = 60</action> <!-- bullet -->
            <action>maincpu.mb@B70E = 60</action> <!-- enemy -->
        </script>
        <script state="off">
            <action>maincpu.mb@B0B6 = 66</action>
            <action>maincpu.mb@B70E = 66</action>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <script state="on">
            <action>maincpu.mb@A093 = 00</action> <!-- main shot -->
            <action>maincpu.mb@A1C9 = 00</action> <!-- weapon 3 -->
            <action>maincpu.mb@A1E5 = 00</action> <!-- weapon 2 -->
            <action>maincpu.mb@A1ED = 00</action> <!-- weapon 1,4 -->
        </script>
        <script state="off">
            <action>maincpu.mb@A093 = 20</action>
            <action>maincpu.mb@A1C9 = 02</action>
            <action>maincpu.mb@A1E5 = 04</action>
            <action>maincpu.mb@A1ED = 20</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x00018000">01 (slow)</item>
            <item value="0x00028000">02       </item>
            <item value="0x00048000">03       </item>
            <item value="0x00068000">04       </item>
            <item value="0x00088000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@9A80 = 4EB81040        </action>
            <action>maincpu.mq@1040 = 203000040C6E00A8</action>
            <action>maincpu.mq@1048 = 002C6420263C0000</action>
            <action>maincpu.mq@1050 = 00004A8167066A02</action>
            <action>maincpu.mq@1058 = 44832203263C0000</action>
            <action>maincpu.mq@1060 = 00004A8067066A02</action>
            <action>maincpu.mq@1068 = 448320034E750000</action>
            <!--
            1040 | 2030 0004      : move.l  ($4,A0,D0.w), D0
            1044 | 0C6E 00A8 002C : cmpi.w  #$a8, ($2c,A6)   // check auto move flag
            104A | 6420           : bcc     $106c
            104C | 263C xxxx xxxx : move.l  #$xxxx, D3       // y position
            1052 | 4A81           : tst.l   D1
            1054 | 6706           : beq     $105c
            1056 | 6A02           : bpl     $105a
            1058 | 4483           : neg.l   D3
            105A | 2203           : move.l  D3, D1
            105C | 263C xxxx xxxx : move.l  #$xxxx, D3       // x position
            1062 | 4A80           : tst.l   D0
            1064 | 6706           : beq     $106c
            1066 | 6A02           : bpl     $106a
            1068 | 4483           : neg.l   D3
            106A | 2003           : move.l  D3, D0
            106C | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@104E = param</action>
            <action>maincpu.md@105E = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@9A80 = 20300004        </action>
            <action>maincpu.mq@1040 = 0000000000000000</action>
            <action>maincpu.mq@1048 = 0000000000000000</action>
            <action>maincpu.mq@1050 = 0000000000000000</action>
            <action>maincpu.mq@1058 = 0000000000000000</action>
            <action>maincpu.mq@1060 = 0000000000000000</action>
            <action>maincpu.mq@1068 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <comment>mainshot, weapon 1 and 2 only</comment>
        <parameter>
            <item value="0x00048000">01 (slow)</item>
            <item value="0x00088000">02       </item>
            <item value="0x000c8000">03       </item>
            <item value="0x00108000">04       </item>
            <item value="0x00148000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@A116 = 4EB81070        </action>
            <action>maincpu.md@A296 = 4EB81070        </action>
            <action>maincpu.md@A30C = 4EB81070        </action>
            <action>maincpu.mq@1070 = 584B297C00000000</action>
            <action>maincpu.mq@1078 = 00204E7500000000</action>
            <!--
            1070 | 584B                : addq.w  #4, A3
            1072 | 297C xxxx xxxx 0020 : move.l  #$xxxx, ($20,A4)
            107A | 4E75                : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@1074 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@9EAE = 295B0020        </action>
            <action>maincpu.md@A02E = 295B0020        </action>
            <action>maincpu.md@A0A4 = 295B0020        </action>
            <action>maincpu.mq@1070 = 0000000000000000</action>
            <action>maincpu.mq@1078 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="max bullets up (test)">
        <comment>mainshot, weapon 1 and 2 only</comment>
        <script state="on">
            <!-- main shot -->
            <action>maincpu.mb@A06C = 79</action>
            <action>maincpu.mb@A0BD = 18</action>
            <action>maincpu.mb@A148 = 00</action>
            <!-- weapon 1 -->
            <action>maincpu.mb@16201 = 04</action> <!-- level 1 -->
            <action>maincpu.mb@1625D = 04</action> <!-- level 2 -->
            <action>maincpu.mb@162B9 = 04</action> <!-- level 3 -->
            <action>maincpu.mb@1636D = 04</action> <!-- level 4 -->
            <action>maincpu.mb@16421 = 04</action> <!-- level 5 -->
            <action>maincpu.mb@164D5 = 04</action> <!-- level 6 -->
            <action>maincpu.mb@16589 = 04</action> <!-- level 7 -->
            <action>maincpu.mb@1663D = 04</action> <!-- level 8 -->
            <!-- weapon 2 -->
            <action>maincpu.mb@16CA9 = 08</action> <!-- level 1 -->
            <action>maincpu.mb@16CD7 = 0A</action> <!-- level 2 -->
            <action>maincpu.mb@16D05 = 0C</action> <!-- level 3 -->
            <action>maincpu.mb@16D33 = 0E</action> <!-- level 4 -->
            <action>maincpu.mb@16D61 = 10</action> <!-- level 5 -->
            <action>maincpu.mb@16D8F = 12</action> <!-- level 6 -->
            <action>maincpu.mb@16DBD = 14</action> <!-- level 7 -->
            <action>maincpu.mb@16DEB = 16</action> <!-- level 8 -->
        </script>
        <script state="off">
            <action>maincpu.mb@0A06C = 69</action>
            <action>maincpu.mb@0A0BD = 03</action>
            <action>maincpu.mb@0A148 = 10</action>
            <action>maincpu.mb@16201 = 02</action>
            <action>maincpu.mb@1625D = 02</action>
            <action>maincpu.mb@162B9 = 02</action>
            <action>maincpu.mb@1636D = 02</action>
            <action>maincpu.mb@16421 = 02</action>
            <action>maincpu.mb@164D5 = 02</action>
            <action>maincpu.mb@16589 = 02</action>
            <action>maincpu.mb@1663D = 02</action>
            <action>maincpu.mb@16CA9 = 04</action>
            <action>maincpu.mb@16CD7 = 05</action>
            <action>maincpu.mb@16D05 = 06</action>
            <action>maincpu.mb@16D33 = 07</action>
            <action>maincpu.mb@16D61 = 08</action>
            <action>maincpu.mb@16D8F = 09</action>
            <action>maincpu.mb@16DBD = 0A</action>
            <action>maincpu.mb@16DEB =  B</action>
        </script>
    </cheat>

    <cheat desc="short hit mark (test)">
        <comment>mainshot, weapon 1 and 2 only</comment>
        <script state="on">
            <action>maincpu.mb@16C57 = 00</action>
            <action>maincpu.mb@16C83 = 00</action>
            <action>maincpu.mb@16FEB = 00</action>
            <action>maincpu.mb@1700B = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@16C57 = 01</action>
            <action>maincpu.mb@16C83 = 01</action>
            <action>maincpu.mb@16FEB = 01</action>
            <action>maincpu.mb@1700B = 01</action>
        </script>
    </cheat>

    <cheat desc="hidden star item finder">
        <script state="on">
            <action>maincpu.md@B9CE = 4EB81080        </action>
            <action>maincpu.mq@1080 = 0C6E00280004660E</action>
            <action>maincpu.mq@1088 = 0C6E02C000106E06</action>
            <action>maincpu.mq@1090 = 3D7C0010003A302E</action>
            <action>maincpu.mq@1098 = 003A4E7500000000</action>
            <!--
            1080 | 0C6E 0028 0004 : cmpi.w  #$28, ($4,A6)
            1086 | 660E           : bne     $1096
            1088 | 0C6E 02C0 0010 : cmpi.w  #$2c0, ($10,A6)
            108E | 6E06           : bgt     $1096
            1090 | 3D7C 0010 003A : move.w  #$10, ($3a,A6)
            1096 | 302E 003A      : move.w  ($3a,A6), D0
            109A | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.md@B9CE = 302E003A        </action>
            <action>maincpu.mq@1080 = 0000000000000000</action>
            <action>maincpu.mq@1080 = 0000000000000000</action>
            <action>maincpu.mq@1090 = 0000000000000000</action>
            <action>maincpu.mq@1090 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="auto damage">
        <script state="on">
            <action>maincpu.md@0B9CE = 4EB81100        </action>
            <action>maincpu.md@0BB68 = 4EB81100        </action>
            <action>maincpu.mq@01100 = 4EF9000109600000</action>
            <action>maincpu.mq@10960 = 0C6E0004000E643A</action>
            <action>maincpu.mq@10968 = 302E003A6632202E</action>
            <action>maincpu.mq@10970 = 00100C8002F00000</action>
            <action>maincpu.mq@10978 = 64280C8002000000</action>
            <action>maincpu.mq@10980 = 6520202E00140C80</action>
            <action>maincpu.mq@10988 = 0200000065140C80</action>
            <action>maincpu.mq@10990 = 02E00000640C08D6</action>
            <action>maincpu.mq@10998 = 000208D600037001</action>
            <action>maincpu.mq@109A0 = 4E7570004E750000</action>
            <!--
            10960 | 0C6E 0004 000E : cmpi.w  #$4, ($e,A6)  // check enemy or item
            10966 | 643A           : bcc     $109a2
            10968 | 302E 003A      : move.w  ($3a,A6), D0  // check hit flag
            1096C | 6632           : bne     $109a0
            1096E | 202E 0010      : move.l  ($10,A6), D0  // check y position
            10972 | 0C80 02F0 0000 : cmpi.l  #$2f00000, D0
            10978 | 6428           : bcc     $109a2
            1097A | 0C80 0200 0000 : cmpi.l  #$2000000, D0
            10980 | 6520           : bcs     $109a2
            10982 | 202E 0014      : move.l  ($14,A6), D0  // check x position
            10986 | 0C80 0200 0000 : cmpi.l  #$2000000, D0
            1098C | 6514           : bcs     $109a2
            1098E | 0C80 02E0 0000 : cmpi.l  #$2e00000, D0
            10994 | 640C           : bcc     $109a2
            10996 | 08D6 0002      : bset    #$2, (A6)     // set parameters
            1099A | 08D6 0003      : bset    #$3, (A6)
            1099E | 7001           : moveq   #$1, D0
            109A0 | 4E75           : rts
            109A2 | 7000           : moveq   #$0, D0
            109A4 | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.md@0B9CE = 302E003A        </action>
            <action>maincpu.md@0BB68 = 302E003A        </action>
            <action>maincpu.mq@01100 = 0000000000000000</action>
            <action>maincpu.mq@10960 = 4E764E764E764E76</action>
            <action>maincpu.mq@10968 = 4E764E764E764E76</action>
            <action>maincpu.mq@10970 = 4E764E764E764E76</action>
            <action>maincpu.mq@10978 = 4E764E764E764E76</action>
            <action>maincpu.mq@10980 = 4E764E764E764E76</action>
            <action>maincpu.mq@10988 = 4E764E764E764E76</action>
            <action>maincpu.mq@10990 = 4E764E764E764E76</action>
            <action>maincpu.mq@10998 = 4E764E764E764E76</action>
            <action>maincpu.mq@109A0 = 4E764E764E764E76</action>
        </script>
    </cheat>

    <cheat desc="unlock test mode">
        <comment>reset the game (F3) to enter test mode</comment>
        <script state="on">
            <action>maincpu.mb@053D = 46</action>
        </script>
        <script state="off">
            <action>maincpu.mb@053D = 56</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.md@C110 = 4EF810A0        </action>
            <action>maincpu.mq@10A0 = 41F9000B000043F9</action>
            <action>maincpu.mq@10A8 = 000C001E12001029</action>
            <action>maincpu.mq@10B0 = FFE5B20067F60C00</action>
            <action>maincpu.mq@10B8 = 00FD660253100C00</action>
            <action>maincpu.mq@10C0 = 00FE660252100C00</action>
            <action>maincpu.mq@10C8 = 00FB660404100010</action>
            <action>maincpu.mq@10D0 = 0C0000F766040610</action>
            <action>maincpu.mq@10D8 = 00100C0000EF6608</action>
            <action>maincpu.mq@10E0 = 343C800084103282</action>
            <action>maincpu.mq@10E8 = 0C0000DF6606343C</action>
            <action>maincpu.mq@10F0 = 82FF328260B60000</action>
            <!--
            10A0 | 41F9 000B 0000 : lea     $b0000.l, A0  // sound code address
            10A6 | 43F9 000C 001E : lea     $c001e.l, A1  // sound latch address
            10AC | 1200           : move.b  D0, D1
            10AE | 1029 FFE5      : move.b  (-$1b,A1), D0 // read input ($c0003)
            10B2 | B200           : cmp.b   D0, D1
            10B4 | 67F6           : beq     $10ac
            10B6 | 0C00 00FD      : cmpi.b  #-$3, D0
            10BA | 6602           : bne     $10be
            10BC | 5310           : subq.b  #1, (A0)      // decrease code -01
            10BE | 0C00 00FE      : cmpi.b  #-$2, D0
            10C2 | 6602           : bne     $10c6
            10C4 | 5210           : addq.b  #1, (A0)      // increase code +01
            10C6 | 0C00 00FB      : cmpi.b  #-$5, D0
            10CA | 6604           : bne     $10d0
            10CC | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            10D0 | 0C00 00F7      : cmpi.b  #-$9, D0
            10D4 | 6604           : bne     $10da
            10D6 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            10DA | 0C00 00EF      : cmpi.b  #-$11, D0
            10DE | 6608           : bne     $10e8
            10E0 | 343C 8000      : move.w  #$8000, D2    // play sound
            10E4 | 8410           : or.b    (A0), D2
            10E6 | 3282           : move.w  D2, (A1)
            10E8 | 0C00 00DF      : cmpi.b  #-$21, D0
            10EC | 6606           : bne     $10f4
            10EE | 343C 82FF      : move.w  #$82ff, D2    // stop sound
            10F2 | 3282           : move.w  D2, (A1)
            10F4 | 60B6           : bra     $10ac
            -->
        </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@B0000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@C110 = 610016C2        </action>
            <action>maincpu.mq@10A0 = 0000000000000000</action>
            <action>maincpu.mq@10A8 = 0000000000000000</action>
            <action>maincpu.mq@10B0 = 0000000000000000</action>
            <action>maincpu.mq@10B8 = 0000000000000000</action>
            <action>maincpu.mq@10C0 = 0000000000000000</action>
            <action>maincpu.mq@10C8 = 0000000000000000</action>
            <action>maincpu.mq@10D0 = 0000000000000000</action>
            <action>maincpu.mq@10D8 = 0000000000000000</action>
            <action>maincpu.mq@10E0 = 0000000000000000</action>
            <action>maincpu.mq@10E8 = 0000000000000000</action>
            <action>maincpu.mq@10F0 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
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

[tdragon]+ Thunder Dragon

Post by jman »

tdragonb3.xml

Code: Select all

<!-- Thunder Dragon (bootleg with Raiden sounds, unencrypted) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@B0B6 = 60</action> <!-- bullet -->
            <action>maincpu.mb@B70E = 60</action> <!-- enemy -->
        </script>
        <script state="off">
            <action>maincpu.mb@B0B6 = 66</action>
            <action>maincpu.mb@B70E = 66</action>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <script state="on">
            <action>maincpu.mb@A093 = 00</action> <!-- main shot -->
            <action>maincpu.mb@A1C9 = 00</action> <!-- weapon 3 -->
            <action>maincpu.mb@A1E5 = 00</action> <!-- weapon 2 -->
            <action>maincpu.mb@A1ED = 00</action> <!-- weapon 1,4 -->
        </script>
        <script state="off">
            <action>maincpu.mb@A093 = 20</action>
            <action>maincpu.mb@A1C9 = 02</action>
            <action>maincpu.mb@A1E5 = 04</action>
            <action>maincpu.mb@A1ED = 20</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x00018000">01 (slow)</item>
            <item value="0x00028000">02       </item>
            <item value="0x00048000">03       </item>
            <item value="0x00068000">04       </item>
            <item value="0x00088000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@9A80 = 4EB81040        </action>
            <action>maincpu.mq@1040 = 203000040C6E00A8</action>
            <action>maincpu.mq@1048 = 002C6420263C0000</action>
            <action>maincpu.mq@1050 = 00004A8167066A02</action>
            <action>maincpu.mq@1058 = 44832203263C0000</action>
            <action>maincpu.mq@1060 = 00004A8067066A02</action>
            <action>maincpu.mq@1068 = 448320034E750000</action>
            <!--
            1040 | 2030 0004      : move.l  ($4,A0,D0.w), D0
            1044 | 0C6E 00A8 002C : cmpi.w  #$a8, ($2c,A6)   // check auto move flag
            104A | 6420           : bcc     $106c
            104C | 263C xxxx xxxx : move.l  #$xxxx, D3       // y position
            1052 | 4A81           : tst.l   D1
            1054 | 6706           : beq     $105c
            1056 | 6A02           : bpl     $105a
            1058 | 4483           : neg.l   D3
            105A | 2203           : move.l  D3, D1
            105C | 263C xxxx xxxx : move.l  #$xxxx, D3       // x position
            1062 | 4A80           : tst.l   D0
            1064 | 6706           : beq     $106c
            1066 | 6A02           : bpl     $106a
            1068 | 4483           : neg.l   D3
            106A | 2003           : move.l  D3, D0
            106C | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@104E = param</action>
            <action>maincpu.md@105E = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@9A80 = 20300004        </action>
            <action>maincpu.mq@1040 = 0000000000000000</action>
            <action>maincpu.mq@1048 = 0000000000000000</action>
            <action>maincpu.mq@1050 = 0000000000000000</action>
            <action>maincpu.mq@1058 = 0000000000000000</action>
            <action>maincpu.mq@1060 = 0000000000000000</action>
            <action>maincpu.mq@1068 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <comment>mainshot, weapon 1 and 2 only</comment>
        <parameter>
            <item value="0x00048000">01 (slow)</item>
            <item value="0x00088000">02       </item>
            <item value="0x000c8000">03       </item>
            <item value="0x00108000">04       </item>
            <item value="0x00148000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@A116 = 4EB81070        </action>
            <action>maincpu.md@A296 = 4EB81070        </action>
            <action>maincpu.md@A30C = 4EB81070        </action>
            <action>maincpu.mq@1070 = 584B297C00000000</action>
            <action>maincpu.mq@1078 = 00204E7500000000</action>
            <!--
            1070 | 584B                : addq.w  #4, A3
            1072 | 297C xxxx xxxx 0020 : move.l  #$xxxx, ($20,A4)
            107A | 4E75                : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@1074 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@9EAE = 295B0020        </action>
            <action>maincpu.md@A02E = 295B0020        </action>
            <action>maincpu.md@A0A4 = 295B0020        </action>
            <action>maincpu.mq@1070 = 0000000000000000</action>
            <action>maincpu.mq@1078 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="max bullets up (test)">
        <comment>mainshot, weapon 1 and 2 only</comment>
        <script state="on">
            <!-- main shot -->
            <action>maincpu.mb@A06C = 79</action>
            <action>maincpu.mb@A0BD = 18</action>
            <action>maincpu.mb@A148 = 00</action>
            <!-- weapon 1 -->
            <action>maincpu.mb@16201 = 04</action> <!-- level 1 -->
            <action>maincpu.mb@1625D = 04</action> <!-- level 2 -->
            <action>maincpu.mb@162B9 = 04</action> <!-- level 3 -->
            <action>maincpu.mb@1636D = 04</action> <!-- level 4 -->
            <action>maincpu.mb@16421 = 04</action> <!-- level 5 -->
            <action>maincpu.mb@164D5 = 04</action> <!-- level 6 -->
            <action>maincpu.mb@16589 = 04</action> <!-- level 7 -->
            <action>maincpu.mb@1663D = 04</action> <!-- level 8 -->
            <!-- weapon 2 -->
            <action>maincpu.mb@16CA9 = 08</action> <!-- level 1 -->
            <action>maincpu.mb@16CD7 = 0A</action> <!-- level 2 -->
            <action>maincpu.mb@16D05 = 0C</action> <!-- level 3 -->
            <action>maincpu.mb@16D33 = 0E</action> <!-- level 4 -->
            <action>maincpu.mb@16D61 = 10</action> <!-- level 5 -->
            <action>maincpu.mb@16D8F = 12</action> <!-- level 6 -->
            <action>maincpu.mb@16DBD = 14</action> <!-- level 7 -->
            <action>maincpu.mb@16DEB = 16</action> <!-- level 8 -->
        </script>
        <script state="off">
            <action>maincpu.mb@0A06C = 69</action>
            <action>maincpu.mb@0A0BD = 03</action>
            <action>maincpu.mb@0A148 = 10</action>
            <action>maincpu.mb@16201 = 02</action>
            <action>maincpu.mb@1625D = 02</action>
            <action>maincpu.mb@162B9 = 02</action>
            <action>maincpu.mb@1636D = 02</action>
            <action>maincpu.mb@16421 = 02</action>
            <action>maincpu.mb@164D5 = 02</action>
            <action>maincpu.mb@16589 = 02</action>
            <action>maincpu.mb@1663D = 02</action>
            <action>maincpu.mb@16CA9 = 04</action>
            <action>maincpu.mb@16CD7 = 05</action>
            <action>maincpu.mb@16D05 = 06</action>
            <action>maincpu.mb@16D33 = 07</action>
            <action>maincpu.mb@16D61 = 08</action>
            <action>maincpu.mb@16D8F = 09</action>
            <action>maincpu.mb@16DBD = 0A</action>
            <action>maincpu.mb@16DEB =  B</action>
        </script>
    </cheat>

    <cheat desc="short hit mark (test)">
        <comment>mainshot, weapon 1 and 2 only</comment>
        <script state="on">
            <action>maincpu.mb@16C57 = 00</action>
            <action>maincpu.mb@16C83 = 00</action>
            <action>maincpu.mb@16FEB = 00</action>
            <action>maincpu.mb@1700B = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@16C57 = 01</action>
            <action>maincpu.mb@16C83 = 01</action>
            <action>maincpu.mb@16FEB = 01</action>
            <action>maincpu.mb@1700B = 01</action>
        </script>
    </cheat>

    <cheat desc="hidden star item finder">
        <script state="on">
            <action>maincpu.md@B9CE = 4EB81080        </action>
            <action>maincpu.mq@1080 = 0C6E00280004660E</action>
            <action>maincpu.mq@1088 = 0C6E02C000106E06</action>
            <action>maincpu.mq@1090 = 3D7C0010003A302E</action>
            <action>maincpu.mq@1098 = 003A4E7500000000</action>
            <!--
            1080 | 0C6E 0028 0004 : cmpi.w  #$28, ($4,A6)
            1086 | 660E           : bne     $1096
            1088 | 0C6E 02C0 0010 : cmpi.w  #$2c0, ($10,A6)
            108E | 6E06           : bgt     $1096
            1090 | 3D7C 0010 003A : move.w  #$10, ($3a,A6)
            1096 | 302E 003A      : move.w  ($3a,A6), D0
            109A | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.md@B9CE = 302E003A        </action>
            <action>maincpu.mq@1080 = 0000000000000000</action>
            <action>maincpu.mq@1088 = 0000000000000000</action>
            <action>maincpu.mq@1090 = 0000000000000000</action>
            <action>maincpu.mq@1098 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="auto damage">
        <script state="on">
            <action>maincpu.md@0B9CE = 4EB81100        </action>
            <action>maincpu.md@0BB68 = 4EB81100        </action>
            <action>maincpu.mq@01100 = 4EF9000109600000</action>
            <action>maincpu.mq@10960 = 0C6E0004000E643A</action>
            <action>maincpu.mq@10968 = 302E003A6632202E</action>
            <action>maincpu.mq@10970 = 00100C8002F00000</action>
            <action>maincpu.mq@10978 = 64280C8002000000</action>
            <action>maincpu.mq@10980 = 6520202E00140C80</action>
            <action>maincpu.mq@10988 = 0200000065140C80</action>
            <action>maincpu.mq@10990 = 02E00000640C08D6</action>
            <action>maincpu.mq@10998 = 000208D600037001</action>
            <action>maincpu.mq@109A0 = 4E7570004E750000</action>
            <!--
            10960 | 0C6E 0004 000E : cmpi.w  #$4, ($e,A6)  // check enemy or item
            10966 | 643A           : bcc     $109a2
            10968 | 302E 003A      : move.w  ($3a,A6), D0  // check hit flag
            1096C | 6632           : bne     $109a0
            1096E | 202E 0010      : move.l  ($10,A6), D0  // check y position
            10972 | 0C80 02F0 0000 : cmpi.l  #$2f00000, D0
            10978 | 6428           : bcc     $109a2
            1097A | 0C80 0200 0000 : cmpi.l  #$2000000, D0
            10980 | 6520           : bcs     $109a2
            10982 | 202E 0014      : move.l  ($14,A6), D0  // check x position
            10986 | 0C80 0200 0000 : cmpi.l  #$2000000, D0
            1098C | 6514           : bcs     $109a2
            1098E | 0C80 02E0 0000 : cmpi.l  #$2e00000, D0
            10994 | 640C           : bcc     $109a2
            10996 | 08D6 0002      : bset    #$2, (A6)     // set parameters
            1099A | 08D6 0003      : bset    #$3, (A6)
            1099E | 7001           : moveq   #$1, D0
            109A0 | 4E75           : rts
            109A2 | 7000           : moveq   #$0, D0
            109A4 | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.md@0B9CE = 302E003A        </action>
            <action>maincpu.md@0BB68 = 302E003A        </action>
            <action>maincpu.mq@01100 = 0000000000000000</action>
            <action>maincpu.mq@10960 = 4E764E764E764E76</action>
            <action>maincpu.mq@10968 = 4E764E764E764E76</action>
            <action>maincpu.mq@10970 = 4E764E764E764E76</action>
            <action>maincpu.mq@10978 = 4E764E764E764E76</action>
            <action>maincpu.mq@10980 = 4E764E764E764E76</action>
            <action>maincpu.mq@10988 = 4E764E764E764E76</action>
            <action>maincpu.mq@10990 = 4E764E764E764E76</action>
            <action>maincpu.mq@10998 = 4E764E764E764E76</action>
            <action>maincpu.mq@109A0 = 4E764E764E764E76</action>
        </script>
    </cheat>

    <cheat desc="unlock test mode">
        <comment>reset the game (F3) to enter test mode</comment>
        <script state="on">
            <action>maincpu.mw@053A = 6046</action>
        </script>
        <script state="off">
            <action>maincpu.mw@053A = 6600</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.md@C110 = 4EF810A0        </action>
            <action>maincpu.mq@10A0 = 41F9000B000043F9</action>
            <action>maincpu.mq@10A8 = 000C001E12001029</action>
            <action>maincpu.mq@10B0 = FFE5B20067F60C00</action>
            <action>maincpu.mq@10B8 = 00FD660253100C00</action>
            <action>maincpu.mq@10C0 = 00FE660252100C00</action>
            <action>maincpu.mq@10C8 = 00FB660404100010</action>
            <action>maincpu.mq@10D0 = 0C0000F766040610</action>
            <action>maincpu.mq@10D8 = 00100C0000EF6608</action>
            <action>maincpu.mq@10E0 = 343C800084103282</action>
            <action>maincpu.mq@10E8 = 0C0000DF6606343C</action>
            <action>maincpu.mq@10F0 = 82FF328260B60000</action>
            <!--
            10A0 | 41F9 000B 0000 : lea     $b0000.l, A0  // sound code address
            10A6 | 43F9 000C 001E : lea     $c001e.l, A1  // sound latch address
            10AC | 1200           : move.b  D0, D1
            10AE | 1029 FFE5      : move.b  (-$1b,A1), D0 // read input ($c0003)
            10B2 | B200           : cmp.b   D0, D1
            10B4 | 67F6           : beq     $10ac
            10B6 | 0C00 00FD      : cmpi.b  #-$3, D0
            10BA | 6602           : bne     $10be
            10BC | 5310           : subq.b  #1, (A0)      // decrease code -01
            10BE | 0C00 00FE      : cmpi.b  #-$2, D0
            10C2 | 6602           : bne     $10c6
            10C4 | 5210           : addq.b  #1, (A0)      // increase code +01
            10C6 | 0C00 00FB      : cmpi.b  #-$5, D0
            10CA | 6604           : bne     $10d0
            10CC | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            10D0 | 0C00 00F7      : cmpi.b  #-$9, D0
            10D4 | 6604           : bne     $10da
            10D6 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            10DA | 0C00 00EF      : cmpi.b  #-$11, D0
            10DE | 6608           : bne     $10e8
            10E0 | 343C 8000      : move.w  #$8000, D2    // play sound
            10E4 | 8410           : or.b    (A0), D2
            10E6 | 3282           : move.w  D2, (A1)
            10E8 | 0C00 00DF      : cmpi.b  #-$21, D0
            10EC | 6606           : bne     $10f4
            10EE | 343C 82FF      : move.w  #$82ff, D2    // stop sound
            10F2 | 3282           : move.w  D2, (A1)
            10F4 | 60B6           : bra     $10ac
            -->
        </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@B0000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@C110 = 610016C2        </action>
            <action>maincpu.mq@10A0 = 0000000000000000</action>
            <action>maincpu.mq@10A8 = 0000000000000000</action>
            <action>maincpu.mq@10B0 = 0000000000000000</action>
            <action>maincpu.mq@10B8 = 0000000000000000</action>
            <action>maincpu.mq@10C0 = 0000000000000000</action>
            <action>maincpu.mq@10C8 = 0000000000000000</action>
            <action>maincpu.mq@10D0 = 0000000000000000</action>
            <action>maincpu.mq@10D8 = 0000000000000000</action>
            <action>maincpu.mq@10E0 = 0000000000000000</action>
            <action>maincpu.mq@10E8 = 0000000000000000</action>
            <action>maincpu.mq@10F0 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
tdragonb2.xml

Code: Select all

<!-- Thunder Dragon (bootleg with reduced sound system) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@B0B6 = 60</action> <!-- bullet -->
            <action>maincpu.mb@B70E = 60</action> <!-- enemy -->
        </script>
        <script state="off">
            <action>maincpu.mb@B0B6 = 66</action>
            <action>maincpu.mb@B70E = 66</action>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <script state="on">
            <action>maincpu.mb@A093 = 00</action> <!-- main shot -->
            <action>maincpu.mb@A1C9 = 00</action> <!-- weapon 3 -->
            <action>maincpu.mb@A1E5 = 00</action> <!-- weapon 2 -->
            <action>maincpu.mb@A1ED = 00</action> <!-- weapon 1,4 -->
        </script>
        <script state="off">
            <action>maincpu.mb@A093 = 20</action>
            <action>maincpu.mb@A1C9 = 02</action>
            <action>maincpu.mb@A1E5 = 04</action>
            <action>maincpu.mb@A1ED = 20</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x00018000">01 (slow)</item>
            <item value="0x00028000">02       </item>
            <item value="0x00048000">03       </item>
            <item value="0x00068000">04       </item>
            <item value="0x00088000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@9A80 = 4EB81040        </action>
            <action>maincpu.mq@1040 = 203000040C6E00A8</action>
            <action>maincpu.mq@1048 = 002C6420263C0000</action>
            <action>maincpu.mq@1050 = 00004A8167066A02</action>
            <action>maincpu.mq@1058 = 44832203263C0000</action>
            <action>maincpu.mq@1060 = 00004A8067066A02</action>
            <action>maincpu.mq@1068 = 448320034E750000</action>
            <!--
            1040 | 2030 0004      : move.l  ($4,A0,D0.w), D0
            1044 | 0C6E 00A8 002C : cmpi.w  #$a8, ($2c,A6)   // check auto move flag
            104A | 6420           : bcc     $106c
            104C | 263C xxxx xxxx : move.l  #$xxxx, D3       // y position
            1052 | 4A81           : tst.l   D1
            1054 | 6706           : beq     $105c
            1056 | 6A02           : bpl     $105a
            1058 | 4483           : neg.l   D3
            105A | 2203           : move.l  D3, D1
            105C | 263C xxxx xxxx : move.l  #$xxxx, D3       // x position
            1062 | 4A80           : tst.l   D0
            1064 | 6706           : beq     $106c
            1066 | 6A02           : bpl     $106a
            1068 | 4483           : neg.l   D3
            106A | 2003           : move.l  D3, D0
            106C | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@104E = param</action>
            <action>maincpu.md@105E = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@9A80 = 20300004        </action>
            <action>maincpu.mq@1040 = 0000000000000000</action>
            <action>maincpu.mq@1048 = 0000000000000000</action>
            <action>maincpu.mq@1050 = 0000000000000000</action>
            <action>maincpu.mq@1058 = 0000000000000000</action>
            <action>maincpu.mq@1060 = 0000000000000000</action>
            <action>maincpu.mq@1068 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <comment>mainshot, weapon 1 and 2 only</comment>
        <parameter>
            <item value="0x00048000">01 (slow)</item>
            <item value="0x00088000">02       </item>
            <item value="0x000c8000">03       </item>
            <item value="0x00108000">04       </item>
            <item value="0x00148000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@A116 = 4EB81070        </action>
            <action>maincpu.md@A296 = 4EB81070        </action>
            <action>maincpu.md@A30C = 4EB81070        </action>
            <action>maincpu.mq@1070 = 584B297C00000000</action>
            <action>maincpu.mq@1078 = 00204E7500000000</action>
            <!--
            1070 | 584B                : addq.w  #4, A3
            1072 | 297C xxxx xxxx 0020 : move.l  #$xxxx, ($20,A4)
            107A | 4E75                : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@1074 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@9EAE = 295B0020        </action>
            <action>maincpu.md@A02E = 295B0020        </action>
            <action>maincpu.md@A0A4 = 295B0020        </action>
            <action>maincpu.mq@1070 = 0000000000000000</action>
            <action>maincpu.mq@1078 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="max bullets up (test)">
        <comment>mainshot, weapon 1 and 2 only</comment>
        <script state="on">
            <!-- main shot -->
            <action>maincpu.mb@A06C = 79</action>
            <action>maincpu.mb@A0BD = 18</action>
            <action>maincpu.mb@A148 = 00</action>
            <!-- weapon 1 -->
            <action>maincpu.mb@16201 = 04</action> <!-- level 1 -->
            <action>maincpu.mb@1625D = 04</action> <!-- level 2 -->
            <action>maincpu.mb@162B9 = 04</action> <!-- level 3 -->
            <action>maincpu.mb@1636D = 04</action> <!-- level 4 -->
            <action>maincpu.mb@16421 = 04</action> <!-- level 5 -->
            <action>maincpu.mb@164D5 = 04</action> <!-- level 6 -->
            <action>maincpu.mb@16589 = 04</action> <!-- level 7 -->
            <action>maincpu.mb@1663D = 04</action> <!-- level 8 -->
            <!-- weapon 2 -->
            <action>maincpu.mb@16CA9 = 08</action> <!-- level 1 -->
            <action>maincpu.mb@16CD7 = 0A</action> <!-- level 2 -->
            <action>maincpu.mb@16D05 = 0C</action> <!-- level 3 -->
            <action>maincpu.mb@16D33 = 0E</action> <!-- level 4 -->
            <action>maincpu.mb@16D61 = 10</action> <!-- level 5 -->
            <action>maincpu.mb@16D8F = 12</action> <!-- level 6 -->
            <action>maincpu.mb@16DBD = 14</action> <!-- level 7 -->
            <action>maincpu.mb@16DEB = 16</action> <!-- level 8 -->
        </script>
        <script state="off">
            <action>maincpu.mb@0A06C = 69</action>
            <action>maincpu.mb@0A0BD = 03</action>
            <action>maincpu.mb@0A148 = 10</action>
            <action>maincpu.mb@16201 = 02</action>
            <action>maincpu.mb@1625D = 02</action>
            <action>maincpu.mb@162B9 = 02</action>
            <action>maincpu.mb@1636D = 02</action>
            <action>maincpu.mb@16421 = 02</action>
            <action>maincpu.mb@164D5 = 02</action>
            <action>maincpu.mb@16589 = 02</action>
            <action>maincpu.mb@1663D = 02</action>
            <action>maincpu.mb@16CA9 = 04</action>
            <action>maincpu.mb@16CD7 = 05</action>
            <action>maincpu.mb@16D05 = 06</action>
            <action>maincpu.mb@16D33 = 07</action>
            <action>maincpu.mb@16D61 = 08</action>
            <action>maincpu.mb@16D8F = 09</action>
            <action>maincpu.mb@16DBD = 0A</action>
            <action>maincpu.mb@16DEB =  B</action>
        </script>
    </cheat>

    <cheat desc="short hit mark (test)">
        <comment>mainshot, weapon 1 and 2 only</comment>
        <script state="on">
            <action>maincpu.mb@16C57 = 00</action>
            <action>maincpu.mb@16C83 = 00</action>
            <action>maincpu.mb@16FEB = 00</action>
            <action>maincpu.mb@1700B = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@16C57 = 01</action>
            <action>maincpu.mb@16C83 = 01</action>
            <action>maincpu.mb@16FEB = 01</action>
            <action>maincpu.mb@1700B = 01</action>
        </script>
    </cheat>

    <cheat desc="hidden star item finder">
        <script state="on">
            <action>maincpu.md@B9CE = 4EB81080        </action>
            <action>maincpu.mq@1080 = 0C6E00280004660E</action>
            <action>maincpu.mq@1088 = 0C6E02C000106E06</action>
            <action>maincpu.mq@1090 = 3D7C0010003A302E</action>
            <action>maincpu.mq@1098 = 003A4E7500000000</action>
            <!--
            1080 | 0C6E 0028 0004 : cmpi.w  #$28, ($4,A6)
            1086 | 660E           : bne     $1096
            1088 | 0C6E 02C0 0010 : cmpi.w  #$2c0, ($10,A6)
            108E | 6E06           : bgt     $1096
            1090 | 3D7C 0010 003A : move.w  #$10, ($3a,A6)
            1096 | 302E 003A      : move.w  ($3a,A6), D0
            109A | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.md@B9CE = 302E003A        </action>
            <action>maincpu.mq@1080 = 0000000000000000</action>
            <action>maincpu.mq@1080 = 0000000000000000</action>
            <action>maincpu.mq@1090 = 0000000000000000</action>
            <action>maincpu.mq@1090 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="auto damage">
        <script state="on">
            <action>maincpu.md@0B9CE = 4EB810F0        </action>
            <action>maincpu.md@0BB68 = 4EB810F0        </action>
            <action>maincpu.mq@010F0 = 4EF9000109600000</action>
            <action>maincpu.mq@10960 = 0C6E0004000E643A</action>
            <action>maincpu.mq@10968 = 302E003A6632202E</action>
            <action>maincpu.mq@10970 = 00100C8002F00000</action>
            <action>maincpu.mq@10978 = 64280C8002000000</action>
            <action>maincpu.mq@10980 = 6520202E00140C80</action>
            <action>maincpu.mq@10988 = 0200000065140C80</action>
            <action>maincpu.mq@10990 = 02E00000640C08D6</action>
            <action>maincpu.mq@10998 = 000208D600037001</action>
            <action>maincpu.mq@109A0 = 4E7570004E750000</action>
            <!--
            10960 | 0C6E 0004 000E : cmpi.w  #$4, ($e,A6)  // check enemy or item
            10966 | 643A           : bcc     $109a2
            10968 | 302E 003A      : move.w  ($3a,A6), D0  // check hit flag
            1096C | 6632           : bne     $109a0
            1096E | 202E 0010      : move.l  ($10,A6), D0  // check y position
            10972 | 0C80 02F0 0000 : cmpi.l  #$2f00000, D0
            10978 | 6428           : bcc     $109a2
            1097A | 0C80 0200 0000 : cmpi.l  #$2000000, D0
            10980 | 6520           : bcs     $109a2
            10982 | 202E 0014      : move.l  ($14,A6), D0  // check x position
            10986 | 0C80 0200 0000 : cmpi.l  #$2000000, D0
            1098C | 6514           : bcs     $109a2
            1098E | 0C80 02E0 0000 : cmpi.l  #$2e00000, D0
            10994 | 640C           : bcc     $109a2
            10996 | 08D6 0002      : bset    #$2, (A6)     // set parameters
            1099A | 08D6 0003      : bset    #$3, (A6)
            1099E | 7001           : moveq   #$1, D0
            109A0 | 4E75           : rts
            109A2 | 7000           : moveq   #$0, D0
            109A4 | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.md@0B9CE = 302E003A        </action>
            <action>maincpu.md@0BB68 = 302E003A        </action>
            <action>maincpu.mq@010F0 = 0000000000000000</action>
            <action>maincpu.mq@10960 = 4E764E764E764E76</action>
            <action>maincpu.mq@10968 = 4E764E764E764E76</action>
            <action>maincpu.mq@10970 = 4E764E764E764E76</action>
            <action>maincpu.mq@10978 = 4E764E764E764E76</action>
            <action>maincpu.mq@10980 = 4E764E764E764E76</action>
            <action>maincpu.mq@10988 = 4E764E764E764E76</action>
            <action>maincpu.mq@10990 = 4E764E764E764E76</action>
            <action>maincpu.mq@10998 = 4E764E764E764E76</action>
            <action>maincpu.mq@109A0 = 4E764E764E764E76</action>
        </script>
    </cheat>

    <cheat desc="unlock test mode">
        <comment>reset the game (F3) to enter test mode</comment>
        <script state="on">
            <action>maincpu.mw@053A = 6046</action>
        </script>
        <script state="off">
            <action>maincpu.mw@053A = 6600</action>
        </script>
    </cheat>

    <cheat desc="sound test mode (test)">
        <!-- no sound response when you try to play or stop -->
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.md@C110 = 4EF810A0        </action>
            <action>maincpu.mq@10A0 = 41F9000B000043F9</action>
            <action>maincpu.mq@10A8 = 000C001F12001029</action>
            <action>maincpu.mq@10B0 = FFE4B20067F60C00</action>
            <action>maincpu.mq@10B8 = 00FD660253100C00</action>
            <action>maincpu.mq@10C0 = 00FE660252100C00</action>
            <action>maincpu.mq@10C8 = 00FB660404100010</action>
            <action>maincpu.mq@10D0 = 0C0000F766040610</action>
            <action>maincpu.mq@10D8 = 00100C0000EF6602</action>
            <action>maincpu.mq@10E0 = 12900C0000DF6606</action>
            <action>maincpu.mq@10E8 = 143C0000128260BC</action>
            <!--
            10A0 | 41F9 000B 0000 : lea     $b0000.l, A0  // sound code address
            10A6 | 43F9 000C 001F : lea     $c001f.l, A1  // sound latch address
            10AC | 1200           : move.b  D0, D1
            10AE | 1029 FFE4      : move.b  (-$1c,A1), D0 // read input ($c0003)
            10B2 | B200           : cmp.b   D0, D1
            10B4 | 67F6           : beq     $10ac
            10B6 | 0C00 00FD      : cmpi.b  #-$3, D0
            10BA | 6602           : bne     $10be
            10BC | 5310           : subq.b  #1, (A0)      // decrease code -01
            10BE | 0C00 00FE      : cmpi.b  #-$2, D0
            10C2 | 6602           : bne     $10c6
            10C4 | 5210           : addq.b  #1, (A0)      // increase code +01
            10C6 | 0C00 00FB      : cmpi.b  #-$5, D0
            10CA | 6604           : bne     $10d0
            10CC | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            10D0 | 0C00 00F7      : cmpi.b  #-$9, D0
            10D4 | 6604           : bne     $10da
            10D6 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            10DA | 0C00 00EF      : cmpi.b  #-$11, D0
            10DE | 6602           : bne     $10e2
            10E0 | 1290           : move.b  (A0), (A1)    // play sound
            10E2 | 0C00 00DF      : cmpi.b  #-$21, D0
            10E6 | 6606           : bne     $10fe
            10E8 | 143C 0000      : move.b  #$0, D2       // stop sound
            10EC | 1282           : move.b  D2, (A1)
            10EE | 60BC           : bra     $10ac
            -->
        </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@B0000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@C110 = 610016C2        </action>
            <action>maincpu.mq@10A0 = 0000000000000000</action>
            <action>maincpu.mq@10A8 = 0000000000000000</action>
            <action>maincpu.mq@10B0 = 0000000000000000</action>
            <action>maincpu.mq@10B8 = 0000000000000000</action>
            <action>maincpu.mq@10C0 = 0000000000000000</action>
            <action>maincpu.mq@10C8 = 0000000000000000</action>
            <action>maincpu.mq@10D0 = 0000000000000000</action>
            <action>maincpu.mq@10D8 = 0000000000000000</action>
            <action>maincpu.mq@10E0 = 0000000000000000</action>
            <action>maincpu.mq@10E8 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
"auto damage" : Added new. You can damage/kill an enemy and find hidden items without bullet hit.
jman

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