zerowing.xml
Code: Select all
<!-- Zero Wing (2P set) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@381E = 60</action> <!-- background -->
<action>maincpu.mb@C1D6 = 60</action> <!-- P1 objects -->
<action>maincpu.mb@C2D0 = 60</action> <!-- P2 objects -->
</script>
<script state="off">
<action>maincpu.mb@381E = 66</action>
<action>maincpu.mb@C1D6 = 66</action>
<action>maincpu.mb@C2D0 = 66</action>
</script>
</cheat>
<cheat desc="no hit - bomb">
<script state="on">
<!-- background -->
<action>maincpu.mw@54AC = 601E</action> <!-- background -->
<action>maincpu.mw@C27C = 0000</action> <!-- P1 objects -->
<action>maincpu.mw@C376 = 0000</action> <!-- P2 objects -->
</script>
<script state="off">
<action>maincpu.mw@54AC = 671E</action>
<action>maincpu.mw@C27C = 0002</action>
<action>maincpu.mw@C376 = 0002</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@38BF = 2C</action>
</script>
<script state="off">
<action>maincpu.mb@38BF = 08</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x0080">01 (slow)</item>
<item value="0x0100">02 </item>
<item value="0x0200">03 </item>
<item value="0x0300">04 </item>
<item value="0x0400">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.mq@5952 = 4EB90000D7D04E71</action>
<action>maincpu.mq@D7D0 = BDFC000800306E1C</action>
<action>maincpu.mq@D7D8 = 303C00004A426706</action>
<action>maincpu.mq@D7E0 = 6A0244403400303C</action>
<action>maincpu.mq@D7E8 = 00004A4367066A02</action>
<action>maincpu.mq@D7F0 = 44403600D56E0016</action>
<action>maincpu.mq@D7F8 = D76E00144E75FFFF</action>
<!--
D7D0 | BDFC 0008 0030 : cmpa.l #$80030, A6
D7D6 | 6E1C : bgt $d7f4
D7D8 | 303C xxxx : move.w #$xx, D0
D7DC | 4A42 : tst.w D2
D7DE | 6706 : beq $d7e6
D7E0 | 6A02 : bpl $d7e4
D7E2 | 4440 : neg.w D0
D7E4 | 3400 : move.w D0, D2
D7E6 | 303C xxxx : move.w #$xx, D0
D7EA | 4A43 : tst.w D3
D7EC | 6706 : beq $d7f4
D7EE | 6A02 : bpl $d7f2
D7F0 | 4440 : neg.w D0
D7F2 | 3600 : move.w D0, D3
D7F4 | D56E 0016 : add.w D2, ($16,A6)
D7F8 | D76E 0014 : add.w D3, ($14,A6)
D7FC | 4E75 : rts
-->
</script>
<script state="change">
<action>maincpu.mw@D7DA = param</action>
<action>maincpu.mw@D7E8 = param</action>
</script>
<script state="off">
<action>maincpu.mq@5952 = D56E0016D76E0014</action>
<action>maincpu.mq@D7D0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@D7D8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@D7E0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@D7E8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@D7F0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@D7F8 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="disable red screen flashing">
<script state="on">
<action>maincpu.mb@0172 = 60</action>
</script>
<script state="off">
<action>maincpu.mb@0172 = 67</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>set "skip rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mq@062E = 4EF90000D8006000</action>
<action>maincpu.mq@D800 = 41F90008000043F9</action>
<action>maincpu.mq@D808 = 0044000112001029</action>
<action>maincpu.mq@D810 = 000EB20067F60C00</action>
<action>maincpu.mq@D818 = 0004660253100C00</action>
<action>maincpu.mq@D820 = 0008660252100C00</action>
<action>maincpu.mq@D828 = 0002660404100010</action>
<action>maincpu.mq@D830 = 0C00000166040610</action>
<action>maincpu.mq@D838 = 00100C0000106602</action>
<action>maincpu.mq@D840 = 12900C0000206604</action>
<action>maincpu.mq@D848 = 12BC00FE60BEFFFF</action>
<!--
D800 | 41F9 0008 0000 : lea $80000.l, A0 // sound code address
D806 | 43F9 0044 0001 : lea $440001.l, A1 // sound latch address
D80C | 1200 : move.b D0, D1
D80E | 1029 000E : move.b ($e,A1), D0 // read input ($44000f)
D812 | B200 : cmp.b D0, D1
D814 | 67F6 : beq $c80c
D816 | 0C00 0004 : cmpi.b #$4, D0
D81A | 6602 : bne $c81e
D81C | 5310 : subq.b #1, (A0) // decrease code -01
D81E | 0C00 0008 : cmpi.b #$8, D0
D822 | 6602 : bne $c826
D824 | 5210 : addq.b #1, (A0) // increase code +01
D826 | 0C00 0002 : cmpi.b #$2, D0
D82A | 6604 : bne $c830
D82C | 0410 0010 : subi.b #$10, (A0) // decrease code -10
D830 | 0C00 0001 : cmpi.b #$1, D0
D834 | 6604 : bne $c83a
D836 | 0610 0010 : addi.b #$10, (A0) // increase code +10
D83A | 0C00 0010 : cmpi.b #$10, D0
D83E | 6602 : bne $c842
D840 | 1290 : move.b (A0), (A1) // play sound
D842 | 0C00 0020 : cmpi.b #$20, D0
D846 | 6604 : bne $c84c
D848 | 12BC 00FE : move.b #$fe, (A1) // stop sound
D84C | 60BE : bra $c80c
-->
</script>
<script state="run">
<output format="----- zero wing 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@80000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mq@062E = 7010610053CC6000</action>
<action>maincpu.mq@D800 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@D808 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@D810 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@D818 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@D820 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@D828 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@D830 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@D838 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@D840 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@D848 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip rom check">
<script state="on">
<action>maincpu.mw@0566 = 01E6</action>
</script>
<script state="off">
<action>maincpu.mw@0566 = 01E8</action>
</script>
</cheat>
</mamecheat>
zerowing1.xml
Code: Select all
<!-- Zero Wing (1P set) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mw@329A = 0002</action> <!-- background -->
<action>maincpu.mw@B8BA = 601A</action> <!-- objects : skip enemy/bullet check -->
<action>maincpu.mw@B8E0 = 00B6</action> <!-- objects : enable item check -->
</script>
<script state="off">
<action>maincpu.mw@329A = FF8E</action>
<action>maincpu.mw@B8BA = 6100</action>
<action>maincpu.mw@B8E0 = 00D2</action>
</script>
</cheat>
<cheat desc="no hit - bomb">
<script state="on">
<action>maincpu.mw@4DC4 = 4E71</action> <!-- background -->
<action>maincpu.mw@B952 = 0000</action> <!-- objects -->
</script>
<script state="off">
<action>maincpu.mw@4DC4 = 660C</action>
<action>maincpu.mw@B952 = 0002</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@331D = 38</action>
</script>
<script state="off">
<action>maincpu.mb@331D = 0A</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x0080">01 (slow)</item>
<item value="0x0100">02 </item>
<item value="0x0200">03 </item>
<item value="0x0300">04 </item>
<item value="0x0400">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.mq@5216 = 4EB90000CE404E71</action>
<action>maincpu.mq@CE40 = BDFC00080000661C</action>
<action>maincpu.mq@CE48 = 303C00004A426706</action>
<action>maincpu.mq@CE50 = 6A0244403400303C</action>
<action>maincpu.mq@CE58 = 00004A4367066A02</action>
<action>maincpu.mq@CE60 = 44403600D56E0016</action>
<action>maincpu.mq@CE68 = D76E00144E75FFFF</action>
<!--
CE40 | BDFC 0008 0000 : cmpa.l #$80000, A6
CE46 | 661C : bne $ce64
CE48 | 303C xxxx : move.w #$xx, D0
CE4C | 4A42 : tst.w D2
CE4E | 6706 : beq $ce56
CE50 | 6A02 : bpl $ce54
CE52 | 4440 : neg.w D0
CE54 | 3400 : move.w D0, D2
CE56 | 303C xxxx : move.w #$xx, D0
CE5A | 4A43 : tst.w D3
CE5C | 6706 : beq $ce64
CE5E | 6A02 : bpl $ce62
CE60 | 4440 : neg.w D0
CE62 | 3600 : move.w D0, D3
CE64 | D56E 0016 : add.w D2, ($16,A6)
CE68 | D76E 0014 : add.w D3, ($14,A6)
CE6C | 4E75 : rts
-->
</script>
<script state="change">
<action>maincpu.mw@CE4A = param</action>
<action>maincpu.mw@CE58 = param</action>
</script>
<script state="off">
<action>maincpu.mq@5216 = D56E0016D76E0014</action>
<action>maincpu.mq@CE40 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@CE48 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@CE50 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@CE58 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@CE60 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@CE68 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="disable red screen flashing">
<script state="on">
<action>maincpu.mb@0172 = 60</action>
</script>
<script state="off">
<action>maincpu.mb@0172 = 67</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>set rom check skip then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mq@0518 = 4EF90000CE700240</action>
<action>maincpu.mq@CE70 = 41F90008010043F9</action>
<action>maincpu.mq@CE78 = 0044000112001029</action>
<action>maincpu.mq@CE80 = 000EB20067F60C00</action>
<action>maincpu.mq@CE88 = 0004660253100C00</action>
<action>maincpu.mq@CE90 = 0008660252100C00</action>
<action>maincpu.mq@CE98 = 0002660404100010</action>
<action>maincpu.mq@CEA0 = 0C00000166040610</action>
<action>maincpu.mq@CEA8 = 00100C0000106602</action>
<action>maincpu.mq@CEB0 = 12900C0000206604</action>
<action>maincpu.mq@CEB8 = 12BC00FE60BEFFFF</action>
<!--
CE70 | 41F9 0008 0100 : lea $80100.l, A0 // sound code address
CE76 | 43F9 0044 0001 : lea $440001.l, A1 // sound latch address
CE7C | 1200 : move.b D0, D1
CE7E | 1029 000E : move.b ($e,A1), D0 // read input ($44000f)
CE82 | B200 : cmp.b D0, D1
CE84 | 67F6 : beq $ce7c
CE86 | 0C00 0004 : cmpi.b #$4, D0
CE8A | 6602 : bne $ce8e
CE8C | 5310 : subq.b #1, (A0) // decrease code -01
CE8E | 0C00 0008 : cmpi.b #$8, D0
CE92 | 6602 : bne $ce96
CE94 | 5210 : addq.b #1, (A0) // increase code +01
CE96 | 0C00 0002 : cmpi.b #$2, D0
CE9A | 6604 : bne $cea0
CE9C | 0410 0010 : subi.b #$10, (A0) // decrease code -10
CEA0 | 0C00 0001 : cmpi.b #$1, D0
CEA4 | 6604 : bne $ceaa
CEA6 | 0610 0010 : addi.b #$10, (A0) // increase code +10
CEAA | 0C00 0010 : cmpi.b #$10, D0
CEAE | 6602 : bne $ceb2
CEB0 | 1290 : move.b (A0), (A1) // play sound
CEB2 | 0C00 0020 : cmpi.b #$20, D0
CEB6 | 6604 : bne $cebc
CEB8 | 12BC 00FE : move.b #$fe, (A1) // stop sound
CEBC | 60BE : bra $ce7c
-->
</script>
<script state="run">
<output format="----- zero wing 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@80100</argument>
</output>
</script>
<script state="off">
<action>maincpu.mq@0518 = 30390008180E0240</action>
<action>maincpu.mq@CE70 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@CE78 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@CE80 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@CE88 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@CE90 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@CE98 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@CEA0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@CEA8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@CEB0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@CEB8 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip rom check">
<script state="on">
<action>maincpu.mw@04D8 = 01E4</action>
</script>
<script state="off">
<action>maincpu.mw@04D8 = 01E6</action>
</script>
</cheat>
</mamecheat>
zerowingw.xml
Code: Select all
<!-- Zero Wing (2P set, Williams license) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@382C = 60</action> <!-- background -->
<action>maincpu.mb@C1CA = 60</action> <!-- P1 objects -->
<action>maincpu.mb@C2C4 = 60</action> <!-- P2 objects -->
</script>
<script state="off">
<action>maincpu.mb@382C = 66</action>
<action>maincpu.mb@C1CA = 66</action>
<action>maincpu.mb@C2C4 = 66</action>
</script>
</cheat>
<cheat desc="no hit - bomb">
<script state="on">
<!-- background -->
<action>maincpu.mw@54BA = 601E</action> <!-- background -->
<action>maincpu.mw@C270 = 0000</action> <!-- P1 objects -->
<action>maincpu.mw@C36A = 0000</action> <!-- P2 objects -->
</script>
<script state="off">
<action>maincpu.mw@54BA = 671E</action>
<action>maincpu.mw@C270 = 0002</action>
<action>maincpu.mw@C36A = 0002</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@38CD = 2C</action>
</script>
<script state="off">
<action>maincpu.mb@38CD = 08</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x0080">01 (slow)</item>
<item value="0x0100">02 </item>
<item value="0x0200">03 </item>
<item value="0x0300">04 </item>
<item value="0x0400">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.mq@5960 = 4EB90000D8C04E71</action>
<action>maincpu.mq@D8C0 = BDFC000800306E1C</action>
<action>maincpu.mq@D8C8 = 303C00004A426706</action>
<action>maincpu.mq@D8D0 = 6A0244403400303C</action>
<action>maincpu.mq@D8D8 = 00004A4367066A02</action>
<action>maincpu.mq@D8E0 = 44403600D56E0016</action>
<action>maincpu.mq@D8E8 = D76E00144E75FFFF</action>
<!--
D8C0 | BDFC 0008 0030 : cmpa.l #$80030, A6
D8C6 | 6E1C : bgt $d8e4
D8C8 | 303C xxxx : move.w #$xx, D0
D8CC | 4A42 : tst.w D2
D8CE | 6706 : beq $d8d6
D8D0 | 6A02 : bpl $d8d4
D8D2 | 4440 : neg.w D0
D8D4 | 3400 : move.w D0, D2
D8D6 | 303C xxxx : move.w #$xx, D0
D8DA | 4A43 : tst.w D3
D8DC | 6706 : beq $d8e4
D8DE | 6A02 : bpl $d8e2
D8E0 | 4440 : neg.w D0
D8E2 | 3600 : move.w D0, D3
D8E4 | D56E 0016 : add.w D2, ($16,A6)
D8E8 | D76E 0014 : add.w D3, ($14,A6)
D8EC | 4E75 : rts
-->
</script>
<script state="change">
<action>maincpu.mw@D8CA = param</action>
<action>maincpu.mw@D8D8 = param</action>
</script>
<script state="off">
<action>maincpu.mq@5960 = D56E0016D76E0014</action>
<action>maincpu.mq@D8C0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@D8C8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@D8D0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@D8D8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@D8E0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@D8E8 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="disable red screen flashing">
<script state="on">
<action>maincpu.mb@0172 = 60</action>
</script>
<script state="off">
<action>maincpu.mb@0172 = 67</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>set "skip rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mq@062E = 4EF90000D8F06000</action>
<action>maincpu.mq@D8F0 = 41F90008000043F9</action>
<action>maincpu.mq@D8F8 = 0044000112001029</action>
<action>maincpu.mq@D900 = 000EB20067F60C00</action>
<action>maincpu.mq@D908 = 0004660253100C00</action>
<action>maincpu.mq@D910 = 0008660252100C00</action>
<action>maincpu.mq@D918 = 0002660404100010</action>
<action>maincpu.mq@D920 = 0C00000166040610</action>
<action>maincpu.mq@D928 = 00100C0000106602</action>
<action>maincpu.mq@D930 = 12900C0000206604</action>
<action>maincpu.mq@D938 = 12BC00FE60BEFFFF</action>
<!--
D8F0 | 41F9 0008 0000 : lea $80000.l, A0 // sound code address
D8F6 | 43F9 0044 0001 : lea $440001.l, A1 // sound latch address
D8FC | 1200 : move.b D0, D1
D8FE | 1029 000E : move.b ($e,A1), D0 // read input ($44000f)
D902 | B200 : cmp.b D0, D1
D904 | 67F6 : beq $d8fc
D906 | 0C00 0004 : cmpi.b #$4, D0
D90A | 6602 : bne $d90e
D90C | 5310 : subq.b #1, (A0) // decrease code -01
D90E | 0C00 0008 : cmpi.b #$8, D0
D912 | 6602 : bne $d916
D914 | 5210 : addq.b #1, (A0) // increase code +01
D916 | 0C00 0002 : cmpi.b #$2, D0
D91A | 6604 : bne $d920
D91C | 0410 0010 : subi.b #$10, (A0) // decrease code -10
D920 | 0C00 0001 : cmpi.b #$1, D0
D924 | 6604 : bne $d92a
D926 | 0610 0010 : addi.b #$10, (A0) // increase code +10
D92A | 0C00 0010 : cmpi.b #$10, D0
D92E | 6602 : bne $d932
D930 | 1290 : move.b (A0), (A1) // play sound
D932 | 0C00 0020 : cmpi.b #$20, D0
D936 | 6604 : bne $d93c
D938 | 12BC 00FE : move.b #$fe, (A1) // stop sound
D93C | 60BE : bra $d8fc
-->
</script>
<script state="run">
<output format="----- zero wing 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@80000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mq@062E = 7010610053DA6000</action>
<action>maincpu.mq@D8F0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@D8F8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@D900 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@D908 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@D910 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@D918 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@D920 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@D928 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@D930 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@D938 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip rom check">
<script state="on">
<action>maincpu.mw@0566 = 01E6</action>
</script>
<script state="off">
<action>maincpu.mw@0566 = 01E8</action>
</script>
</cheat>
</mamecheat>