This forum is for posting M.A.M.E. Work In Progress "Arcade"cheats that are not quite ready for the prime time. If the cheats are buggy or the cheat descriptions are non-standard then please post them here. Help maybe given but there are no guarantees and they will only be added to the cheat file when the cheat file maintainer is happy with them.
jman
Posts: 1318 Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 10 times
Post
by jman » Fri Jan 13, 2023 11:59 am
Code: Select all
<cheat desc="no hit">
<script state="run">
<action>maincpu.pw@15da = 6058</action> <!-- enemy -->
<action>maincpu.pw@1a01 = 6058</action> <!-- motorbike -->
<action>maincpu.pw@1eda = 6058</action> <!-- bullet -->
</script>
<script state="off">
<action>maincpu.pw@15da = 45c5</action>
<action>maincpu.pw@1a01 = 45c5</action>
<action>maincpu.pw@1eda = 45c5</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="run">
<action>maincpu.pw@1cf4 = fafa</action>
</script>
<script state="off">
<action>maincpu.pw@1cf4 = 4e25</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x03">02 </item>
<item value="0x06">03 </item>
<item value="0x09">04 </item>
<item value="0x0c">05 (fast)</item>
</parameter>
<script state="run">
<action>maincpu.pb@1cb4 = -param</action> <!-- up -->
<action>maincpu.pb@1cb6 = param</action> <!-- down -->
<action>maincpu.pb@29d5 = param</action> <!-- right -->
<action>maincpu.pb@29d6 = -param</action> <!-- left -->
</script>
<script state="off">
<action>maincpu.pb@1cb4 = fe</action>
<action>maincpu.pb@1cb6 = 02</action>
<action>maincpu.pb@29d5 = 03</action>
<action>maincpu.pb@29d6 = fd</action>
</script>
</cheat>
<cheat desc="bullet speed">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x04">02 </item>
<item value="0x08">03 </item>
<item value="0x0c">04 </item>
<item value="0x10">05 (fast)</item>
</parameter>
<script state="run">
<action>maincpu.pb@1f3d = param</action>
</script>
<script state="off">
<action>maincpu.pb@1f3d = 04</action>
</script>
</cheat>
<cheat desc="penetration shot">
<script state="run">
<action>maincpu.pb@1f1a = 00</action>
</script>
<script state="off">
<action>maincpu.pb@1f1a = 04</action>
</script>
</cheat>
<cheat desc="sound test mode">
<script state="run">
<!-- routine -->
<action>maincpu.pw@0526 = 50c0</action>
<action>maincpu.pq@50c0 = f011a5e600cd1185</action>
<action>maincpu.pq@50c8 = 01b002a910c6c8f7</action>
<action>maincpu.pq@50d0 = 08a9e801b001a9aa</action>
<action>maincpu.pq@50d8 = 98ca10e9588a06b0</action>
<action>maincpu.pq@50e0 = 1069188a06b004a9</action>
<action>maincpu.pq@50e8 = 06f010a9108698ca</action>
<action>maincpu.pq@50f0 = 148e00c205b020a9</action>
<action>maincpu.pq@50f8 = 0000000050c02ce4</action>
<!--
50c0 | 85 11 : sta $11
50c2 | ad 00 e6 : lda $e600 // read input
50c5 | c5 11 : cmp $11
50c7 | f0 f7 : beq $50c0
50c9 | a8 : tay
50ca | a6 10 : ldx $10
50cc | c9 02 : cmp #$02
50ce | d0 01 : bne $50d1
50d0 | ca : dex // decrease code -01
50d1 | c9 01 : cmp #$01
50d3 | d0 01 : bne $50d6
50d5 | e8 : inx // increase code +01
50d6 | c9 08 : cmp #$08
50d8 | d0 06 : bne $50e0
50da | 8a : txa // decrease code -10
50db | 38 : sec
50dc | e9 10 : sbc #$10
50de | aa : tax
50df | 98 : tya
50e0 | c9 04 : cmp #$04
50e2 | d0 06 : bne $50ea
50e4 | 8a : txa // increase code +10
50e5 | 18 : clc
50e6 | 69 10 : adc #$10
50e8 | aa : tax
50e9 | 98 : tya
50ea | 86 10 : stx $10
50ec | c9 10 : cmp #$10
50ee | f0 06 : beq $50f6
50f0 | c9 20 : cmp #$20
50f2 | d0 05 : bne $50f9
50f4 | a2 00 : ldx #$00 // stop sound
50f6 | 8e 14 e4 : stx $e414 // send sound code
50f9 | 4c c0 50 : jmp $50c0
-->
<action>audiocpu.pb@0ab5 = 58</action> <!-- enable interrupt in playing music to stop sound -->
<!-- display -->
<output format="----- highway chase 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@0010</argument>
</output>
</script>
<script state="off">
<action> maincpu.pw@0526 = 2488</action>
<action> maincpu.pq@50c0 = 0000000000000000</action>
<action> maincpu.pq@50c8 = 0000000000000000</action>
<action> maincpu.pq@50d0 = 0000000000000000</action>
<action> maincpu.pq@50d8 = 0000000000000000</action>
<action> maincpu.pq@50e0 = 0000000000000000</action>
<action> maincpu.pq@50e8 = 0000000000000000</action>
<action> maincpu.pq@50f0 = 0000000000000000</action>
<action> maincpu.pq@50f8 = 0000000000000000</action>
<action>audiocpu.pb@0ab5 = 78</action>
</script>
</cheat>
jman
Posts: 1318 Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 10 times
Post
by jman » Thu Aug 08, 2024 2:41 pm
Small clean up.
chwy.xml
Code: Select all
<!-- Highway Chase (DECO Cassette) (US) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="run">
<action>maincpu.pw@15DA = 6058</action> <!-- enemy -->
<action>maincpu.pw@1A01 = 6058</action> <!-- motorbike -->
<action>maincpu.pw@1EDA = 6058</action> <!-- bullet -->
</script>
<script state="off">
<action>maincpu.pw@15DA = 45C5</action>
<action>maincpu.pw@1A01 = 45C5</action>
<action>maincpu.pw@1EDA = 45C5</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="run">
<action>maincpu.pw@1CF4 = EAEA</action>
</script>
<script state="off">
<action>maincpu.pw@1CF4 = 4E25</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x03">02 </item>
<item value="0x06">03 </item>
<item value="0x09">04 </item>
<item value="0x0c">05 (fast)</item>
</parameter>
<script state="run">
<action>maincpu.pb@1CB4 = -param</action> <!-- up -->
<action>maincpu.pb@1CB6 = param</action> <!-- down -->
<action>maincpu.pb@29D5 = param</action> <!-- right -->
<action>maincpu.pb@29D6 = -param</action> <!-- left -->
</script>
<script state="off">
<action>maincpu.pb@1CB4 = FE</action>
<action>maincpu.pb@1CB6 = 02</action>
<action>maincpu.pb@29D5 = 03</action>
<action>maincpu.pb@29D6 = FD</action>
</script>
</cheat>
<cheat desc="bullet speed">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x04">02 </item>
<item value="0x08">03 </item>
<item value="0x0c">04 </item>
<item value="0x10">05 (fast)</item>
</parameter>
<script state="run">
<action>maincpu.pb@1F3D = param</action>
</script>
<script state="off">
<action>maincpu.pb@1F3D = 04</action>
</script>
</cheat>
<cheat desc="penetration shot">
<script state="run">
<action>maincpu.pb@1F1A = 00</action>
</script>
<script state="off">
<action>maincpu.pb@1F1A = 04</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) then wait data load to enter sound test mode</comment>
<script state="run">
<!-- routine -->
<action>maincpu.pw@0526 = 50C0 </action>
<action>maincpu.pq@50C0 = F081A4E600CC8184</action>
<action>maincpu.pq@50C8 = AA01B002A080C6F7</action>
<action>maincpu.pq@50D0 = B008A0E801B001A0</action>
<action>maincpu.pq@50D8 = 04A0CA10E9588A05</action>
<action>maincpu.pq@50E0 = 86CA1069188A05B0</action>
<action>maincpu.pq@50E8 = B020A006F010A080</action>
<action>maincpu.pq@50F0 = C02CE4148E00C205</action>
<action>maincpu.pq@50F8 = 0000000000000050</action>
<!--
50C0 | 84 81 : sty $81
50C2 | AC 00 E6 : ldy $e600 // read input
50C5 | C4 81 : cpy $81
50C7 | F0 F7 : beq $50c0
50C9 | A6 80 : ldx $80
50CB | C0 02 : cpy #$02
50CD | D0 01 : bne $50d0
50CF | CA : dex // decrease code -01
50D0 | C0 01 : cpy #$01
50D2 | D0 01 : bne $50d5
50D4 | E8 : inx // increase code +01
50D5 | C0 08 : cpy #$08
50D7 | D0 05 : bne $50de
50D9 | 8A : txa // decrease code -10
50DA | 38 : sec
50DB | E9 10 : sbc #$10
50DD | AA : tax
50DE | C0 04 : cpy #$04
50E0 | D0 05 : bne $50e7
50E2 | 8A : txa // increase code +10
50E3 | 18 : clc
50E4 | 69 10 : adc #$10
50E6 | AA : tax
50E7 | 86 80 : stx $80
50E9 | C0 10 : cpy #$10
50EB | F0 06 : beq $50f3 // play sound
50ED | C0 20 : cpy #$20
50EF | D0 05 : bne $50f6
50F1 | A2 00 : ldx #$00 // stop sound
50F3 | 8E 14 E4 : stx $e414 // send sound code
50F6 | 4C C0 50 : jmp $50c0
-->
<action>audiocpu.pb@0AB5 = 58</action> <!-- enable interrupt in playing music to stop sound -->
<!-- display -->
<output format="----- 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@0080</argument>
</output>
</script>
<script state="off">
<action> maincpu.pw@0526 = 2488 </action>
<action> maincpu.pq@50C0 = 0000000000000000</action>
<action> maincpu.pq@50C8 = 0000000000000000</action>
<action> maincpu.pq@50D0 = 0000000000000000</action>
<action> maincpu.pq@50D8 = 0000000000000000</action>
<action> maincpu.pq@50E0 = 0000000000000000</action>
<action> maincpu.pq@50E8 = 0000000000000000</action>
<action> maincpu.pq@50F0 = 0000000000000000</action>
<action> maincpu.pq@50F8 = 0000000000000000</action>
<action>audiocpu.pb@0AB5 = 78 </action>
</script>
</cheat>
</mamecheat>
jman
Posts: 1318 Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 10 times
Post
by jman » Thu Aug 08, 2024 2:54 pm
madalien is the original game of chwy.
madalien.xml
Code: Select all
<!-- Mad Alien (set 1) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mw@CFE3 = 6038</action> <!-- enemy -->
<action>maincpu.mw@D4A9 = 6038</action> <!-- motorbike -->
<action>maincpu.mw@DA85 = 6038</action> <!-- bullet -->
</script>
<script state="off">
<action>maincpu.mw@CFE3 = 42A5</action>
<action>maincpu.mw@D4A9 = 42A5</action>
<action>maincpu.mw@DA85 = 42A5</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mw@D79F = EAEA</action>
</script>
<script state="off">
<action>maincpu.mw@D79F = 454B</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x04">02 </item>
<item value="0x08">03 </item>
<item value="0x0c">04 </item>
<item value="0x10">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@E5B5 = param</action> <!-- right -->
<action>maincpu.mb@E5B6 = -param</action> <!-- left -->
</script>
<script state="off">
<action>maincpu.mb@E5B5 = 03</action>
<action>maincpu.mb@E5B6 = FD</action>
</script>
</cheat>
<cheat desc="bullet speed">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x04">02 </item>
<item value="0x08">03 </item>
<item value="0x0c">04 </item>
<item value="0x10">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@DB66 = param</action>
</script>
<script state="off">
<action>maincpu.mb@DB66 = 08</action>
</script>
</cheat>
<cheat desc="penetration shot">
<script state="on">
<action>maincpu.mb@DB43 = 00</action>
</script>
<script state="off">
<action>maincpu.mb@DB43 = 04</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mb@C01B = 3D </action> <!-- disable score display -->
<action>maincpu.mb@E720 = FF </action> <!-- disable background? -->
<action>maincpu.mw@E163 = B000 </action>
<action>maincpu.mq@B000 = F081C49000AC8184</action>
<action>maincpu.mq@B008 = CA01D0FDC080A6F7</action>
<action>maincpu.mq@B010 = D0F7C0E801D0FEC0</action>
<action>maincpu.mq@B018 = FBC0AA10E9388A05</action>
<action>maincpu.mq@B020 = 86AA1069188A05D0</action>
<action>maincpu.mq@B028 = D0DFC006F0EFC080</action>
<action>maincpu.mq@B030 = 004C80068E0DA205</action>
<action>maincpu.mq@B038 = 00000000000000B0</action>
<!--
B000 | 84 81 : sty $81
B002 | AC 00 90 : ldy $9000 // read input
B005 | C4 81 : cpy $81
B007 | F0 F7 : beq $b000
B009 | A6 80 : ldx $80
B00B | C0 FD : cpy #$fd
B00D | D0 01 : bne $b010
B00F | CA : dex // decrease code -01
B010 | C0 FE : cpy #$fe
B012 | D0 01 : bne $b015
B014 | E8 : inx // increase code +01
B015 | C0 F7 : cpy #$f7
B017 | D0 05 : bne $b01e
B019 | 8A : txa // decrease code -10
B01A | 38 : sec
B01B | E9 10 : sbc #$10
B01D | AA : tax
B01E | C0 FB : cpy #$fb
B020 | D0 05 : bne $b027
B022 | 8A : txa // increase code +10
B023 | 18 : clc
B024 | 69 10 : adc #$10
B026 | AA : tax
B027 | 86 80 : stx $80
B029 | C0 EF : cpy #$ef
B02B | F0 06 : beq $b033 // play sound
B02D | C0 DF : cpy #$df
B02F | D0 05 : bne $b036
B031 | A2 0D : ldx #$0d // stop sound
B033 | 8E 06 80 : stx $8006 // send sound code
B036 | 4C 00 B0 : jmp $b000
-->
<!-- enable interrupt to stop sound in playing code 0x0e -->
<action>audiocpu.mw@FBD0 = FF80 </action>
<action>audiocpu.mq@FF80 = 00000000FDA24C58</action>
<!--
FF80 | 58 : cli
FF81 | 4C A2 FD : jmp $fda2
-->
</script>
<script state="run">
<output format="----- 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="start : stop sound" line="16" align="center" />
<output format="----------------------------" line="17" align="center" />
<output format="<< sound code %02X >>" line="19" align="center" >
<argument>maincpu.pb@0080</argument>
</output>
</script>
<script state="off">
<action> maincpu.mb@C01B = 3E </action>
<action> maincpu.mb@E720 = 4C </action>
<action> maincpu.mw@E163 = E101 </action>
<action> maincpu.mq@B000 = 0000000000000000</action>
<action> maincpu.mq@B008 = 0000000000000000</action>
<action> maincpu.mq@B010 = 0000000000000000</action>
<action> maincpu.mq@B018 = 0000000000000000</action>
<action> maincpu.mq@B020 = 0000000000000000</action>
<action> maincpu.mq@B028 = 0000000000000000</action>
<action> maincpu.mq@B030 = 0000000000000000</action>
<action> maincpu.mq@B038 = 0000000000000000</action>
<action>audiocpu.mw@FBD0 = FDA2 </action>
<action>audiocpu.mq@FF80 = 0000000000000000</action>
</script>
</cheat>
</mamecheat>
madaliena.xml
Code: Select all
<!-- Mad Alien (set 2) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mw@BFFC = 6038</action> <!-- enemy -->
<action>maincpu.mw@C4BC = 6038</action> <!-- motorbike -->
<action>maincpu.mw@CA87 = 6038</action> <!-- bullet -->
</script>
<script state="off">
<action>maincpu.mw@BFFC = 42A5</action>
<action>maincpu.mw@C4BC = 42A5</action>
<action>maincpu.mw@CA87 = 42A5</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mw@C7A1 = EAEA</action>
</script>
<script state="off">
<action>maincpu.mw@C7A1 = 454B</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x04">02 </item>
<item value="0x08">03 </item>
<item value="0x0c">04 </item>
<item value="0x10">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@D5CD = param</action> <!-- right -->
<action>maincpu.mb@D5CE = -param</action> <!-- left -->
</script>
<script state="off">
<action>maincpu.mb@D5CD = 03</action>
<action>maincpu.mb@D5CE = FD</action>
</script>
</cheat>
<cheat desc="bullet speed">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x04">02 </item>
<item value="0x08">03 </item>
<item value="0x0c">04 </item>
<item value="0x10">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@CB68 = param</action>
</script>
<script state="off">
<action>maincpu.mb@CB68 = 08</action>
</script>
</cheat>
<cheat desc="penetration shot">
<script state="on">
<action>maincpu.mb@CB45 = 00</action>
</script>
<script state="off">
<action>maincpu.mb@CB45 = 04</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mb@B01B = 3C </action> <!-- disable score display -->
<action>maincpu.mb@D738 = FF </action> <!-- disable background? -->
<action>maincpu.mw@D162 = DE80 </action>
<action>maincpu.mq@DE80 = F081C49000AC8184</action>
<action>maincpu.mq@DE88 = CA01D0FDC080A6F7</action>
<action>maincpu.mq@DE90 = D0F7C0E801D0FEC0</action>
<action>maincpu.mq@DE98 = FBC0AA10E9388A05</action>
<action>maincpu.mq@DEA0 = 86AA1069188A05D0</action>
<action>maincpu.mq@DEA8 = D0DFC006F0EFC080</action>
<action>maincpu.mq@DEB0 = 804C80068E0DA205</action>
<action>maincpu.mq@DEB8 = 00000000000000DE</action>
<!--
DE80 | 84 81 : sty $81
DE82 | AC 00 90 : ldy $9000 // read input
DE85 | C4 81 : cpy $81
DE87 | F0 F7 : beq $de80
DE89 | A6 80 : ldx $80
DE8B | C0 FD : cpy #$fd
DE8D | D0 01 : bne $de90
DE8F | CA : dex // decrease code -01
DE90 | C0 FE : cpy #$fe
DE92 | D0 01 : bne $de95
DE94 | E8 : inx // increase code +01
DE95 | C0 F7 : cpy #$f7
DE97 | D0 05 : bne $de9e
DE99 | 8A : txa // decrease code -10
DE9A | 38 : sec
DE9B | E9 10 : sbc #$10
DE9D | AA : tax
DE9E | C0 FB : cpy #$fb
DEA0 | D0 05 : bne $dea7
DEA2 | 8A : txa // increase code +10
DEA3 | 18 : clc
DEA4 | 69 10 : adc #$10
DEA6 | AA : tax
DEA7 | 86 80 : stx $80
DEA9 | C0 EF : cpy #$ef
DEAB | F0 06 : beq $deb3 // play sound
DEAD | C0 DF : cpy #$df
DEAF | D0 05 : bne $deb6
DEB1 | A2 0D : ldx #$0d // stop sound
DEB3 | 8E 06 80 : stx $8006 // send sound code
DEB6 | 4C 80 DE : jmp $de80
-->
<!-- enable interrupt to stop sound in playing code 0x0e -->
<action>audiocpu.mw@FBD0 = FF80 </action>
<action>audiocpu.mq@FF80 = 00000000FDA24C58</action>
<!--
FF80 | 58 : cli
FF81 | 4C A2 FD : jmp $fda2
-->
</script>
<script state="run">
<output format="----- 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="start : stop sound" line="16" align="center" />
<output format="----------------------------" line="17" align="center" />
<output format="<< sound code %02X >>" line="19" align="center" >
<argument>maincpu.pb@0080</argument>
</output>
</script>
<script state="off">
<action> maincpu.mb@B01B = 3D </action>
<action> maincpu.mb@D738 = 4C </action>
<action> maincpu.mw@D162 = D100 </action>
<action> maincpu.mq@DE80 = 0000000000000000</action>
<action> maincpu.mq@DE88 = 0000000000000000</action>
<action> maincpu.mq@DE90 = 0000000000000000</action>
<action> maincpu.mq@DE98 = 0000000000000000</action>
<action> maincpu.mq@DEA0 = 0000000000000000</action>
<action> maincpu.mq@DEA8 = 0000000000000000</action>
<action> maincpu.mq@DEB0 = 0000000000000000</action>
<action> maincpu.mq@DEB8 = 0000000000000000</action>
<action>audiocpu.mw@FBD0 = FDA2 </action>
<action>audiocpu.mq@FF80 = 0000000000000000</action>
</script>
</cheat>
</mamecheat>
madalienb.xml
Code: Select all
<!-- Mad Alien (set 2, alt gfx) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mw@BFFC = 6038</action> <!-- enemy -->
<action>maincpu.mw@C4BC = 6038</action> <!-- motorbike -->
<action>maincpu.mw@CA87 = 6038</action> <!-- bullet -->
</script>
<script state="off">
<action>maincpu.mw@BFFC = 42A5</action>
<action>maincpu.mw@C4BC = 42A5</action>
<action>maincpu.mw@CA87 = 42A5</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mw@C7A1 = EAEA</action>
</script>
<script state="off">
<action>maincpu.mw@C7A1 = 454B</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x04">02 </item>
<item value="0x08">03 </item>
<item value="0x0c">04 </item>
<item value="0x10">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@D5CD = param</action> <!-- right -->
<action>maincpu.mb@D5CE = -param</action> <!-- left -->
</script>
<script state="off">
<action>maincpu.mb@D5CD = 03</action>
<action>maincpu.mb@D5CE = FD</action>
</script>
</cheat>
<cheat desc="bullet speed">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x04">02 </item>
<item value="0x08">03 </item>
<item value="0x0c">04 </item>
<item value="0x10">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@CB68 = param</action>
</script>
<script state="off">
<action>maincpu.mb@CB68 = 08</action>
</script>
</cheat>
<cheat desc="penetration shot">
<script state="on">
<action>maincpu.mb@CB45 = 00</action>
</script>
<script state="off">
<action>maincpu.mb@CB45 = 04</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mb@B01B = 3C </action> <!-- disable score display -->
<action>maincpu.mb@D738 = FF </action> <!-- disable background? -->
<action>maincpu.mw@D162 = DE80 </action>
<action>maincpu.mq@DE80 = F081C49000AC8184</action>
<action>maincpu.mq@DE88 = CA01D0FDC080A6F7</action>
<action>maincpu.mq@DE90 = D0F7C0E801D0FEC0</action>
<action>maincpu.mq@DE98 = FBC0AA10E9388A05</action>
<action>maincpu.mq@DEA0 = 86AA1069188A05D0</action>
<action>maincpu.mq@DEA8 = D0DFC006F0EFC080</action>
<action>maincpu.mq@DEB0 = 804C80068E0DA205</action>
<action>maincpu.mq@DEB8 = 00000000000000DE</action>
<!--
DE80 | 84 81 : sty $81
DE82 | AC 00 90 : ldy $9000 // read input
DE85 | C4 81 : cpy $81
DE87 | F0 F7 : beq $de80
DE89 | A6 80 : ldx $80
DE8B | C0 FD : cpy #$fd
DE8D | D0 01 : bne $de90
DE8F | CA : dex // decrease code -01
DE90 | C0 FE : cpy #$fe
DE92 | D0 01 : bne $de95
DE94 | E8 : inx // increase code +01
DE95 | C0 F7 : cpy #$f7
DE97 | D0 05 : bne $de9e
DE99 | 8A : txa // decrease code -10
DE9A | 38 : sec
DE9B | E9 10 : sbc #$10
DE9D | AA : tax
DE9E | C0 FB : cpy #$fb
DEA0 | D0 05 : bne $dea7
DEA2 | 8A : txa // increase code +10
DEA3 | 18 : clc
DEA4 | 69 10 : adc #$10
DEA6 | AA : tax
DEA7 | 86 80 : stx $80
DEA9 | C0 EF : cpy #$ef
DEAB | F0 06 : beq $deb3 // play sound
DEAD | C0 DF : cpy #$df
DEAF | D0 05 : bne $deb6
DEB1 | A2 0D : ldx #$0d // stop sound
DEB3 | 8E 06 80 : stx $8006 // send sound code
DEB6 | 4C 80 DE : jmp $de80
-->
<!-- enable interrupt to stop sound in playing code 0x0e -->
<action>audiocpu.mw@FBD0 = FF80 </action>
<action>audiocpu.mq@FF80 = 00000000FDA24C58</action>
<!--
FF80 | 58 : cli
FF81 | 4C A2 FD : jmp $fda2
-->
</script>
<script state="run">
<output format="----- 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="start : stop sound" line="16" align="center" />
<output format="----------------------------" line="17" align="center" />
<output format="<< sound code %02X >>" line="19" align="center" >
<argument>maincpu.pb@0080</argument>
</output>
</script>
<script state="off">
<action> maincpu.mb@B01B = 3D </action>
<action> maincpu.mb@D738 = 4C </action>
<action> maincpu.mw@D162 = D100 </action>
<action> maincpu.mq@DE80 = 0000000000000000</action>
<action> maincpu.mq@DE88 = 0000000000000000</action>
<action> maincpu.mq@DE90 = 0000000000000000</action>
<action> maincpu.mq@DE98 = 0000000000000000</action>
<action> maincpu.mq@DEA0 = 0000000000000000</action>
<action> maincpu.mq@DEA8 = 0000000000000000</action>
<action> maincpu.mq@DEB0 = 0000000000000000</action>
<action> maincpu.mq@DEB8 = 0000000000000000</action>
<action>audiocpu.mw@FBD0 = FDA2 </action>
<action>audiocpu.mq@FF80 = 0000000000000000</action>
</script>
</cheat>
</mamecheat>