[tdragon2] Thunder Dragon 2

This forum is for posting M.A.M.E. Work In Progress "Arcade"cheats that are not quite ready for the prime time. If the cheats are buggy or the cheat descriptions are non-standard then please post them here. Help maybe given but there are no guarantees and they will only be added to the cheat file when the cheat file maintainer is happy with them.
Post Reply
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[tdragon2] Thunder Dragon 2

Post by jman »

Code: Select all

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

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mb@7d21 = 00</action> <!-- mainshot 1 -->
        <action>maincpu.mb@7d47 = 00</action> <!-- mainshot 2 -->
        <action>maincpu.mb@7e8f = 00</action> <!-- missile -->
    </script>
    <script state="off">
        <action>maincpu.mb@7d21 = 30</action>
        <action>maincpu.mb@7d47 = 06</action>
        <action>maincpu.mb@7e8f = 40</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter>
        <item value="0x01">01 (slow)</item>
        <item value="0x04">02       </item>
        <item value="0x06">03       </item>
        <item value="0x08">04       </item>
        <item value="0x0c">05 (fast)</item>
    </parameter>
    <script state="on">
        <action>maincpu.mq@06f2e = 4eb9000162006a0a</action>
        <action>maincpu.mq@16200 = 2030000474004842</action>
        <action>maincpu.mq@16208 = 4a8167066a024482</action>
        <action>maincpu.mq@16210 = 2202740048424a80</action>
        <action>maincpu.mq@16218 = 67066a0244822002</action>
        <action>maincpu.mq@16220 = 22014e7500000000</action>
        <!--
        16200 | 2030 0004      : move.l ($4,A0,D0.w),D0
        16204 | 74xx           : moveq  #$xx,D2
        16206 | 4842           : swap   D2
        16208 | 4a81           : tst.l  D1
        1620a | 6706           : beq    $16212
        1620c | 6a02           : bpl    $16210
        1620e | 4482           : neg.l  D2
        16210 | 2202           : move.l D2,D1
        16212 | 74xx           : moveq  #$xx,D2
        16214 | 4842           : swap   D2
        16216 | 4a80           : tst.l  D0
        16218 | 6706           : beq    $16220
        1621a | 6a02           : bpl    $1621e
        1621c | 4482           : neg.l  D2
        1621e | 2002           : move.l D2,D0
        16220 | 2201           : move.l D1,D1
        16222 | 4e75           : rts
        -->
    </script>
    <script state="change">
        <action>maincpu.mb@16205 = param</action>
        <action>maincpu.mb@16213 = param</action>
    </script>
    <script state="off">
        <action>maincpu.mq@06f2e = 2030000422016a0a</action>
        <action>maincpu.mq@16200 = 0000000000000000</action>
        <action>maincpu.mq@16208 = 0000000000000000</action>
        <action>maincpu.mq@16210 = 0000000000000000</action>
        <action>maincpu.mq@16218 = 0000000000000000</action>
        <action>maincpu.mq@16220 = 0000000000000000</action>
    </script>
</cheat>

<cheat desc="bullet speed">
    <parameter>
        <item value="0x08">01 (slow)</item>
        <item value="0x10">02       </item>
        <item value="0x18">03       </item>
        <item value="0x20">04       </item>
        <item value="0x28">05 (fast)</item>
    </parameter>
    <script state="on">
        <action>maincpu.mq@07dfe = 4eb9000162304e71</action>
        <action>maincpu.mq@16230 = 295b0020295b0024</action>
        <action>maincpu.mq@16238 = 7400484229420020</action>
        <action>maincpu.mq@16240 = 4e75000000000000</action>
        <!--
        16230 | 295b 0020      : move.l (A3)+,($20,A4)
        16234 | 295b 0024      : move.l (A3)+,($24,A4)
        16238 | 74xx           : moveq  #$xx,D2
        1623a | 4802           : swap   D2
        1623c | 2942 0020      : move.l D2,($20,A4)
        16240 | 4e75           : rts
        -->
    </script>
    <script state="change">
        <action>maincpu.mb@16239 = param</action>
    </script>
    <script state="off">
        <action>maincpu.mq@07dfe = 295b0020295b0024</action>
        <action>maincpu.mq@16230 = 0000000000000000</action>
        <action>maincpu.mq@16238 = 0000000000000000</action>
        <action>maincpu.mq@16240 = 0000000000000000</action>
    </script>
</cheat>

