Code: Select all
<!-- Spectrum 2000 (vertical, Korea) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@63368 = 60</action> <!-- bullet -->
<action>maincpu.mb@630fe = 60</action> <!-- enemy -->
</script>
<script state="off">
<action>maincpu.mb@63368 = 66</action>
<action>maincpu.mb@630fe = 66</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.md@61b2a = 4eb80140</action>
<action>maincpu.mq@00140 = 1a00102a00024600</action>
<action>maincpu.mq@00148 = 020000101c128c00</action>
<action>maincpu.mq@00150 = 4e75000000000000</action>
<!--
0140 | 1a00 : move.b D0,D5
0142 | 102a 0002 : move.b ($2,A2),D0
0146 | 4600 : not.b D0
0148 | 0200 0010 : andi.b #$10,D0
014c | 1c12 : move.b (A2),D6
014e | 8c00 : or.b D0,D6
0150 | 4e75 : rts
-->
<action>maincpu.mw@6229a = 0002</action> <!-- fireable in charging -->
<action>maincpu.mw@62314 = ff70</action> <!-- fireable in max charging -->
</script>
<script state="off">
<action>maincpu.md@61b2a = 1a001c12</action>
<action>maincpu.mq@00140 = 0000000000000000</action>
<action>maincpu.mq@00148 = 0000000000000000</action>
<action>maincpu.mq@00150 = 0000000000000000</action>
<action>maincpu.mw@6229a = 0016</action>
<action>maincpu.mw@62314 = f094</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x52">01 (slow)</item>
<item value="0x56">02 </item>
<item value="0x5a">03 </item>
<item value="0x5e">04 </item>
<item value="0x50">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@62474 = param</action> <!-- right -->
<action>maincpu.mb@624a8 = 1 + param</action> <!-- left -->
<action>maincpu.mb@624c0 = 1 + param</action> <!-- down -->
<action>maincpu.mb@624da = param</action> <!-- up -->
<action>maincpu.mb@624f4 = 1 + param</action> <!-- down -->
<action>maincpu.mb@6250c = param</action> <!-- up -->
</script>
<script state="off">
<action>maincpu.mb@62474 = 56</action>
<action>maincpu.mb@624a8 = 57</action>
<action>maincpu.mb@624c0 = 57</action>
<action>maincpu.mb@624da = 56</action>
<action>maincpu.mb@624f4 = 57</action>
<action>maincpu.mb@6250c = 56</action>
</script>
</cheat>
<cheat desc="bullet speed">
<parameter>
<item value="0x0001">01 (slow)</item>
<item value="0x0008">02 </item>
<item value="0x0010">03 </item>
<item value="0x0018">04 </item>
<item value="0x0020">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.md@628e6 = 0007a610</action>
<action>maincpu.mq@7a610 = 4eb90005f2ca302e</action>
<action>maincpu.mq@7a618 = 000a0c4000146718</action>
<action>maincpu.mq@7a620 = 0c40001167120c40</action>
<action>maincpu.mq@7a628 = 0012670c0c400017</action>
<action>maincpu.mq@7a630 = 67060c4000186612</action>
<action>maincpu.mq@7a638 = 303c00004a6e000e</action>
<action>maincpu.mq@7a640 = 67086a0244403d40</action>
<action>maincpu.mq@7a648 = 000e4e7500000000</action>
<!--
7a610 | 4eb9 0005 f2ca : jsr $5f2ca.l
7a616 | 302e 000a : move.w ($a,A6),D0
7a61a | 0c40 0014 : cmpi.w #$14,D0
7a61e | 6718 : beq $7a638
7a620 | 0c40 0011 : cmpi.w #$11,D0
7a624 | 6712 : beq $7a638
7a626 | 0c40 0012 : cmpi.w #$12,D0
7a62a | 670c : beq $7a638
7a62c | 0c40 0017 : cmpi.w #$17,D0
7a630 | 6706 : beq $7a638
7a632 | 0c40 0018 : cmpi.w #$18,D0
7a636 | 6612 : bne $7a64a
7a638 | 303c xxxx : move.w #$xxxx,D0
7a63c | 4a6e 000e : tst.w ($e,A6)
7a640 | 6708 : beq $7a64a
7a642 | 6a02 : bpl $7a646
7a644 | 4440 : neg.w D0
7a646 | 3d40 000e : move.w D0,($e,A6)
7a64a | 4e75 : rts
-->
</script>
<script state="change">
<action>maincpu.mw@7a63a = param</action>
</script>
<script state="off">
<action>maincpu.md@628e6 = 0005f2ca</action>
<action>maincpu.mq@7a610 = 0000000000000000</action>
<action>maincpu.mq@7a618 = 0000000000000000</action>
<action>maincpu.mq@7a620 = 0000000000000000</action>
<action>maincpu.mq@7a628 = 0000000000000000</action>
<action>maincpu.mq@7a630 = 0000000000000000</action>
<action>maincpu.mq@7a638 = 0000000000000000</action>
<action>maincpu.mq@7a640 = 0000000000000000</action>
<action>maincpu.mq@7a648 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="short hit mark (test)">
<script state="on">
<action>maincpu.mb@35fa = 01</action>
<action>maincpu.mb@375a = 01</action>
<action>maincpu.mb@39ba = 01</action>
</script>
<script state="off">
<action>maincpu.mb@35fa = 00</action>
<action>maincpu.mb@375a = 00</action>
<action>maincpu.mb@39ba = 00</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@0095e = 4ef90007a6504e71</action>
<action>maincpu.mq@7a650 = 41f9003c100043f9</action>
<action>maincpu.mq@7a658 = 0008001f12001029</action>
<action>maincpu.mq@7a660 = ffe4b20067f60c00</action>
<action>maincpu.mq@7a668 = 00fd660253100c00</action>
<action>maincpu.mq@7a670 = 00fe660252100c00</action>
<action>maincpu.mq@7a678 = 00fb660404100010</action>
<action>maincpu.mq@7a680 = 0c0000f766040610</action>
<action>maincpu.mq@7a688 = 00100c0000ef6602</action>
<action>maincpu.mq@7a690 = 12900c0000df6604</action>
<action>maincpu.mq@7a698 = 12bc00fe60be0000</action>
<!--
7a650 | 41f9 003c 1000 : lea $3c1000.l,A0 // sound code address
7a656 | 43f9 0008 001f : lea $8001f.l,A1 // sound latch address
7a65c | 1200 : move.b D0,D1
7a65e | 1029 ffe4 : move.b (-$1c,A1),D0 // read input ($80003)
7a662 | b200 : cmp.b D0,D1
7a664 | 67f6 : beq $7a65c
7a666 | 0c00 00fd : cmpi.b #-$3,D0
7a66a | 6602 : bne $7a66e
7a66c | 5310 : subq.b #1,(A0) // decrease code -01
7a66e | 0c00 00fe : cmpi.b #-$2,D0
7a672 | 6602 : bne $7a676
7a674 | 5210 : addq.b #1,(A0) // increase code +01
7a676 | 0c00 00fb : cmpi.b #-$5,D0
7a67a | 6604 : bne $7a680
7a67c | 0410 0010 : subi.b #$10,(A0) // decrease code -10
7a680 | 0c00 00f7 : cmpi.b #-$9,D0
7a684 | 6604 : bne $7a68a
7a686 | 0610 0010 : addi.b #$10,(A0) // increase code +10
7a68a | 0c00 00ef : cmpi.b #-$11,D0
7a68e | 6602 : bne $7a692
7a690 | 1290 : move.b (A0),(A1) // play sound
7a692 | 0c00 00df : cmpi.b #-$21,D0
7a696 | 6604 : bne $7a69c
7a698 | 12bc 00fe : move.b #$fe,(A1) // stop sound
7a69c | 60be : bra $7a65c
-->
<!-- stop sfx and music at the same time -->
<action>audiocpu.mw@0075 = 0610</action>
<action>audiocpu.mq@0610 = ffff01a5c30173cd</action>
<!--
0610 | cd 73 01 : call $0173
0613 | c3 a5 01 : jp $01A5
-->
</script>
<script state="run">
<output format="----- spectrum 2000 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@3c1000</argument>
</output>
</script>
<script state="off">
<action> maincpu.mq@0095e = 46fc20004eb80200</action>
<action> maincpu.mq@7a650 = 0000000000000000</action>
<action> maincpu.mq@7a658 = 0000000000000000</action>
<action> maincpu.mq@7a660 = 0000000000000000</action>
<action> maincpu.mq@7a668 = 0000000000000000</action>
<action> maincpu.mq@7a670 = 0000000000000000</action>
<action> maincpu.mq@7a678 = 0000000000000000</action>
<action> maincpu.mq@7a680 = 0000000000000000</action>
<action> maincpu.mq@7a688 = 0000000000000000</action>
<action> maincpu.mq@7a690 = 0000000000000000</action>
<action> maincpu.mq@7a698 = 0000000000000000</action>
<action>audiocpu.mw@00075 = 01a5</action>
<action>audiocpu.mq@00610 = ffffffffffffffff</action>
</script>
</cheat>
</mamecheat>
Code: Select all
<!-- Fire Hawk (World) / Huohu Chuanshuo (China) (horizontal) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@2dca0 = 60</action> <!-- bullet -->
<action>maincpu.mb@2d8f4 = 60</action> <!-- enemy -->
</script>
<script state="off">
<action>maincpu.mb@2dca0 = 66</action>
<action>maincpu.mb@2d8f4 = 66</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.md@2c2e8 = 4eb80140</action>
<action>maincpu.mq@00140 = 1a00102a00024600</action>
<action>maincpu.mq@00148 = 020000101c128c00</action>
<action>maincpu.mq@00150 = 4e75000000000000</action>
<!--
0140 | 1a00 : move.b D0,D5
0142 | 102a 0002 : move.b ($2,A2),D0
0146 | 4600 : not.b D0
0148 | 0200 0010 : andi.b #$10,D0
014c | 1c12 : move.b (A2),D6
014e | 8c00 : or.b D0,D6
0150 | 4e75 : rts
-->
<action>maincpu.mw@2ca44 = 0002</action> <!-- fireable in charging -->
<action>maincpu.mw@2cabe = ff74</action> <!-- fireable in max charging -->
</script>
<script state="off">
<action>maincpu.md@2c2e8 = 1a001c12</action>
<action>maincpu.mq@00140 = 0000000000000000</action>
<action>maincpu.mq@00148 = 0000000000000000</action>
<action>maincpu.mq@00150 = 0000000000000000</action>
<action>maincpu.mw@2ca44 = 0016</action>
<action>maincpu.mw@2cabe = efea</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x52">01 (slow)</item>
<item value="0x56">02 </item>
<item value="0x5a">03 </item>
<item value="0x5e">04 </item>
<item value="0x50">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@2cc06 = param</action> <!-- right -->
<action>maincpu.mb@2cc3a = 1 + param</action> <!-- left -->
<action>maincpu.mb@2cc52 = 1 + param</action> <!-- down -->
<action>maincpu.mb@2cc6c = param</action> <!-- up -->
<action>maincpu.mb@2cc86 = 1 + param</action> <!-- down -->
<action>maincpu.mb@2cc9e = param</action> <!-- up -->
</script>
<script state="off">
<action>maincpu.mb@2cc06 = 56</action>
<action>maincpu.mb@2cc3a = 57</action>
<action>maincpu.mb@2cc52 = 57</action>
<action>maincpu.mb@2cc6c = 56</action>
<action>maincpu.mb@2cc86 = 57</action>
<action>maincpu.mb@2cc9e = 56</action>
</script>
</cheat>
<cheat desc="bullet speed">
<parameter>
<item value="0x0001">01 (slow)</item>
<item value="0x0008">02 </item>
<item value="0x0010">03 </item>
<item value="0x0018">04 </item>
<item value="0x0020">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.md@2d072 = 00076100</action>
<action>maincpu.mq@76100 = 4eb90005d172302e</action>
<action>maincpu.mq@76108 = 000a0c4000146718</action>
<action>maincpu.mq@76110 = 0c40001167120c40</action>
<action>maincpu.mq@76118 = 0012670c0c400017</action>
<action>maincpu.mq@76120 = 67060c4000186612</action>
<action>maincpu.mq@76128 = 303c00004a6e000e</action>
<action>maincpu.mq@76130 = 67086a0244403d40</action>
<action>maincpu.mq@76138 = 000e4e7500000000</action>
<!--
76100 | 4eb9 0005 d172 : jsr $5d172.l
76106 | 302e 000a : move.w ($a,A6),D0
7610a | 0c40 0014 : cmpi.w #$14,D0
7610e | 6718 : beq $76128
76110 | 0c40 0011 : cmpi.w #$11,D0
76114 | 6712 : beq $76128
76116 | 0c40 0012 : cmpi.w #$12,D0
7611a | 670c : beq $76128
7611c | 0c40 0017 : cmpi.w #$17,D0
76120 | 6706 : beq $76128
76122 | 0c40 0018 : cmpi.w #$18,D0
76126 | 6612 : bne $763aa
76128 | 303c xxxx : move.w #$xxxx,D0
7612c | 4a6e 000e : tst.w ($e,A6)
76130 | 6708 : beq $7613a
76132 | 6a02 : bpl $76136
76134 | 4440 : neg.w D0
76136 | 3d40 000e : move.w D0,($e,A6)
7613a | 4e75 : rts
-->
</script>
<script state="change">
<action>maincpu.mw@7612a = param</action>
</script>
<script state="off">
<action>maincpu.md@2d072 = 0005d172</action>
<action>maincpu.mq@76100 = 0000000000000000</action>
<action>maincpu.mq@76108 = 0000000000000000</action>
<action>maincpu.mq@76110 = 0000000000000000</action>
<action>maincpu.mq@76118 = 0000000000000000</action>
<action>maincpu.mq@76120 = 0000000000000000</action>
<action>maincpu.mq@76128 = 0000000000000000</action>
<action>maincpu.mq@76130 = 0000000000000000</action>
<action>maincpu.mq@76138 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="short hit mark (test)">
<script state="on">
<action>maincpu.mb@3f806 = 01</action>
<action>maincpu.mb@3f966 = 01</action>
<action>maincpu.mb@3fbc6 = 01</action>
</script>
<script state="off">
<action>maincpu.mb@3f806 = 00</action>
<action>maincpu.mb@3f966 = 00</action>
<action>maincpu.mb@3fbc6 = 00</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@0096c = 4ef9000761404e71</action>
<action>maincpu.mq@76140 = 41f9003c100043f9</action>
<action>maincpu.mq@76148 = 0028001f12001029</action>
<action>maincpu.mq@76150 = ffe4b20067f60c00</action>
<action>maincpu.mq@76158 = 00fd660253100c00</action>
<action>maincpu.mq@76160 = 00fe660252100c00</action>
<action>maincpu.mq@76168 = 00fb660404100010</action>
<action>maincpu.mq@76170 = 0c0000f766040610</action>
<action>maincpu.mq@76178 = 00100c0000ef6602</action>
<action>maincpu.mq@76180 = 12900c0000df6604</action>
<action>maincpu.mq@76188 = 12bc00fe60be0000</action>
<!--
76140 | 41f9 003c 1000 : lea $3c1000.l,A0 // sound code address
76146 | 43f9 0028 001f : lea $28001f.l,A1 // sound latch address
7614c | 1200 : move.b D0,D1
7614e | 1029 ffe4 : move.b (-$1c,A1),D0 // read input ($280003)
76152 | b200 : cmp.b D0,D1
76154 | 67f6 : beq $7614c
76156 | 0c00 00fd : cmpi.b #-$3,D0
7615a | 6602 : bne $7615e
7615c | 5310 : subq.b #1,(A0) // decrease code -01
7615e | 0c00 00fe : cmpi.b #-$2,D0
76162 | 6602 : bne $76166
76164 | 5210 : addq.b #1,(A0) // increase code +01
76166 | 0c00 00fb : cmpi.b #-$5,D0
7616a | 6604 : bne $76170
7616c | 0410 0010 : subi.b #$10,(A0) // decrease code -10
76170 | 0c00 00f7 : cmpi.b #-$9,D0
76174 | 6604 : bne $7617a
76176 | 0610 0010 : addi.b #$10,(A0) // increase code +10
7617a | 0c00 00ef : cmpi.b #-$11,D0
7617e | 6602 : bne $76182
76180 | 1290 : move.b (A0),(A1) // play sound
76182 | 0c00 00df : cmpi.b #-$21,D0
76186 | 6604 : bne $7618c
76188 | 12bc 00fe : move.b #$fe,(A1) // stop sound
7618c | 60be : bra $7614c
-->
<!-- stop sfx and music at the same time -->
<action>audiocpu.mw@0075 = 0610</action>
<action>audiocpu.mq@0610 = ffff01a5c30173cd</action>
<!--
0610 | cd 73 01 : call $0173
0613 | c3 a5 01 : jp $01A5
-->
</script>
<script state="run">
<output format="----- fire hawk 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@3c1000</argument>
</output>
</script>
<script state="off">
<action> maincpu.mq@0096c = 46fc20004eb80200</action>
<action> maincpu.mq@76140 = 0000000000000000</action>
<action> maincpu.mq@76148 = 0000000000000000</action>
<action> maincpu.mq@76150 = 0000000000000000</action>
<action> maincpu.mq@76158 = 0000000000000000</action>
<action> maincpu.mq@76160 = 0000000000000000</action>
<action> maincpu.mq@76168 = 0000000000000000</action>
<action> maincpu.mq@76170 = 0000000000000000</action>
<action> maincpu.mq@76178 = 0000000000000000</action>
<action> maincpu.mq@76180 = 0000000000000000</action>
<action> maincpu.mq@76188 = 0000000000000000</action>
<action>audiocpu.mw@00075 = 01a5</action>
<action>audiocpu.mq@00610 = ffffffffffffffff</action>
</script>
</cheat>
</mamecheat>