stdragon.xml
Code: Select all
<!-- Saint Dragon (set 1) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mw@2FC6 = 6004</action> <!-- bullet -->
<action>maincpu.mw@4B26 = 6008</action> <!-- enemy -->
<action>maincpu.mw@4CB0 = 4E75</action> <!-- background -->
</script>
<script state="off">
<action>maincpu.mw@2FC6 = 6604</action>
<action>maincpu.mw@4B26 = 6608</action>
<action>maincpu.mw@4CB0 = 204E</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@1891 = 01</action> <!-- normal shot -->
<action>maincpu.mb@1947 = 01</action> <!-- fire -->
<action>maincpu.mb@1A27 = 01</action> <!-- laser -->
<action>maincpu.mb@1B11 = 01</action> <!-- turret -->
<action>maincpu.mb@1C11 = 01</action> <!-- bound -->
</script>
<script state="off">
<action>maincpu.mb@1891 = 28</action>
<action>maincpu.mb@1947 = 32</action>
<action>maincpu.mb@1A27 = 32</action>
<action>maincpu.mb@1B11 = 14</action>
<action>maincpu.mb@1C11 = 14</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x00008000">01 (slow)</item>
<item value="0x00020000">02 </item>
<item value="0x00038000">03 </item>
<item value="0x00040000">04 </item>
<item value="0x00058000">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.mq@0FD8 = 4EB90000CB704E71</action> <!-- x position -->
<action>maincpu.mq@1004 = 4EB90000CB7C4E71</action> <!-- y position -->
<action>maincpu.mq@CB70 = 6116DFA800103E28</action>
<action>maincpu.mq@CB78 = 00104E75610ADFA8</action>
<action>maincpu.mq@CB80 = 00143E2800144E75</action>
<action>maincpu.mq@CB88 = 4A39000F1A026710</action>
<action>maincpu.mq@CB90 = 203C000000004A87</action>
<action>maincpu.mq@CB98 = 67066A0244802E00</action>
<action>maincpu.mq@CBA0 = 4E75000000000000</action>
<!--
CB70 | 6116 : bsr $cb88 // x position
CB72 | DFA8 0010 : add.l D7, ($10,A0)
CB76 | 3E28 0010 : move.w ($10,A0), D7
CB7A | 4E75 : rts
CB7C | 610A : bsr $cb88 // y position
CB7E | DFA8 0014 : add.l D7, ($14,A0)
CB82 | 3E28 0014 : move.w ($14,A0), D7
CB86 | 4E75 : rts
CB88 | 4A39 000F 1A02 : tst.b $f1a02.l // check auto moving flag
CB8E | 6710 : beq $cba0
CB90 | 203C xxxx xxxx : move.l #$xxxx, D0
CB96 | 4A87 : tst.l D7
CB98 | 6706 : beq $cba0
CB9A | 6A02 : bpl $cb9e
CB9C | 4480 : neg.l D0
CB9E | 2E00 : move.l D0, D7
CBA0 | 4E75 : rts
-->
</script>
<script state="change">
<action>maincpu.md@CB92 = param</action>
</script>
<script state="off">
<action>maincpu.mq@0FD8 = DFA800103E280010</action>
<action>maincpu.mq@1004 = DFA800143E280014</action>
<action>maincpu.mq@CB70 = 0000000000000000</action>
<action>maincpu.mq@CB78 = 0000000000000000</action>
<action>maincpu.mq@CB80 = 0000000000000000</action>
<action>maincpu.mq@CB88 = 0000000000000000</action>
<action>maincpu.mq@CB90 = 0000000000000000</action>
<action>maincpu.mq@CB98 = 0000000000000000</action>
<action>maincpu.mq@CBA0 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="bullet speed - main shot">
<parameter>
<item value="0x00040000">01 (slow)</item>
<item value="0x00080000">02 </item>
<item value="0x000c0000">03 </item>
<item value="0x00100000">04 </item>
<item value="0x00140000">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.mq@18F6 = 4EB90000CBB04E71</action>
<action>maincpu.mq@CBB0 = 584B297C00000000</action>
<action>maincpu.mq@CBB8 = 0020295B00244E75</action>
<!--
CBB0 | 584B : addq.w #4, A3
CBB2 | 297C xxxx xxxx 0020 : move.l #$xxxx, ($20,A4)
CBBA | 295B 0024 : move.l (A3)+, ($24,A4)
CBBE | 4E75 : rts
-->
</script>
<script state="change">
<action>maincpu.md@CBB4 = param</action>
</script>
<script state="off">
<action>maincpu.mq@18F6 = 295B0020295B0024</action>
<action>maincpu.mq@CBB0 = 0000000000000000</action>
<action>maincpu.mq@CBB8 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="penetration bullet - main shot">
<script state="on">
<action>maincpu.mw@4AEC = 6004</action>
</script>
<script state="off">
<action>maincpu.mw@4AEC = 4255</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- you can't stop some sfxs (code 0x10 or later) by sound stop button -->
<comment>set "skip rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mq@6976 = 4EF90000CBC07E01</action>
<action>maincpu.mq@CBC0 = 41F9000F00004EB8</action>
<action>maincpu.mq@CBC8 = 23CC140112390008</action>
<action>maincpu.mq@CBD0 = 0003B40167F00C01</action>
<action>maincpu.mq@CBD8 = 00FD660253100C01</action>
<action>maincpu.mq@CBE0 = 00FE660252100C01</action>
<action>maincpu.mq@CBE8 = 00FB660404100010</action>
<action>maincpu.mq@CBF0 = 0C0100F766040610</action>
<action>maincpu.mq@CBF8 = 00100C0100EF660A</action>
<action>maincpu.mq@CC00 = 203C00FF00008010</action>
<action>maincpu.mq@CC08 = 60080C0100DF6606</action>
<action>maincpu.mq@CC10 = 42804EB8237860AE</action>
<!--
CBC0 | 41F9 000F 0000 : lea $f0000.l, A0 // sound code address
CBC6 | 4EB8 23CC : jsr $23cc.w // check sound code
CBCA | 1401 : move.b D1, D2
CBCC | 1239 0008 0003 : move.b $80003.l, D1 // read input
CBD2 | B401 : cmp.b D1, D2
CBD4 | 67F0 : beq $cbc6
CBD6 | 0C01 00FD : cmpi.b #-$3, D1
CBDA | 6602 : bne $cbde
CBDC | 5310 : subq.b #1, (A0) // decrease code -01
CBDE | 0C01 00FE : cmpi.b #-$2, D1
CBE2 | 6602 : bne $cbe6
CBE4 | 5210 : addq.b #1, (A0) // increase code +01
CBE6 | 0C01 00FB : cmpi.b #-$5, D1
CBEA | 6604 : bne $cbf0
CBEC | 0410 0010 : subi.b #$10, (A0) // decrease code -10
CBF0 | 0C01 00F7 : cmpi.b #-$9, D1
CBF4 | 6604 : bne $cbfa
CBF6 | 0610 0010 : addi.b #$10, (A0) // increase code +10
CBFA | 0C01 00EF : cmpi.b #-$11, D1
CBFE | 660A : bne $cc0a
CC00 | 203C 00FF 0000 : move.l #$ff0000, D0 // play sound
CC06 | 8010 : or.b (A0), D0
CC08 | 6008 : bra $cc12
CC0A | 0C01 00DF : cmpi.b #-$21, D1
CC0E | 6606 : bne $cc16
CC10 | 4280 : clr.l D0 // stop sound
CC12 | 4EB8 2378 : jsr $2378.w
CC16 | 60AE : bra $cbc6
-->
</script>
<script state="run">
<output format="----- saint 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 %2.2X >>" line="19" align="center" >
<argument>maincpu.pb@F0000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mq@6976 = 2C3C0000505E7E01</action>
<action>maincpu.mq@CBC0 = 0000000000000000</action>
<action>maincpu.mq@CBC8 = 0000000000000000</action>
<action>maincpu.mq@CBD0 = 0000000000000000</action>
<action>maincpu.mq@CBD8 = 0000000000000000</action>
<action>maincpu.mq@CBE0 = 0000000000000000</action>
<action>maincpu.mq@CBE8 = 0000000000000000</action>
<action>maincpu.mq@CBF0 = 0000000000000000</action>
<action>maincpu.mq@CBF8 = 0000000000000000</action>
<action>maincpu.mq@CC00 = 0000000000000000</action>
<action>maincpu.mq@CC08 = 0000000000000000</action>
<action>maincpu.mq@CC10 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="skip rom check">
<script state="on">
<action>maincpu.mw@043A = 6024</action> <!-- skip rom check -->
<action>maincpu.mw@6892 = 0001</action> <!-- skip dip switch display -->
</script>
<script state="off">
<action>maincpu.mw@043A = 7004</action>
<action>maincpu.mw@6892 = 0230</action>
</script>
</cheat>
</mamecheat>
stdragona.xml
Code: Select all
<!-- Saint Dragon (set 2) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mw@2FC0 = 6004</action> <!-- bullet -->
<action>maincpu.mw@4B20 = 6008</action> <!-- enemy -->
<action>maincpu.mw@4CAA = 4E75</action> <!-- background -->
</script>
<script state="off">
<action>maincpu.mw@2FC0 = 6604</action>
<action>maincpu.mw@4B20 = 6608</action>
<action>maincpu.mw@4CAA = 204E</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@188B = 01</action> <!-- normal shot -->
<action>maincpu.mb@1941 = 01</action> <!-- fire -->
<action>maincpu.mb@1A21 = 01</action> <!-- laser -->
<action>maincpu.mb@1B0B = 01</action> <!-- turret -->
<action>maincpu.mb@1C0B = 01</action> <!-- bound -->
</script>
<script state="off">
<action>maincpu.mb@188B = 28</action>
<action>maincpu.mb@1941 = 32</action>
<action>maincpu.mb@1A21 = 32</action>
<action>maincpu.mb@1B0B = 14</action>
<action>maincpu.mb@1C0B = 14</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x00008000">01 (slow)</item>
<item value="0x00020000">02 </item>
<item value="0x00038000">03 </item>
<item value="0x00040000">04 </item>
<item value="0x00058000">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.mq@0FD2 = 4EB90000CB704E71</action> <!-- x position -->
<action>maincpu.mq@0FFE = 4EB90000CB7C4E71</action> <!-- y position -->
<action>maincpu.mq@CB70 = 6116DFA800103E28</action>
<action>maincpu.mq@CB78 = 00104E75610ADFA8</action>
<action>maincpu.mq@CB80 = 00143E2800144E75</action>
<action>maincpu.mq@CB88 = 4A39000F1A026710</action>
<action>maincpu.mq@CB90 = 203C000000004A87</action>
<action>maincpu.mq@CB98 = 67066A0244802E00</action>
<action>maincpu.mq@CBA0 = 4E75000000000000</action>
<!--
CB70 | 6116 : bsr $cb88 // x position
CB72 | DFA8 0010 : add.l D7, ($10,A0)
CB76 | 3E28 0010 : move.w ($10,A0), D7
CB7A | 4E75 : rts
CB7C | 610A : bsr $cb88 // y position
CB7E | DFA8 0014 : add.l D7, ($14,A0)
CB82 | 3E28 0014 : move.w ($14,A0), D7
CB86 | 4E75 : rts
CB88 | 4A39 000F 1A02 : tst.b $f1a02.l // check auto moving flag
CB8E | 6710 : beq $cba0
CB90 | 203C xxxx xxxx : move.l #$xxxx, D0
CB96 | 4A87 : tst.l D7
CB98 | 6706 : beq $cba0
CB9A | 6A02 : bpl $cb9e
CB9C | 4480 : neg.l D0
CB9E | 2E00 : move.l D0, D7
CBA0 | 4E75 : rts
-->
</script>
<script state="change">
<action>maincpu.md@CB92 = param</action>
</script>
<script state="off">
<action>maincpu.mq@0FD2 = DFA800103E280010</action>
<action>maincpu.mq@0FFE = DFA800143E280014</action>
<action>maincpu.mq@CB70 = 0000000000000000</action>
<action>maincpu.mq@CB78 = 0000000000000000</action>
<action>maincpu.mq@CB80 = 0000000000000000</action>
<action>maincpu.mq@CB88 = 0000000000000000</action>
<action>maincpu.mq@CB90 = 0000000000000000</action>
<action>maincpu.mq@CB98 = 0000000000000000</action>
<action>maincpu.mq@CBA0 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="bullet speed - main shot">
<parameter>
<item value="0x00040000">01 (slow)</item>
<item value="0x00080000">02 </item>
<item value="0x000c0000">03 </item>
<item value="0x00100000">04 </item>
<item value="0x00140000">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.mq@18F0 = 4EB90000CBB04E71</action>
<action>maincpu.mq@CBB0 = 584B297C00000000</action>
<action>maincpu.mq@CBB8 = 0020295B00244E75</action>
<!--
CBB0 | 584B : addq.w #4, A3
CBB2 | 297C xxxx xxxx 0020 : move.l #$xxxx, ($20,A4)
CBBA | 295B 0024 : move.l (A3)+, ($24,A4)
CBBE | 4E75 : rts
-->
</script>
<script state="change">
<action>maincpu.md@CBB4 = param</action>
</script>
<script state="off">
<action>maincpu.mq@18F0 = 295B0020295B0024</action>
<action>maincpu.mq@CBB0 = 0000000000000000</action>
<action>maincpu.mq@CBB8 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="penetration bullet - main shot">
<script state="on">
<action>maincpu.mw@4AE6 = 6004</action>
</script>
<script state="off">
<action>maincpu.mw@4AE6 = 4255</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- you can't stop some sfxs (code 0x10 or later) by sound stop button -->
<comment>set "skip rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mq@6970 = 4EF90000CBC07E01</action>
<action>maincpu.mq@CBC0 = 41F9000F00004EB8</action>
<action>maincpu.mq@CBC8 = 23C6140112390008</action>
<action>maincpu.mq@CBD0 = 0003B40167F00C01</action>
<action>maincpu.mq@CBD8 = 00FD660253100C01</action>
<action>maincpu.mq@CBE0 = 00FE660252100C01</action>
<action>maincpu.mq@CBE8 = 00FB660404100010</action>
<action>maincpu.mq@CBF0 = 0C0100F766040610</action>
<action>maincpu.mq@CBF8 = 00100C0100EF660A</action>
<action>maincpu.mq@CC00 = 203C00FF00008010</action>
<action>maincpu.mq@CC08 = 60080C0100DF6606</action>
<action>maincpu.mq@CC10 = 42804EB8237260AE</action>
<!--
CBC0 | 41F9 000F 0000 : lea $f0000.l, A0 // sound code address
CBC6 | 4EB8 23C6 : jsr $23c6.w // check sound code
CBCA | 1401 : move.b D1, D2
CBCC | 1239 0008 0003 : move.b $80003.l, D1 // read input
CBD2 | B401 : cmp.b D1, D2
CBD4 | 67F0 : beq $cbc6
CBD6 | 0C01 00FD : cmpi.b #-$3, D1
CBDA | 6602 : bne $cbde
CBDC | 5310 : subq.b #1, (A0) // decrease code -01
CBDE | 0C01 00FE : cmpi.b #-$2, D1
CBE2 | 6602 : bne $cbe6
CBE4 | 5210 : addq.b #1, (A0) // increase code +01
CBE6 | 0C01 00FB : cmpi.b #-$5, D1
CBEA | 6604 : bne $cbf0
CBEC | 0410 0010 : subi.b #$10, (A0) // decrease code -10
CBF0 | 0C01 00F7 : cmpi.b #-$9, D1
CBF4 | 6604 : bne $cbfa
CBF6 | 0610 0010 : addi.b #$10, (A0) // increase code +10
CBFA | 0C01 00EF : cmpi.b #-$11, D1
CBFE | 660A : bne $cc0a
CC00 | 203C 00FF 0000 : move.l #$ff0000, D0 // play sound
CC06 | 8010 : or.b (A0), D0
CC08 | 6008 : bra $cc12
CC0A | 0C01 00DF : cmpi.b #-$21, D1
CC0E | 6606 : bne $cc16
CC10 | 4280 : clr.l D0 // stop sound
CC12 | 4EB8 2372 : jsr $2372.w
CC16 | 60AE : bra $cbc6
-->
</script>
<script state="run">
<output format="----- saint 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 %2.2X >>" line="19" align="center" >
<argument>maincpu.pb@F0000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mq@6970 = 2C3C000050587E01</action>
<action>maincpu.mq@CBC0 = 0000000000000000</action>
<action>maincpu.mq@CBC8 = 0000000000000000</action>
<action>maincpu.mq@CBD0 = 0000000000000000</action>
<action>maincpu.mq@CBD8 = 0000000000000000</action>
<action>maincpu.mq@CBE0 = 0000000000000000</action>
<action>maincpu.mq@CBE8 = 0000000000000000</action>
<action>maincpu.mq@CBF0 = 0000000000000000</action>
<action>maincpu.mq@CBF8 = 0000000000000000</action>
<action>maincpu.mq@CC00 = 0000000000000000</action>
<action>maincpu.mq@CC08 = 0000000000000000</action>
<action>maincpu.mq@CC10 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="skip rom check">
<script state="on">
<action>maincpu.mw@043A = 601E</action> <!-- skip rom check -->
<action>maincpu.mw@688C = 0001</action> <!-- skip dip switch display -->
</script>
<script state="off">
<action>maincpu.mw@043A = 7004</action>
<action>maincpu.mw@688C = 0230</action>
</script>
</cheat>
</mamecheat>
stdragonb.xml
Code: Select all
<!-- Saint Dragon (bootleg) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mw@2FC0 = 6004</action> <!-- bullet -->
<action>maincpu.mw@4B20 = 6008</action> <!-- enemy -->
<action>maincpu.mw@4CAA = 4E75</action> <!-- background -->
</script>
<script state="off">
<action>maincpu.mw@2FC0 = 6604</action>
<action>maincpu.mw@4B20 = 6608</action>
<action>maincpu.mw@4CAA = 204E</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@188B = 01</action> <!-- normal shot -->
<action>maincpu.mb@1941 = 01</action> <!-- fire -->
<action>maincpu.mb@1A21 = 01</action> <!-- laser -->
<action>maincpu.mb@1B0B = 01</action> <!-- turret -->
<action>maincpu.mb@1C0B = 01</action> <!-- bound -->
</script>
<script state="off">
<action>maincpu.mb@188B = 28</action>
<action>maincpu.mb@1941 = 32</action>
<action>maincpu.mb@1A21 = 32</action>
<action>maincpu.mb@1B0B = 14</action>
<action>maincpu.mb@1C0B = 14</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x00008000">01 (slow)</item>
<item value="0x00020000">02 </item>
<item value="0x00038000">03 </item>
<item value="0x00040000">04 </item>
<item value="0x00058000">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.mq@0FD2 = 4EB90000CB704E71</action> <!-- x position -->
<action>maincpu.mq@0FFE = 4EB90000CB7C4E71</action> <!-- y position -->
<action>maincpu.mq@CB70 = 6116DFA800103E28</action>
<action>maincpu.mq@CB78 = 00104E75610ADFA8</action>
<action>maincpu.mq@CB80 = 00143E2800144E75</action>
<action>maincpu.mq@CB88 = 4A39000F1A026710</action>
<action>maincpu.mq@CB90 = 203C000000004A87</action>
<action>maincpu.mq@CB98 = 67066A0244802E00</action>
<action>maincpu.mq@CBA0 = 4E75000000000000</action>
<!--
CB70 | 6116 : bsr $cb88 // x position
CB72 | DFA8 0010 : add.l D7, ($10,A0)
CB76 | 3E28 0010 : move.w ($10,A0), D7
CB7A | 4E75 : rts
CB7C | 610A : bsr $cb88 // y position
CB7E | DFA8 0014 : add.l D7, ($14,A0)
CB82 | 3E28 0014 : move.w ($14,A0), D7
CB86 | 4E75 : rts
CB88 | 4A39 000F 1A02 : tst.b $f1a02.l // check auto moving flag
CB8E | 6710 : beq $cba0
CB90 | 203C xxxx xxxx : move.l #$xxxx, D0
CB96 | 4A87 : tst.l D7
CB98 | 6706 : beq $cba0
CB9A | 6A02 : bpl $cb9e
CB9C | 4480 : neg.l D0
CB9E | 2E00 : move.l D0, D7
CBA0 | 4E75 : rts
-->
</script>
<script state="change">
<action>maincpu.md@CB92 = param</action>
</script>
<script state="off">
<action>maincpu.mq@0FD2 = DFA800103E280010</action>
<action>maincpu.mq@0FFE = DFA800143E280014</action>
<action>maincpu.mq@CB70 = 0000000000000000</action>
<action>maincpu.mq@CB78 = 0000000000000000</action>
<action>maincpu.mq@CB80 = 0000000000000000</action>
<action>maincpu.mq@CB88 = 0000000000000000</action>
<action>maincpu.mq@CB90 = 0000000000000000</action>
<action>maincpu.mq@CB98 = 0000000000000000</action>
<action>maincpu.mq@CBA0 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="bullet speed - main shot">
<parameter>
<item value="0x00040000">01 (slow)</item>
<item value="0x00080000">02 </item>
<item value="0x000c0000">03 </item>
<item value="0x00100000">04 </item>
<item value="0x00140000">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.mq@18F0 = 4EB90000CBB04E71</action>
<action>maincpu.mq@CBB0 = 584B297C00000000</action>
<action>maincpu.mq@CBB8 = 0020295B00244E75</action>
<!--
CBB0 | 584B : addq.w #4, A3
CBB2 | 297C xxxx xxxx 0020 : move.l #$xxxx, ($20,A4)
CBBA | 295B 0024 : move.l (A3)+, ($24,A4)
CBBE | 4E75 : rts
-->
</script>
<script state="change">
<action>maincpu.md@CBB4 = param</action>
</script>
<script state="off">
<action>maincpu.mq@18F0 = 295B0020295B0024</action>
<action>maincpu.mq@CBB0 = 0000000000000000</action>
<action>maincpu.mq@CBB8 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="penetration bullet - main shot">
<script state="on">
<action>maincpu.mw@4AE6 = 6004</action>
</script>
<script state="off">
<action>maincpu.mw@4AE6 = 4255</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- you can't stop some sfxs (code 0x10 or later) by sound stop button -->
<comment>set "skip rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mq@6970 = 4EF90000CBC07E01</action>
<action>maincpu.mq@CBC0 = 41F9000F00004EB8</action>
<action>maincpu.mq@CBC8 = 23C6140112390008</action>
<action>maincpu.mq@CBD0 = 0003B40167F00C01</action>
<action>maincpu.mq@CBD8 = 00FD660253100C01</action>
<action>maincpu.mq@CBE0 = 00FE660252100C01</action>
<action>maincpu.mq@CBE8 = 00FB660404100010</action>
<action>maincpu.mq@CBF0 = 0C0100F766040610</action>
<action>maincpu.mq@CBF8 = 00100C0100EF660A</action>
<action>maincpu.mq@CC00 = 203C00FF00008010</action>
<action>maincpu.mq@CC08 = 60080C0100DF6606</action>
<action>maincpu.mq@CC10 = 42804EB8237260AE</action>
<!--
CBC0 | 41F9 000F 0000 : lea $f0000.l, A0 // sound code address
CBC6 | 4EB8 23C6 : jsr $23c6.w // check sound code
CBCA | 1401 : move.b D1, D2
CBCC | 1239 0008 0003 : move.b $80003.l, D1 // read input
CBD2 | B401 : cmp.b D1, D2
CBD4 | 67F0 : beq $cbc6
CBD6 | 0C01 00FD : cmpi.b #-$3, D1
CBDA | 6602 : bne $cbde
CBDC | 5310 : subq.b #1, (A0) // decrease code -01
CBDE | 0C01 00FE : cmpi.b #-$2, D1
CBE2 | 6602 : bne $cbe6
CBE4 | 5210 : addq.b #1, (A0) // increase code +01
CBE6 | 0C01 00FB : cmpi.b #-$5, D1
CBEA | 6604 : bne $cbf0
CBEC | 0410 0010 : subi.b #$10, (A0) // decrease code -10
CBF0 | 0C01 00F7 : cmpi.b #-$9, D1
CBF4 | 6604 : bne $cbfa
CBF6 | 0610 0010 : addi.b #$10, (A0) // increase code +10
CBFA | 0C01 00EF : cmpi.b #-$11, D1
CBFE | 660A : bne $cc0a
CC00 | 203C 00FF 0000 : move.l #$ff0000, D0 // play sound
CC06 | 8010 : or.b (A0), D0
CC08 | 6008 : bra $cc12
CC0A | 0C01 00DF : cmpi.b #-$21, D1
CC0E | 6606 : bne $cc16
CC10 | 4280 : clr.l D0 // stop sound
CC12 | 4EB8 2372 : jsr $2372.w
CC16 | 60AE : bra $cbc6
-->
</script>
<script state="run">
<output format="----- saint 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 %2.2X >>" line="19" align="center" >
<argument>maincpu.pb@F0000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mq@6970 = 2C3C000050587E01</action>
<action>maincpu.mq@CBC0 = 0000000000000000</action>
<action>maincpu.mq@CBC8 = 0000000000000000</action>
<action>maincpu.mq@CBD0 = 0000000000000000</action>
<action>maincpu.mq@CBD8 = 0000000000000000</action>
<action>maincpu.mq@CBE0 = 0000000000000000</action>
<action>maincpu.mq@CBE8 = 0000000000000000</action>
<action>maincpu.mq@CBF0 = 0000000000000000</action>
<action>maincpu.mq@CBF8 = 0000000000000000</action>
<action>maincpu.mq@CC00 = 0000000000000000</action>
<action>maincpu.mq@CC08 = 0000000000000000</action>
<action>maincpu.mq@CC10 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="skip rom check">
<script state="on">
<action>maincpu.mw@043A = 601E</action> <!-- skip rom check -->
<action>maincpu.mw@688C = 0001</action> <!-- skip dip switch display -->
</script>
<script state="off">
<action>maincpu.mw@043A = 7004</action>
<action>maincpu.mw@688C = 0230</action>
</script>
</cheat>
</mamecheat>