<cheat desc="sound test mode">
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action>maincpu.mq@0bfbc = 4ef9000162504e71</action>
        <action>maincpu.mq@16250 = 41f9001f10004280</action>
        <action>maincpu.mq@16258 = 1401123900100003</action>
        <action>maincpu.mq@16260 = b40167f40c0100fd</action>
        <action>maincpu.mq@16268 = 660253100c0100fe</action>
        <action>maincpu.mq@16270 = 660252100c0100fb</action>
        <action>maincpu.mq@16278 = 6604041000100c01</action>
        <action>maincpu.mq@16280 = 00f7660406100010</action>
        <action>maincpu.mq@16288 = 0c0100ef660a1010</action>
        <action>maincpu.mq@16290 = 4eb90000bf7a600c</action>
        <action>maincpu.mq@16298 = 0c0100df66064eb9</action>
        <action>maincpu.mq@162a0 = 0000befe60b20000</action>
        <!--
        16250 | 41f9 001f 1000 : lea    $1f1000.l,A0 // sound code address
        16256 | 4280           : clr.l  D0
        16258 | 1401           : move.b D1,D2
        1625a | 1239 0010 0003 : move.b $100003.l,D1 // read input
        16260 | b401           : cmp.b  D1,D2
        16262 | 67f4           : beq    $16258
        16264 | 0c01 00fd      : cmpi.b #-$3,D1
        16268 | 6602           : bne    $1626c
        1626a | 5310           : subq.b #1,(A0)      // decrease code -01
        1626c | 0c01 00fe      : cmpi.b #-$2,D1
        16270 | 6602           : bne    $16274
        16272 | 5210           : addq.b #1,(A0)      // increase code +01
        16274 | 0c01 00fb      : cmpi.b #-$5,D1
        16278 | 6604           : bne    $1627e
        1627a | 0410 0010      : subi.b #$10,(A0)    // decrease code -10
        1627e | 0c01 00f7      : cmpi.b #-$9,D1
        16282 | 6604           : bne    $16288
        16284 | 0610 0010      : addi.b #$10,(A0)    // increase code +10
        16288 | 0c01 00ef      : cmpi.b #-$11,D1
        1628c | 660a           : bne    $16298
        1628e | 1010           : move.b (A0),D0      // play sound
        16290 | 4eb9 0000 bf7a : jsr    $bf7a.l
        16296 | 600c           : bra    $162a4
        16298 | 0c01 00df      : cmpi.b #-$21,D1
        1629c | 6606           : bne    $162a4
        1629e | 4eb9 0000 befe : jsr    $befe.l      // stop sound
        162a4 | 60b2           : bra    $16258
        -->
    </script>
    <script state="run">
        <output format="----- thunder dragon 2 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@1f1000</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mq@0bfbc = 6100ff4033fc0003</action>
        <action>maincpu.mq@16250 = 0000000000000000</action>
        <action>maincpu.mq@16258 = 0000000000000000</action>
        <action>maincpu.mq@16260 = 0000000000000000</action>
        <action>maincpu.mq@16268 = 0000000000000000</action>
        <action>maincpu.mq@16270 = 0000000000000000</action>
        <action>maincpu.mq@16278 = 0000000000000000</action>
        <action>maincpu.mq@16280 = 0000000000000000</action>
        <action>maincpu.mq@16288 = 0000000000000000</action>
        <action>maincpu.mq@16290 = 0000000000000000</action>
        <action>maincpu.mq@16298 = 0000000000000000</action>
        <action>maincpu.mq@162a0 = 0000000000000000</action>
    </script>
</cheat>
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[tdragon2]+ Thunder Dragon 2/Big Bang

Post by jman »

tdragon2.xml

Code: Select all

