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="<< sound code %02X >>" 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="<< sound code %02X >>" 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="<< sound code %02X >>" 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="<< sound code %02X >>" 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>