Page 1 of 1
[chwy] Highway Chase
Posted: Fri Jan 13, 2023 11:59 am
by jman
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>
[chwy] Highway Chase
Posted: Thu Aug 08, 2024 2:41 pm
by jman
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>
[madalien]+ Mad Alien
Posted: Thu Aug 08, 2024 2:54 pm
by jman
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>