<!-- Thunder Dragon 2 (9th Nov. 1993) -->
<mamecheat version="1">

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

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@7D21 = 00</action> <!-- P1 mainshot -->
            <action>maincpu.mb@7D47 = 00</action> <!-- P1 mainshot -->
            <action>maincpu.mb@7E8F = 00</action> <!-- missile -->
        </script>
        <script state="off">
            <action>maincpu.mb@7D21 = 30</action>
            <action>maincpu.mb@7D47 = 06</action>
            <action>maincpu.mb@7E8F = 40</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x00008000">01 (slow)</item>
            <item value="0x00038000">02       </item>
            <item value="0x00068000">03       </item>
            <item value="0x00098000">04       </item>
            <item value="0x000c8000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@06F2A = 4EB9000162004E71</action>
            <action>maincpu.mq@16200 = 243C000000002230</action>
            <action>maincpu.mq@16208 = 000067066A024482</action>
            <action>maincpu.mq@16210 = 2202243C00000000</action>
            <action>maincpu.mq@16218 = 2030000467066A02</action>
            <action>maincpu.mq@16220 = 448220024E750000</action>
            <!--
            16200 | 243C xxxx xxxx : move.l  #$xxxx, D2       // y position
            16206 | 2230 0000      : move.l  (A0,D0.w), D1
            1620A | 6706           : beq     $16212
            1620C | 6A02           : bpl     $16210
            1620E | 4482           : neg.l   D2
            16210 | 2202           : move.l  D2, D1
            16212 | 243C xxxx xxxx : move.l  #$xxxx, D2       // x position
            16218 | 2030 0004      : move.l  ($4,A0,D0.w), D0
            1621C | 6706           : beq     $16224
            1621E | 6A02           : bpl     $16222
            16220 | 4482           : neg.l   D2
            16222 | 2002           : move.l  D2, D0
            16224 | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@16202 = param</action>
            <action>maincpu.md@16214 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@06F2A = 2230000020300004</action>
            <action>maincpu.mq@16200 = 0000000000000000</action>
            <action>maincpu.mq@16208 = 0000000000000000</action>
            <action>maincpu.mq@16210 = 0000000000000000</action>
            <action>maincpu.mq@16218 = 0000000000000000</action>
            <action>maincpu.mq@16220 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x00088000">01 (slow)</item>
            <item value="0x00108000">02       </item>
            <item value="0x00188000">03       </item>
            <item value="0x00208000">04       </item>
            <item value="0x00288000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@07DFE = 4EB9000162304E71</action>
            <action>maincpu.mq@16230 = 297C000000000020</action>
            <action>maincpu.mq@16238 = 588B295B00244E75</action>
            <!--
            16230 | 297C xxxx xxxx 0020 : move.l  #$xxxx, ($20,A4)
            16238 | 588B                : addq.l  #4, A3
            1623A | 295B 0024           : move.l  (A3)+, ($24,A4)
            1623E | 4E75                : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@16232 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@07DFE = 295B0020295B0024</action>
            <action>maincpu.mq@16230 = 0000000000000000</action>
            <action>maincpu.mq@16238 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="main shot">
        <parameter>
            <item value="0x6028">multi way</item>
            <item value="0x4e71">straight </item>
        </parameter>
        <script state="change">
            <action                          >maincpu.mw@7CD4 = param</action>
            <action condition="param == 4e71">maincpu.mw@7D92 = 4E71 </action>
            <action condition="param == 6028">maincpu.mw@7D92 = 6016 </action>
        </script>
        <script state="off">
            <action>maincpu.mw@7CD4 = 6728</action>
            <action>maincpu.mw@7D92 = 6716</action>
        </script>
    </cheat>

    <cheat desc="missile">
        <parameter>
            <item value="0x6002">straight</item>
            <item value="0x4e71">homing  </item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@7EB8 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@7EB8 = 6602</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mq@0BFC0 = 4EF9000162404E71</action>
            <action>maincpu.mq@16240 = 41F9001F00004280</action>
            <action>maincpu.mq@16248 = 1401123900100003</action>
            <action>maincpu.mq@16250 = B40167F40C0100FD</action>
            <action>maincpu.mq@16258 = 660253100C0100FE</action>
            <action>maincpu.mq@16260 = 660252100C0100FB</action>
            <action>maincpu.mq@16268 = 6604041000100C01</action>
            <action>maincpu.mq@16270 = 00F7660406100010</action>
            <action>maincpu.mq@16278 = 0C0100EF660A1010</action>
            <action>maincpu.mq@16280 = 4EB90000BF7A600C</action>
            <action>maincpu.mq@16288 = 0C0100DF66064EB9</action>
            <action>maincpu.mq@16290 = 0000BEFE60B20000</action>
            <!--
            16240 | 41F9 001F 0000 : lea     $1f0000.l, A0 // sound code address
            16246 | 4280           : clr.l   D0
            16248 | 1401           : move.b  D1, D2
            1624A | 1239 0010 0003 : move.b  $100003.l, D1 // read input
            16250 | B401           : cmp.b   D1, D2
            16252 | 67F4           : beq     $16248
            16254 | 0C01 00FD      : cmpi.b  #-$3, D1
            16258 | 6602           : bne     $1625c
            1625A | 5310           : subq.b  #1, (A0)      // decrease code -01
            1625C | 0C01 00FE      : cmpi.b  #-$2, D1
            16260 | 6602           : bne     $16264
            16262 | 5210           : addq.b  #1, (A0)      // increase code +01
            16264 | 0C01 00FB      : cmpi.b  #-$5, D1
            16268 | 6604           : bne     $1626e
            1626A | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            1626E | 0C01 00F7      : cmpi.b  #-$9, D1
            16272 | 6604           : bne     $16278
            16274 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            16278 | 0C01 00EF      : cmpi.b  #-$11, D1
            1627C | 660A           : bne     $16288
            1627E | 1010           : move.b  (A0), D0      // play sound
            16280 | 4EB9 0000 BF7A : jsr     $bf7a.l
            16286 | 600C           : bra     $16294
            16288 | 0C01 00DF      : cmpi.b  #-$21, D1
            1628C | 6606           : bne     $16294
            1628E | 4EB9 0000 BEFE : jsr     $befe.l       // stop sound
            16294 | 60B2           : bra     $16248
            -->
        </script>
        <script state="run">
            <output format="----- thunder dragon 2 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@1F0000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@0BFC0 = 33FC0003001F9060</action>
            <action>maincpu.mq@16240 = 0000000000000000</action>
            <action>maincpu.mq@16248 = 0000000000000000</action>
            <action>maincpu.mq@16250 = 0000000000000000</action>
            <action>maincpu.mq@16258 = 0000000000000000</action>
            <action>maincpu.mq@16260 = 0000000000000000</action>
            <action>maincpu.mq@16268 = 0000000000000000</action>
            <action>maincpu.mq@16270 = 0000000000000000</action>
            <action>maincpu.mq@16278 = 0000000000000000</action>
            <action>maincpu.mq@16280 = 0000000000000000</action>
            <action>maincpu.mq@16288 = 0000000000000000</action>
            <action>maincpu.mq@16290 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
tdragon2a.xml

Code: Select all

<!-- Thunder Dragon 2 (1st Oct. 1993) -->
<mamecheat version="1">

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

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@7D11 = 00</action> <!-- P1 mainshot -->
            <action>maincpu.mb@7D37 = 00</action> <!-- P1 mainshot -->
            <action>maincpu.mb@7E7F = 00</action> <!-- missile -->
        </script>
        <script state="off">
            <action>maincpu.mb@7D11 = 30</action>
            <action>maincpu.mb@7D37 = 06</action>
            <action>maincpu.mb@7E7F = 40</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x00008000">01 (slow)</item>
            <item value="0x00038000">02       </item>
            <item value="0x00068000">03       </item>
            <item value="0x00098000">04       </item>
            <item value="0x000c8000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@06F1A = 4EB9000161A04E71</action>
            <action>maincpu.mq@161A0 = 243C000000002230</action>
            <action>maincpu.mq@161A8 = 000067066A024482</action>
            <action>maincpu.mq@161B0 = 2202243C00000000</action>
            <action>maincpu.mq@161B8 = 2030000467066A02</action>
            <action>maincpu.mq@161C0 = 448220024E750000</action>
            <!--
            161A0 | 243C xxxx xxxx : move.l  #$xxxx, D2       // y position
            161A6 | 2230 0000      : move.l  (A0,D0.w), D1
            161AA | 6706           : beq     $161b2
            161AC | 6A02           : bpl     $161b0
            161AE | 4482           : neg.l   D2
            161B0 | 2202           : move.l  D2, D1
            161B2 | 243C xxxx xxxx : move.l  #$xxxx, D2       // x position
            161B8 | 2030 0004      : move.l  ($4,A0,D0.w), D0
            161BC | 6706           : beq     $161c4
            161BE | 6A02           : bpl     $161c2
            161C0 | 4482           : neg.l   D2
            161C2 | 2002           : move.l  D2, D0
            161C4 | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@161A2 = param</action>
            <action>maincpu.md@161B4 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@06F1A = 2230000020300004</action>
            <action>maincpu.mq@161A0 = 0000000000000000</action>
            <action>maincpu.mq@161A8 = 0000000000000000</action>
            <action>maincpu.mq@161B0 = 0000000000000000</action>
            <action>maincpu.mq@161B8 = 0000000000000000</action>
            <action>maincpu.mq@161C0 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x00088000">01 (slow)</item>
            <item value="0x00108000">02       </item>
            <item value="0x00188000">03       </item>
            <item value="0x00208000">04       </item>
            <item value="0x00288000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@07DEE = 4EB9000161D04E71</action>
            <action>maincpu.mq@161D0 = 297C000000000020</action>
            <action>maincpu.mq@161D8 = 588B295B00244E75</action>
            <!--
            161D0 | 297C xxxx xxxx 0020 : move.l  #$xxxx, ($20,A4)
            161D8 | 588B                : addq.l  #4, A3
            161DA | 295B 0024           : move.l  (A3)+, ($24,A4)
            161DE | 4E75                : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@161D2 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@07DEE = 295B0020295B0024</action>
            <action>maincpu.mq@161D0 = 0000000000000000</action>
            <action>maincpu.mq@161D8 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="main shot">
        <parameter>
            <item value="0x6028">multi way</item>
            <item value="0x4e71">straight </item>
        </parameter>
        <script state="change">
            <action                          >maincpu.mw@7CC4 = param</action>
            <action condition="param == 4e71">maincpu.mw@7D82 = 4E71 </action>
            <action condition="param == 6028">maincpu.mw@7D82 = 6016 </action>
        </script>
        <script state="off">
            <action>maincpu.mw@7CC4 = 6728</action>
            <action>maincpu.mw@7D82 = 6716</action>
        </script>
    </cheat>

    <cheat desc="missile">
        <parameter>
            <item value="0x6002">straight</item>
            <item value="0x4e71">homing  </item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@7EA8 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@7EA8 = 6602</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mq@0BFB0 = 4EF9000161E04E71</action>
            <action>maincpu.mq@161E0 = 41F9001F00004280</action>
            <action>maincpu.mq@161E8 = 1401123900100003</action>
            <action>maincpu.mq@161F0 = B40167F40C0100FD</action>
            <action>maincpu.mq@161F8 = 660253100C0100FE</action>
            <action>maincpu.mq@16200 = 660252100C0100FB</action>
            <action>maincpu.mq@16208 = 6604041000100C01</action>
            <action>maincpu.mq@16210 = 00F7660406100010</action>
            <action>maincpu.mq@16218 = 0C0100EF660A1010</action>
            <action>maincpu.mq@16220 = 4EB90000BF6A600C</action>
            <action>maincpu.mq@16228 = 0C0100DF66064EB9</action>
            <action>maincpu.mq@16230 = 0000BEEE60B20000</action>
            <!--
            161E0 | 41F9 001F 0000 : lea     $1f0000.l, A0 // sound code address
            161E6 | 4280           : clr.l   D0
            161E8 | 1401           : move.b  D1, D2
            161EA | 1239 0010 0003 : move.b  $100003.l, D1 // read input
            161F0 | B401           : cmp.b   D1, D2
            161F2 | 67F4           : beq     $161e8
            161F4 | 0C01 00FD      : cmpi.b  #-$3, D1
            161F8 | 6602           : bne     $161fc
            161FA | 5310           : subq.b  #1, (A0)      // decrease code -01
            161FC | 0C01 00FE      : cmpi.b  #-$2, D1
            16200 | 6602           : bne     $16204
            16202 | 5210           : addq.b  #1, (A0)      // increase code +01
            16204 | 0C01 00FB      : cmpi.b  #-$5, D1
            16208 | 6604           : bne     $1620e
            1620A | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            1620E | 0C01 00F7      : cmpi.b  #-$9, D1
            16212 | 6604           : bne     $16218
            16214 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            16218 | 0C01 00EF      : cmpi.b  #-$11, D1
            1621C | 660A           : bne     $16228
            1621E | 1010           : move.b  (A0), D0      // play sound
            16220 | 4EB9 0000 BF6A : jsr     $bf6a.l
            16226 | 600C           : bra     $16234
            16228 | 0C01 00DF      : cmpi.b  #-$21, D1
            1622C | 6606           : bne     $16234
            1622E | 4EB9 0000 BEEE : jsr     $beee.l       // stop sound
            16234 | 60B2           : bra     $161e8
            -->
        </script>
        <script state="run">
            <output format="----- thunder dragon 2 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@1F0000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@0BFB0 = 33FC0003001F9060</action>
            <action>maincpu.mq@161E0 = 0000000000000000</action>
            <action>maincpu.mq@161E8 = 0000000000000000</action>
            <action>maincpu.mq@161F0 = 0000000000000000</action>
            <action>maincpu.mq@161F8 = 0000000000000000</action>
            <action>maincpu.mq@16200 = 0000000000000000</action>
            <action>maincpu.mq@16208 = 0000000000000000</action>
            <action>maincpu.mq@16210 = 0000000000000000</action>
            <action>maincpu.mq@16218 = 0000000000000000</action>
            <action>maincpu.mq@16220 = 0000000000000000</action>
            <action>maincpu.mq@16228 = 0000000000000000</action>
            <action>maincpu.mq@16230 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
bigbang.xml

Code: Select all

<!-- Big Bang (9th Nov. 1993, set 1) -->
<mamecheat version="1">

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

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@743B = 00</action> <!-- P1 mainshot -->
            <action>maincpu.mb@7461 = 00</action> <!-- P1 mainshot -->
            <action>maincpu.mb@75A9 = 00</action> <!-- missile -->
        </script>
        <script state="off">
            <action>maincpu.mb@743B = 30</action>
            <action>maincpu.mb@7461 = 06</action>
            <action>maincpu.mb@75A9 = 40</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x00008000">01 (slow)</item>
            <item value="0x00038000">02       </item>
            <item value="0x00068000">03       </item>
            <item value="0x00098000">04       </item>
            <item value="0x000c8000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@06644 = 4EB9000159204E71</action>
            <action>maincpu.mq@15920 = 243C000000002230</action>
            <action>maincpu.mq@15928 = 000067066A024482</action>
            <action>maincpu.mq@15930 = 2202243C00000000</action>
            <action>maincpu.mq@15938 = 2030000467066A02</action>
            <action>maincpu.mq@15940 = 448220024E750000</action>
            <!--
            15920 | 243C xxxx xxxx : move.l  #$xxxx, D2       // y position
            15926 | 2230 0000      : move.l  (A0,D0.w), D1
            1592A | 6706           : beq     $15932
            1592C | 6A02           : bpl     $15930
            1592E | 4482           : neg.l   D2
            15930 | 2202           : move.l  D2, D1
            15932 | 243C xxxx xxxx : move.l  #$xxxx, D2       // x position
            15938 | 2030 0004      : move.l  ($4,A0,D0.w), D0
            1593C | 6706           : beq     $15944
            1593E | 6A02           : bpl     $15942
            15940 | 4482           : neg.l   D2
            15942 | 2002           : move.l  D2, D0
            15944 | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@15922 = param</action>
            <action>maincpu.md@15934 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@06644 = 2230000020300004</action>
            <action>maincpu.mq@15920 = 0000000000000000</action>
            <action>maincpu.mq@15928 = 0000000000000000</action>
            <action>maincpu.mq@15930 = 0000000000000000</action>
            <action>maincpu.mq@15938 = 0000000000000000</action>
            <action>maincpu.mq@15940 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x00088000">01 (slow)</item>
            <item value="0x00108000">02       </item>
            <item value="0x00188000">03       </item>
            <item value="0x00208000">04       </item>
            <item value="0x00288000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@07518 = 4EB9000159504E71</action>
            <action>maincpu.mq@15950 = 297C000000000020</action>
            <action>maincpu.mq@15958 = 588B295B00244E75</action>
            <!--
            15950 | 297C xxxx xxxx 0020 : move.l  #$xxxx, ($20,A4)
            15958 | 588B                : addq.l  #4, A3
            1595A | 295B 0024           : move.l  (A3)+, ($24,A4)
            1595E | 4E75                : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@15952 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@07518 = 295B0020295B0024</action>
            <action>maincpu.mq@15950 = 0000000000000000</action>
            <action>maincpu.mq@15958 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="main shot">
        <parameter>
            <item value="0x6028">multi way</item>
            <item value="0x4e71">straight </item>
        </parameter>
        <script state="change">
            <action                          >maincpu.mw@73EE = param</action>
            <action condition="param == 4e71">maincpu.mw@74AC = 4E71 </action>
            <action condition="param == 6028">maincpu.mw@74AC = 6016 </action>
        </script>
        <script state="off">
            <action>maincpu.mw@73EE = 6728</action>
            <action>maincpu.mw@74AC = 6716</action>
        </script>
    </cheat>

    <cheat desc="missile">
        <parameter>
            <item value="0x6002">straight</item>
            <item value="0x4e71">homing  </item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@75D2 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@75D2 = 6602</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mq@0B6DA = 4EF9000159604E71</action>
            <action>maincpu.mq@15960 = 41F9001F00004280</action>
            <action>maincpu.mq@15968 = 1401123900100003</action>
            <action>maincpu.mq@15970 = B40167F40C0100FD</action>
            <action>maincpu.mq@15978 = 660253100C0100FE</action>
            <action>maincpu.mq@15980 = 660252100C0100FB</action>
            <action>maincpu.mq@15988 = 6604041000100C01</action>
            <action>maincpu.mq@15990 = 00F7660406100010</action>
            <action>maincpu.mq@15998 = 0C0100EF660A1010</action>
            <action>maincpu.mq@159A0 = 4EB90000B694600C</action>
            <action>maincpu.mq@159A8 = 0C0100DF66064EB9</action>
            <action>maincpu.mq@159B0 = 0000B61860B20000</action>
            <!--
            16240 | 41F9 001F 0000 : lea     $1f0000.l, A0 // sound code address
            16246 | 4280           : clr.l   D0
            16248 | 1401           : move.b  D1, D2
            1624A | 1239 0010 0003 : move.b  $100003.l, D1 // read input
            16250 | B401           : cmp.b   D1, D2
            16252 | 67F4           : beq     $16248
            16254 | 0C01 00FD      : cmpi.b  #-$3, D1
            16258 | 6602           : bne     $1625c
            1625A | 5310           : subq.b  #1, (A0)      // decrease code -01
            1625C | 0C01 00FE      : cmpi.b  #-$2, D1
            16260 | 6602           : bne     $16264
            16262 | 5210           : addq.b  #1, (A0)      // increase code +01
            16264 | 0C01 00FB      : cmpi.b  #-$5, D1
            16268 | 6604           : bne     $1626e
            1626A | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            1626E | 0C01 00F7      : cmpi.b  #-$9, D1
            16272 | 6604           : bne     $16278
            16274 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            16278 | 0C01 00EF      : cmpi.b  #-$11, D1
            1627C | 660A           : bne     $16288
            1627E | 1010           : move.b  (A0), D0      // play sound
            16280 | 4EB9 0000 B694 : jsr     $b694.l
            16286 | 600C           : bra     $16294
            16288 | 0C01 00DF      : cmpi.b  #-$21, D1
            1628C | 6606           : bne     $16294
            1628E | 4EB9 0000 B618 : jsr     $b618.l       // stop sound
            16294 | 60B2           : bra     $16248
            -->
        </script>
        <script state="run">
            <output format="----- big bang 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@1F0000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@0B6DA = 33FC0003001F9060</action>
            <action>maincpu.mq@15960 = 0000000000000000</action>
            <action>maincpu.mq@15968 = 0000000000000000</action>
            <action>maincpu.mq@15970 = 0000000000000000</action>
            <action>maincpu.mq@15978 = 0000000000000000</action>
            <action>maincpu.mq@15980 = 0000000000000000</action>
            <action>maincpu.mq@15988 = 0000000000000000</action>
            <action>maincpu.mq@15990 = 0000000000000000</action>
            <action>maincpu.mq@15998 = 0000000000000000</action>
            <action>maincpu.mq@159A0 = 0000000000000000</action>
            <action>maincpu.mq@159A8 = 0000000000000000</action>
            <action>maincpu.mq@159B0 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
bigbanga.xml

Code: Select all

<!-- Big Bang (9th Nov. 1993, set 2) -->
<mamecheat version="1">

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

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@744B = 00</action> <!-- P1 mainshot -->
            <action>maincpu.mb@7471 = 00</action> <!-- P1 mainshot -->
            <action>maincpu.mb@75B9 = 00</action> <!-- missile -->
        </script>
        <script state="off">
            <action>maincpu.mb@744B = 30</action>
            <action>maincpu.mb@7471 = 06</action>
            <action>maincpu.mb@75B9 = 40</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x00008000">01 (slow)</item>
            <item value="0x00038000">02       </item>
            <item value="0x00068000">03       </item>
            <item value="0x00098000">04       </item>
            <item value="0x000c8000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@06654 = 4EB9000159904E71</action>
            <action>maincpu.mq@15990 = 243C000000002230</action>
            <action>maincpu.mq@15998 = 000067066A024482</action>
            <action>maincpu.mq@159A0 = 2202243C00000000</action>
            <action>maincpu.mq@159A8 = 2030000467066A02</action>
            <action>maincpu.mq@159B0 = 448220024E750000</action>
            <!--
            15990 | 243C xxxx xxxx : move.l  #$xxxx, D2       // y position
            15996 | 2230 0000      : move.l  (A0,D0.w), D1
            1599A | 6706           : beq     $159a2
            1599C | 6A02           : bpl     $159a0
            1599E | 4482           : neg.l   D2
            159A0 | 2202           : move.l  D2, D1
            159A2 | 243C xxxx xxxx : move.l  #$xxxx, D2       // x position
            159A8 | 2030 0004      : move.l  ($4,A0,D0.w), D0
            159AC | 6706           : beq     $159b4
            159AE | 6A02           : bpl     $159b2
            159B0 | 4482           : neg.l   D2
            159B2 | 2002           : move.l  D2, D0
            159B4 | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@15992 = param</action>
            <action>maincpu.md@159A4 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@06654 = 2230000020300004</action>
            <action>maincpu.mq@15990 = 0000000000000000</action>
            <action>maincpu.mq@15998 = 0000000000000000</action>
            <action>maincpu.mq@159A0 = 0000000000000000</action>
            <action>maincpu.mq@159A8 = 0000000000000000</action>
            <action>maincpu.mq@159B0 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x00088000">01 (slow)</item>
            <item value="0x00108000">02       </item>
            <item value="0x00188000">03       </item>
            <item value="0x00208000">04       </item>
            <item value="0x00288000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@07528 = 4EB9000159C04E71</action>
            <action>maincpu.mq@159C0 = 297C000000000020</action>
            <action>maincpu.mq@159C8 = 588B295B00244E75</action>
            <!--
            159C0 | 297C xxxx xxxx 0020 : move.l  #$xxxx, ($20,A4)
            159C8 | 588B                : addq.l  #4, A3
            159CA | 295B 0024           : move.l  (A3)+, ($24,A4)
            159CE | 4E75                : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@159C2 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@07528 = 295B0020295B0024</action>
            <action>maincpu.mq@159C0 = 0000000000000000</action>
            <action>maincpu.mq@159C8 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="main shot">
        <parameter>
            <item value="0x6028">multi way</item>
            <item value="0x4e71">straight </item>
        </parameter>
        <script state="change">
            <action                          >maincpu.mw@73FE = param</action>
            <action condition="param == 4e71">maincpu.mw@74BC = 4E71 </action>
            <action condition="param == 6028">maincpu.mw@74BC = 6016 </action>
        </script>
        <script state="off">
            <action>maincpu.mw@73FE = 6728</action>
            <action>maincpu.mw@74BC = 6716</action>
        </script>
    </cheat>

    <cheat desc="missile">
        <parameter>
            <item value="0x6002">straight</item>
            <item value="0x4e71">homing  </item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@75E2 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@75E2 = 6602</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mq@0B6EA = 4EF9000159D04E71</action>
            <action>maincpu.mq@159D0 = 41F9001F00004280</action>
            <action>maincpu.mq@159D8 = 1401123900100003</action>
            <action>maincpu.mq@159E0 = B40167F40C0100FD</action>
            <action>maincpu.mq@159E8 = 660253100C0100FE</action>
            <action>maincpu.mq@159F0 = 660252100C0100FB</action>
            <action>maincpu.mq@159F8 = 6604041000100C01</action>
            <action>maincpu.mq@15A00 = 00F7660406100010</action>
            <action>maincpu.mq@15A08 = 0C0100EF660A1010</action>
            <action>maincpu.mq@15A10 = 4EB90000B6A4600C</action>
            <action>maincpu.mq@15A18 = 0C0100DF66064EB9</action>
            <action>maincpu.mq@15A20 = 0000B62860B20000</action>
            <!--
            159D0 | 41F9 001F 0000 : lea     $1f0000.l, A0 // sound code address
            159D6 | 4280           : clr.l   D0
            159D8 | 1401           : move.b  D1, D2
            159DA | 1239 0010 0003 : move.b  $100003.l, D1 // read input
            159E0 | B401           : cmp.b   D1, D2
            159E2 | 67F4           : beq     $159d8
            159E4 | 0C01 00FD      : cmpi.b  #-$3, D1
            159E8 | 6602           : bne     $159ec
            159EA | 5310           : subq.b  #1, (A0)      // decrease code -01
            159EC | 0C01 00FE      : cmpi.b  #-$2, D1
            159F0 | 6602           : bne     $159f4
            159F2 | 5210           : addq.b  #1, (A0)      // increase code +01
            159F4 | 0C01 00FB      : cmpi.b  #-$5, D1
            159F8 | 6604           : bne     $159fe
            159FA | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            159FE | 0C01 00F7      : cmpi.b  #-$9, D1
            15A02 | 6604           : bne     $15a08
            15A04 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            15A08 | 0C01 00EF      : cmpi.b  #-$11, D1
            15A0C | 660A           : bne     $15a18
            15A0E | 1010           : move.b  (A0), D0      // play sound
            15A10 | 4EB9 0000 B6A4 : jsr     $b6a4.l
            15A16 | 600C           : bra     $15a24
            15A18 | 0C01 00DF      : cmpi.b  #-$21, D1
            15A1C | 6606           : bne     $15a24
            15A1E | 4EB9 0000 B628 : jsr     $b628.l       // stop sound
            15A24 | 60B2           : bra     $16248
            -->
        </script>
        <script state="run">
            <output format="----- big bang 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@1F0000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@0B6EA = 33FC0003001F9060</action>
            <action>maincpu.mq@159D0 = 0000000000000000</action>
            <action>maincpu.mq@159D8 = 0000000000000000</action>
            <action>maincpu.mq@159E0 = 0000000000000000</action>
            <action>maincpu.mq@159E8 = 0000000000000000</action>
            <action>maincpu.mq@159F0 = 0000000000000000</action>
            <action>maincpu.mq@159F8 = 0000000000000000</action>
            <action>maincpu.mq@15A00 = 0000000000000000</action>
            <action>maincpu.mq@15A08 = 0000000000000000</action>
            <action>maincpu.mq@15A10 = 0000000000000000</action>
            <action>maincpu.mq@15A18 = 0000000000000000</action>
            <action>maincpu.mq@15A20 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
tdragon3h.xml

Code: Select all

<!-- Thunder Dragon 3 (bootleg of Thunder Dragon 2) -->
<mamecheat version="1">

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

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@7D11 = 00</action> <!-- P1 mainshot -->
            <action>maincpu.mb@7D37 = 00</action> <!-- P1 mainshot -->
            <action>maincpu.mb@7E7F = 00</action> <!-- missile -->
        </script>
        <script state="off">
            <action>maincpu.mb@7D11 = 30</action>
            <action>maincpu.mb@7D37 = 06</action>
            <action>maincpu.mb@7E7F = 40</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x00008000">01 (slow)</item>
            <item value="0x00038000">02       </item>
            <item value="0x00068000">03       </item>
            <item value="0x00098000">04       </item>
            <item value="0x000c8000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@06F1A = 4EB90005E3804E71</action>
            <action>maincpu.mq@5E380 = 243C000000002230</action>
            <action>maincpu.mq@5E388 = 000067066A024482</action>
            <action>maincpu.mq@5E390 = 2202243C00000000</action>
            <action>maincpu.mq@5E398 = 2030000467066A02</action>
            <action>maincpu.mq@5E3A0 = 448220024E750000</action>
            <!--
            5E380 | 243C xxxx xxxx : move.l  #$xxxx, D2       // y position
            5E386 | 2230 0000      : move.l  (A0,D0.w), D1
            5E38A | 6706           : beq     $5e392
            5E38C | 6A02           : bpl     $5e390
            5E38E | 4482           : neg.l   D2
            5E390 | 2202           : move.l  D2, D1
            5E392 | 243C xxxx xxxx : move.l  #$xxxx, D2       // x position
            5E398 | 2030 0004      : move.l  ($4,A0,D0.w), D0
            5E39C | 6706           : beq     $5e3a4
            5E39E | 6A02           : bpl     $5e3a2
            5E3A0 | 4482           : neg.l   D2
            5E3A2 | 2002           : move.l  D2, D0
            5E3A4 | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@5E382 = param</action>
            <action>maincpu.md@5E394 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@06F1A = 2230000020300004</action>
            <action>maincpu.mq@5E380 = 0000000000000000</action>
            <action>maincpu.mq@5E388 = 0000000000000000</action>
            <action>maincpu.mq@5E390 = 0000000000000000</action>
            <action>maincpu.mq@5E398 = 0000000000000000</action>
            <action>maincpu.mq@5E3A0 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x00088000">01 (slow)</item>
            <item value="0x00108000">02       </item>
            <item value="0x00188000">03       </item>
            <item value="0x00208000">04       </item>
            <item value="0x00288000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@07DEE = 4EB90005E3B04E71</action>
            <action>maincpu.mq@5E3B0 = 297C000000000020</action>
            <action>maincpu.mq@5E3B8 = 588B295B00244E75</action>
            <!--
            5E3B0 | 297C xxxx xxxx 0020 : move.l  #$xxxx, ($20,A4)
            5E3B8 | 588B                : addq.l  #4, A3
            5E3BA | 295B 0024           : move.l  (A3)+, ($24,A4)
            5E3BE | 4E75                : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@5E3B2 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@07DEE = 295B0020295B0024</action>
            <action>maincpu.mq@5E3B0 = 0000000000000000</action>
            <action>maincpu.mq@5E3B8 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="main shot">
        <parameter>
            <item value="0x6028">multi way</item>
            <item value="0x4e71">straight </item>
        </parameter>
        <script state="change">
            <action                          >maincpu.mw@7CC4 = param</action>
            <action condition="param == 4e71">maincpu.mw@7D82 = 4E71 </action>
            <action condition="param == 6028">maincpu.mw@7D82 = 6016 </action>
        </script>
        <script state="off">
            <action>maincpu.mw@7CC4 = 6728</action>
            <action>maincpu.mw@7D82 = 6716</action>
        </script>
    </cheat>

    <cheat desc="missile">
        <parameter>
            <item value="0x6002">straight</item>
            <item value="0x4e71">homing  </item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@7EA8 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@7EA8 = 6602</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mq@0BFB0 = 4EF90005E3C04E71</action>
            <action>maincpu.mq@5E3C0 = 41F9001F00004280</action>
            <action>maincpu.mq@5E3C8 = 1401123900100003</action>
            <action>maincpu.mq@5E3D0 = B40167F40C0100FD</action>
            <action>maincpu.mq@5E3D8 = 660253100C0100FE</action>
            <action>maincpu.mq@5E3E0 = 660252100C0100FB</action>
            <action>maincpu.mq@5E3E8 = 6604041000100C01</action>
            <action>maincpu.mq@5E3F0 = 00F7660406100010</action>
            <action>maincpu.mq@5E3F8 = 0C0100EF660A1010</action>
            <action>maincpu.mq@5E400 = 4EB90000BF6A600C</action>
            <action>maincpu.mq@5E408 = 0C0100DF66064EB9</action>
            <action>maincpu.mq@5E410 = 0000BEEE60B20000</action>
            <!--
            5E3C0 | 41F9 001F 0000 : lea     $1f0000.l, A0 // sound code address
            5E3C6 | 4280           : clr.l   D0
            5E3C8 | 1401           : move.b  D1, D2
            5E3CA | 1239 0010 0003 : move.b  $100003.l, D1 // read input
            5E3D0 | B401           : cmp.b   D1, D2
            5E3D2 | 67F4           : beq     $5e3c8
            5E3D4 | 0C01 00FD      : cmpi.b  #-$3, D1
            5E3D8 | 6602           : bne     $5e3dc
            5E3DA | 5310           : subq.b  #1, (A0)      // decrease code -01
            5E3DC | 0C01 00FE      : cmpi.b  #-$2, D1
            5E3E0 | 6602           : bne     $5e3e4
            5E3E2 | 5210           : addq.b  #1, (A0)      // increase code +01
            5E3E4 | 0C01 00FB      : cmpi.b  #-$5, D1
            5E3E8 | 6604           : bne     $5e3ee
            5E3EA | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            5E3EE | 0C01 00F7      : cmpi.b  #-$9, D1
            5E3F2 | 6604           : bne     $5e3f8
            5E3F4 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            5E3F8 | 0C01 00EF      : cmpi.b  #-$11, D1
            5E3FC | 660A           : bne     $5e408
            5E3FE | 1010           : move.b  (A0), D0      // play sound
            5E400 | 4EB9 0000 BF6A : jsr     $bf6a.l
            5E406 | 600C           : bra     $5e414
            5E408 | 0C01 00DF      : cmpi.b  #-$21, D1
            5E40C | 6606           : bne     $5e414
            5E40E | 4EB9 0000 BEEE : jsr     $beee.l       // stop sound
            5E414 | 60B2           : bra     $5e3c8
            -->
        </script>
        <script state="run">
            <output format="----- thunder dragon 3 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@1F0000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@0BFB0 = 33FC0003001F9060</action>
            <action>maincpu.mq@5E3C0 = 0000000000000000</action>
            <action>maincpu.mq@5E3C8 = 0000000000000000</action>
            <action>maincpu.mq@5E3D0 = 0000000000000000</action>
            <action>maincpu.mq@5E3D8 = 0000000000000000</action>
            <action>maincpu.mq@5E3E0 = 0000000000000000</action>
            <action>maincpu.mq@5E3E8 = 0000000000000000</action>
            <action>maincpu.mq@5E3F0 = 0000000000000000</action>
            <action>maincpu.mq@5E3F8 = 0000000000000000</action>
            <action>maincpu.mq@5E400 = 0000000000000000</action>
            <action>maincpu.mq@5E408 = 0000000000000000</action>
            <action>maincpu.mq@5E410 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
"(select)main shot", "(select)missile" : Added new. Both players get the same weapon though.
Post Reply