Page 1 of 1
[leprechn] Leprechaun
Posted: Sun Jul 30, 2023 1:37 pm
by jman
Code: Select all
<!-- Leprechaun (set 1) -->
<mamecheat version="1">
<cheat desc="player speed">
<parameter>
<item value="0x02">01 (slow)</item>
<item value="0x08">02 </item>
<item value="0x0c">03 </item>
<item value="0x10">04 </item>
<item value="0x14">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.mb@8c99 = a9</action> <!-- right -->
<action>maincpu.mb@8ca4 = a9</action> <!-- upper-right -->
<action>maincpu.mb@8cb2 = a9</action> <!-- up -->
<action>maincpu.mb@8cbb = e9</action> <!-- upper-left : left -->
<action>maincpu.mb@8cc0 = a9</action> <!-- upper-left : up -->
<action>maincpu.mb@8cc9 = e9</action> <!-- left -->
<action>maincpu.mb@8cd7 = e9</action> <!-- lower-left -->
<action>maincpu.mb@8ce8 = e9</action> <!-- down -->
<action>maincpu.mb@8cee = a9</action> <!-- lower-right : right -->
<action>maincpu.mb@8cf6 = e9</action> <!-- lower-right : down -->
</script>
<script state="change">
<action>maincpu.mb@8c9a = param</action>
<action>maincpu.mb@8ca5 = param</action>
<action>maincpu.mb@8cb3 = param</action>
<action>maincpu.mb@8cbc = param</action>
<action>maincpu.mb@8cc1 = param</action>
<action>maincpu.mb@8cca = param</action>
<action>maincpu.mb@8cd8 = param</action>
<action>maincpu.mb@8ce9 = param</action>
<action>maincpu.mb@8cef = param</action>
<action>maincpu.mb@8cf7 = param</action>
</script>
<script state="off">
<action>maincpu.mw@8c99 = 13a5</action>
<action>maincpu.mw@8ca4 = 14a5</action>
<action>maincpu.mw@8cb2 = 13a5</action>
<action>maincpu.mw@8cbb = 14e5</action>
<action>maincpu.mw@8cc0 = 14a5</action>
<action>maincpu.mw@8cc9 = 13e5</action>
<action>maincpu.mw@8cd7 = 14e5</action>
<action>maincpu.mw@8ce8 = 13e5</action>
<action>maincpu.mw@8cee = 14a5</action>
<action>maincpu.mw@8cf6 = 14e5</action>
</script>
</cheat>
<cheat desc="sound test mode (test)">
<!-- you can't stop "no loop" sound by sound stop button -->
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mq@f063 = 4af0ac2002a98184</action>
<action>maincpu.mq@f06b = 2004a982854a4a4a</action>
<action>maincpu.mq@f073 = f081c5a88205f0ac</action>
<action>maincpu.mq@f07b = ca01d010c080a6e7</action>
<action>maincpu.mq@f083 = d020c0e801d040c0</action>
<action>maincpu.mq@f08b = 80c0aa10e9388a05</action>
<action>maincpu.mq@f093 = 86aa1069188a05d0</action>
<action>maincpu.mq@f09b = d002c006f008c080</action>
<action>maincpu.mq@f0a3 = 634c30018e00a205</action>
<action>maincpu.mq@f0ab = adeaea28008d78f0</action>
<action>maincpu.mq@f0b3 = 85026058ff492801</action>
<!--
f065 | a9 02 : lda #$02
f067 | 20 ac f0 : jsr $f0ac // read start buttons
f06a | 4a : lsr a
f06b | 4a : lsr a
f06c | 4a : lsr a
f06d | 4a : lsr a
f06e | 85 82 : sta $82
f070 | a9 04 : lda #$04
f072 | 20 ac f0 : jsr $f0ac // read other inputs
f075 | 05 82 : ora $82
f077 | a8 : tay
f078 | c5 81 : cmp $81
f07a | f0 e7 : beq $f063
f07c | a6 80 : ldx $80
f07e | c0 10 : cpy #$10
f080 | d0 01 : bne $f083
f082 | ca : dex // decrease code -01
f083 | c0 40 : cpy #$40
f085 | d0 01 : bne $f088
f087 | e8 : inx // increase code +01
f088 | c0 20 : cpy #$20
f08a | d0 05 : bne $f091
f08c | 8a : txa // decrease code -10
f08d | 38 : sec
f08e | e9 10 : sbc #$10
f090 | aa : tax
f091 | c0 80 : cpy #$80
f093 | d0 05 : bne $f09a
f095 | 8a : txa // increase code +10
f096 | 18 : clc
f097 | 69 10 : adc #$10
f099 | aa : tax
f09a | 86 80 : stx $80
f09c | c0 08 : cpy #$08
f09e | f0 06 : beq $f0a6 // play sound
f0a0 | c0 02 : cpy #$02
f0a2 | d0 05 : bne $f0a9
f0a4 | a2 00 : ldx #$00 // stop sound
f0a6 | 8e 01 30 : stx $3001
f0a9 | 4c 63 f0 : jmp $f063
f0ac | 78 : sei // input read routine
f0ad | 8d 00 28 : sta $2800
f0b0 | ea : nop
f0b1 | ea : nop
f0b2 | ad 01 28 : lda $2801
f0b5 | 49 ff : eor #$ff
f0b7 | 58 : cli
f0b8 | 60 : rts
-->
<action>audiocpu.mw@e1fe = f047</action> <!-- reset audio cpu when sound code 0x00 is set -->
</script>
<script state="run">
<output format="----- leprechaun 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="start 1 : play sound" line="15" align="center" />
<output format="start 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@0080</argument>
</output>
</script>
<script state="off">
<action> maincpu.mq@f063 = 0aa9f0eb208b8520</action>
<action> maincpu.mq@f06b = 02a92085f2a97a85</action>
<action> maincpu.mq@f073 = 86a92285f4a92185</action>
<action> maincpu.mq@f07b = e5a92685d1a92385</action>
<action> maincpu.mq@f083 = 3fa93a85b7a92785</action>
<action> maincpu.mq@f08b = 383aa58734203985</action>
<action> maincpu.mq@f093 = 691820a53a8511e9</action>
<action> maincpu.mq@f09b = 85006921a5208504</action>
<action> maincpu.mq@f0a3 = 850aa9e1d07ac621</action>
<action> maincpu.mq@f0ab = 8502a91a85caa97a</action>
<action> maincpu.mq@f0b3 = 8502a92085ada91b</action>
<action>audiocpu.mw@e1fe = f1a5</action>
</script>
</cheat>
</mamecheat>
"sound test mode" : you can't stop "no loop" sound by sound stop button. So sound code : 0x01,0x02,0x06,0x07 and 0x08 are stoppable because of "loop" sound.
NOTE : music (0x06,0x07 and 0x08) have problem in 0.257 (see
https://mametesters.org/view.php?id=293).
[leprechn]+ Leprechaun
Posted: Wed May 28, 2025 9:33 am
by jman
leprechn.xml
Code: Select all
<!-- Leprechaun (set 1) -->
<mamecheat version="1">
<cheat desc="no hit - player">
<script state="on">
<action>maincpu.mb@8FA0 = FF</action>
</script>
<script state="off">
<action>maincpu.mb@8FA0 = 12</action>
</script>
</cheat>
<cheat desc="no hit - tree">
<script state="on">
<action>maincpu.mw@901E = D710</action>
</script>
<script state="off">
<action>maincpu.mw@901E = 05A0</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x02">01 (slow)</item>
<item value="0x08">02 </item>
<item value="0x0C">03 </item>
<item value="0x10">04 </item>
<item value="0x14">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.mb@8C99 = A9</action> <!-- right -->
<action>maincpu.mb@8CA4 = A9</action> <!-- upper-right -->
<action>maincpu.mb@8CB2 = A9</action> <!-- up -->
<action>maincpu.mb@8CBB = E9</action> <!-- upper-left : left -->
<action>maincpu.mb@8CC0 = A9</action> <!-- upper-left : up -->
<action>maincpu.mb@8CC9 = E9</action> <!-- left -->
<action>maincpu.mb@8CD7 = E9</action> <!-- lower-left -->
<action>maincpu.mb@8CE8 = E9</action> <!-- down -->
<action>maincpu.mb@8CEE = A9</action> <!-- lower-right : right -->
<action>maincpu.mb@8CF6 = E9</action> <!-- lower-right : down -->
</script>
<script state="change">
<action>maincpu.mb@8C9A = param</action>
<action>maincpu.mb@8CA5 = param</action>
<action>maincpu.mb@8CB3 = param</action>
<action>maincpu.mb@8CBC = param</action>
<action>maincpu.mb@8CC1 = param</action>
<action>maincpu.mb@8CCA = param</action>
<action>maincpu.mb@8CD8 = param</action>
<action>maincpu.mb@8CE9 = param</action>
<action>maincpu.mb@8CEF = param</action>
<action>maincpu.mb@8CF7 = param</action>
</script>
<script state="off">
<action>maincpu.mw@8C99 = 13A5</action>
<action>maincpu.mw@8CA4 = 14A5</action>
<action>maincpu.mw@8CB2 = 13A5</action>
<action>maincpu.mw@8CBB = 14E5</action>
<action>maincpu.mw@8CC0 = 14A5</action>
<action>maincpu.mw@8CC9 = 13E5</action>
<action>maincpu.mw@8CD7 = 14E5</action>
<action>maincpu.mw@8CE8 = 13E5</action>
<action>maincpu.mw@8CEE = 14A5</action>
<action>maincpu.mw@8CF6 = 14E5</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@F063 = 02A98184808500A9</action>
<action>maincpu.mq@F06B = 854A4A4A4AF0B020</action>
<action>maincpu.mq@F073 = 8205F0B02004A982</action>
<action>maincpu.mq@F07B = C080A6E7F081C4A8</action>
<action>maincpu.mq@F083 = 01D040C0CA01D010</action>
<action>maincpu.mq@F08B = E9388A05D020C0E8</action>
<action>maincpu.mq@F093 = 188A05D080C0AA10</action>
<action>maincpu.mq@F09B = F008C08086AA1069</action>
<action>maincpu.mq@F0A3 = 8E00A205D002C006</action>
<action>maincpu.mq@F0AB = 008D78F0674C3001</action>
<action>maincpu.mq@F0B3 = FF492801ADEAEA28</action>
<action>maincpu.mq@F0BB = 8586A92285EA6058</action>
<!--
F063 | A9 00 : lda #$00 // initialize sound code
F065 | 85 80 : sta $80
F067 | 84 81 : sty $81
F069 | A9 02 : lda #$02 // read start button
F06B | 20 B0 F0 : jsr $f0b0
F06E | 4A : lsr a
F06F | 4A : lsr a
F070 | 4A : lsr a
F071 | 4A : lsr a
F072 | 85 82 : sta $82
F074 | A9 04 : lda #$04 // read other inputs
F076 | 20 B0 F0 : jsr $f0b0
F079 | 05 82 : ora $82
F07B | A8 : tay
F07C | C4 81 : cpy $81
F07E | F0 E7 : beq $f067
F080 | A6 80 : ldx $80
F082 | C0 10 : cpy #$10
F084 | D0 01 : bne $f087
F086 | CA : dex // decrease code -01
F087 | C0 40 : cpy #$40
F089 | D0 01 : bne $f08c
F08B | E8 : inx // increase code +01
F08C | C0 20 : cpy #$20
F08E | D0 05 : bne $f095
F090 | 8A : txa // decrease code -10
F091 | 38 : sec
F092 | E9 10 : sbc #$10
F094 | AA : tax
F095 | C0 80 : cpy #$80
F097 | D0 05 : bne $f09e
F099 | 8A : txa // increase code +10
F09A | 18 : clc
F09B | 69 10 : adc #$10
F09D | AA : tax
F09E | 86 80 : stx $80
F0A0 | C0 08 : cpy #$08
F0A2 | F0 06 : beq $f0aa // play sound
F0A4 | C0 02 : cpy #$02
F0A6 | D0 05 : bne $f0ad
F0A8 | A2 00 : ldx #$00 // stop sound
F0AA | 8E 01 30 : stx $3001 // send sound code
F0AD | 4C 67 F0 : jmp $f067
F0B0 | 78 : sei
F0B1 | 8D 00 28 : sta $2800 // input read routine
F0B4 | EA : nop
F0B5 | EA : nop
F0B6 | AD 01 28 : lda $2801
F0B9 | 49 FF : eor #$ff
F0BB | 58 : cli
F0BC | 60 : rts
-->
<!-- reset audio cpu when code 0x00 is selected -->
<action>audiocpu.mw@E158 = F000 </action>
<action>audiocpu.mq@E000 = 60F1AE2004F000C9</action>
<action>audiocpu.mq@E008 = B9B1A0A9C3F0474C</action>
<!--
F000 | C9 00 : cmp #$00
F002 | F0 04 : beq $f008
F004 | 20 AE F1 : jsr $f1ae
F007 | 60 : rts
F008 | 4C 47 F0 : jmp $f047
-->
</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="1P start : play sound" line="15" align="center" />
<output format="2P 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.mq@F063 = 0AA9F0EB208B8520</action>
<action> maincpu.mq@F06B = 02A92085F2A97A85</action>
<action> maincpu.mq@F073 = 86A92285F4A92185</action>
<action> maincpu.mq@F07B = E5A92685D1A92385</action>
<action> maincpu.mq@F083 = 3FA93A85B7A92785</action>
<action> maincpu.mq@F08B = 383AA58734203985</action>
<action> maincpu.mq@F093 = 691820A53A8511E9</action>
<action> maincpu.mq@F09B = 85006921A5208504</action>
<action> maincpu.mq@F0A3 = 850AA9E1D07AC621</action>
<action> maincpu.mq@F0AB = 8502A91A85CAA97A</action>
<action> maincpu.mq@F0B3 = 8502A92085ADA91B</action>
<action> maincpu.mq@F0BB = 8586A92285F2A921</action>
<action>audiocpu.mq@E000 = C8C7C9D2D9D0CFC3</action>
<action>audiocpu.mq@E008 = B9B1A0A9C3A8A0D4</action>
</script>
</cheat>
</mamecheat>
leprechna.xml
Code: Select all
<!-- Leprechaun (set 2) -->
<mamecheat version="1">
<cheat desc="no hit - player">
<script state="on">
<action>maincpu.mb@8FA0 = FF</action>
</script>
<script state="off">
<action>maincpu.mb@8FA0 = 12</action>
</script>
</cheat>
<cheat desc="no hit - tree">
<script state="on">
<action>maincpu.mw@901E = D710</action>
</script>
<script state="off">
<action>maincpu.mw@901E = 05A0</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x02">01 (slow)</item>
<item value="0x08">02 </item>
<item value="0x0C">03 </item>
<item value="0x10">04 </item>
<item value="0x14">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.mb@8C99 = A9</action> <!-- right -->
<action>maincpu.mb@8CA4 = A9</action> <!-- upper-right -->
<action>maincpu.mb@8CB2 = A9</action> <!-- up -->
<action>maincpu.mb@8CBB = E9</action> <!-- upper-left : left -->
<action>maincpu.mb@8CC0 = A9</action> <!-- upper-left : up -->
<action>maincpu.mb@8CC9 = E9</action> <!-- left -->
<action>maincpu.mb@8CD7 = E9</action> <!-- lower-left -->
<action>maincpu.mb@8CE8 = E9</action> <!-- down -->
<action>maincpu.mb@8CEE = A9</action> <!-- lower-right : right -->
<action>maincpu.mb@8CF6 = E9</action> <!-- lower-right : down -->
</script>
<script state="change">
<action>maincpu.mb@8C9A = param</action>
<action>maincpu.mb@8CA5 = param</action>
<action>maincpu.mb@8CB3 = param</action>
<action>maincpu.mb@8CBC = param</action>
<action>maincpu.mb@8CC1 = param</action>
<action>maincpu.mb@8CCA = param</action>
<action>maincpu.mb@8CD8 = param</action>
<action>maincpu.mb@8CE9 = param</action>
<action>maincpu.mb@8CEF = param</action>
<action>maincpu.mb@8CF7 = param</action>
</script>
<script state="off">
<action>maincpu.mw@8C99 = 13A5</action>
<action>maincpu.mw@8CA4 = 14A5</action>
<action>maincpu.mw@8CB2 = 13A5</action>
<action>maincpu.mw@8CBB = 14E5</action>
<action>maincpu.mw@8CC0 = 14A5</action>
<action>maincpu.mw@8CC9 = 13E5</action>
<action>maincpu.mw@8CD7 = 14E5</action>
<action>maincpu.mw@8CE8 = 13E5</action>
<action>maincpu.mw@8CEE = 14A5</action>
<action>maincpu.mw@8CF6 = 14E5</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@F063 = 02A98184808500A9</action>
<action>maincpu.mq@F06B = 854A4A4A4AF0B020</action>
<action>maincpu.mq@F073 = 8205F0B02004A982</action>
<action>maincpu.mq@F07B = C080A6E7F081C4A8</action>
<action>maincpu.mq@F083 = 01D040C0CA01D010</action>
<action>maincpu.mq@F08B = E9388A05D020C0E8</action>
<action>maincpu.mq@F093 = 188A05D080C0AA10</action>
<action>maincpu.mq@F09B = F008C08086AA1069</action>
<action>maincpu.mq@F0A3 = 8E00A205D002C006</action>
<action>maincpu.mq@F0AB = 008D78F0674C3001</action>
<action>maincpu.mq@F0B3 = FF492801ADEAEA28</action>
<action>maincpu.mq@F0BB = 8586A92285EA6058</action>
<!--
F063 | A9 00 : lda #$00 // initialize sound code
F065 | 85 80 : sta $80
F067 | 84 81 : sty $81
F069 | A9 02 : lda #$02 // read start button
F06B | 20 B0 F0 : jsr $f0b0
F06E | 4A : lsr a
F06F | 4A : lsr a
F070 | 4A : lsr a
F071 | 4A : lsr a
F072 | 85 82 : sta $82
F074 | A9 04 : lda #$04 // read other inputs
F076 | 20 B0 F0 : jsr $f0b0
F079 | 05 82 : ora $82
F07B | A8 : tay
F07C | C4 81 : cpy $81
F07E | F0 E7 : beq $f067
F080 | A6 80 : ldx $80
F082 | C0 10 : cpy #$10
F084 | D0 01 : bne $f087
F086 | CA : dex // decrease code -01
F087 | C0 40 : cpy #$40
F089 | D0 01 : bne $f08c
F08B | E8 : inx // increase code +01
F08C | C0 20 : cpy #$20
F08E | D0 05 : bne $f095
F090 | 8A : txa // decrease code -10
F091 | 38 : sec
F092 | E9 10 : sbc #$10
F094 | AA : tax
F095 | C0 80 : cpy #$80
F097 | D0 05 : bne $f09e
F099 | 8A : txa // increase code +10
F09A | 18 : clc
F09B | 69 10 : adc #$10
F09D | AA : tax
F09E | 86 80 : stx $80
F0A0 | C0 08 : cpy #$08
F0A2 | F0 06 : beq $f0aa // play sound
F0A4 | C0 02 : cpy #$02
F0A6 | D0 05 : bne $f0ad
F0A8 | A2 00 : ldx #$00 // stop sound
F0AA | 8E 01 30 : stx $3001 // send sound code
F0AD | 4C 67 F0 : jmp $f067
F0B0 | 78 : sei
F0B1 | 8D 00 28 : sta $2800 // input read routine
F0B4 | EA : nop
F0B5 | EA : nop
F0B6 | AD 01 28 : lda $2801
F0B9 | 49 FF : eor #$ff
F0BB | 58 : cli
F0BC | 60 : rts
-->
<!-- reset audio cpu when code 0x00 is selected -->
<action>audiocpu.mw@E158 = F000 </action>
<action>audiocpu.mq@E000 = 60F1AE2004F000C9</action>
<action>audiocpu.mq@E008 = B9B1A0A9C3F0474C</action>
<!--
F000 | C9 00 : cmp #$00
F002 | F0 04 : beq $f008
F004 | 20 AE F1 : jsr $f1ae
F007 | 60 : rts
F008 | 4C 47 F0 : jmp $f047
-->
</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="1P start : play sound" line="15" align="center" />
<output format="2P 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.mq@F063 = 0AA9F0EB208B8520</action>
<action> maincpu.mq@F06B = 02A92085F2A97A85</action>
<action> maincpu.mq@F073 = 86A92285F4A92185</action>
<action> maincpu.mq@F07B = E5A92685D1A92385</action>
<action> maincpu.mq@F083 = 3FA93A85B7A92785</action>
<action> maincpu.mq@F08B = 383AA58734203985</action>
<action> maincpu.mq@F093 = 691820A53A8511E9</action>
<action> maincpu.mq@F09B = 85006921A5208504</action>
<action> maincpu.mq@F0A3 = 850AA9E1D07AC621</action>
<action> maincpu.mq@F0AB = 8502A91A85CAA97A</action>
<action> maincpu.mq@F0B3 = 8502A92085ADA91B</action>
<action> maincpu.mq@F0BB = 8586A92285F2A921</action>
<action> maincpu.mq@F0BB = 8586A92285F2A921</action>
<action>audiocpu.mq@E000 = C8C7C9D2D9D0CFC3</action>
<action>audiocpu.mq@E008 = B9B1A0A9C3A8A0D4</action>
</script>
</cheat>
</mamecheat>
potogold.xml
Code: Select all
<!-- Pot of Gold -->
<mamecheat version="1">
<cheat desc="no hit - player">
<script state="on">
<action>maincpu.mb@8EF4 = FF</action>
</script>
<script state="off">
<action>maincpu.mb@8EF4 = 12</action>
</script>
</cheat>
<cheat desc="no hit - tree">
<script state="on">
<action>maincpu.mw@8F72 = D710</action>
</script>
<script state="off">
<action>maincpu.mw@8F72 = 05A0</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x02">01 (slow)</item>
<item value="0x08">02 </item>
<item value="0x0C">03 </item>
<item value="0x10">04 </item>
<item value="0x14">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.mb@8C03 = A9</action> <!-- right -->
<action>maincpu.mb@8C0E = A9</action> <!-- upper-right -->
<action>maincpu.mb@8C1C = A9</action> <!-- up -->
<action>maincpu.mb@8C25 = E9</action> <!-- upper-left : left -->
<action>maincpu.mb@8C2A = A9</action> <!-- upper-left : up -->
<action>maincpu.mb@8C33 = E9</action> <!-- left -->
<action>maincpu.mb@8C41 = E9</action> <!-- lower-left -->
<action>maincpu.mb@8C52 = E9</action> <!-- down -->
<action>maincpu.mb@8C58 = A9</action> <!-- lower-right : right -->
<action>maincpu.mb@8C60 = E9</action> <!-- lower-right : down -->
</script>
<script state="change">
<action>maincpu.mb@8C04 = param</action>
<action>maincpu.mb@8C0F = param</action>
<action>maincpu.mb@8C1D = param</action>
<action>maincpu.mb@8C26 = param</action>
<action>maincpu.mb@8C2B = param</action>
<action>maincpu.mb@8C34 = param</action>
<action>maincpu.mb@8C42 = param</action>
<action>maincpu.mb@8C53 = param</action>
<action>maincpu.mb@8C59 = param</action>
<action>maincpu.mb@8C61 = param</action>
</script>
<script state="off">
<action>maincpu.mw@8C03 = 13A5</action>
<action>maincpu.mw@8C0E = 14A5</action>
<action>maincpu.mw@8C1C = 13A5</action>
<action>maincpu.mw@8C25 = 14E5</action>
<action>maincpu.mw@8C2A = 14A5</action>
<action>maincpu.mw@8C33 = 13E5</action>
<action>maincpu.mw@8C41 = 14E5</action>
<action>maincpu.mw@8C52 = 13E5</action>
<action>maincpu.mw@8C58 = 14A5</action>
<action>maincpu.mw@8C60 = 14E5</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@ECEA = 02A98184808500A9</action>
<action>maincpu.mq@ECF2 = 854A4A4A4AED3720</action>
<action>maincpu.mq@ECFA = 8205ED372004A982</action>
<action>maincpu.mq@ED02 = C080A6E7F081C4A8</action>
<action>maincpu.mq@ED0A = 01D040C0CA01D010</action>
<action>maincpu.mq@ED12 = E9388A05D020C0E8</action>
<action>maincpu.mq@ED1A = 188A05D080C0AA10</action>
<action>maincpu.mq@ED22 = F008C08086AA1069</action>
<action>maincpu.mq@ED2A = 8E00A205D002C006</action>
<action>maincpu.mq@ED32 = 008D78ECEE4C3001</action>
<action>maincpu.mq@ED3A = FF492801ADEAEA28</action>
<action>maincpu.mq@ED42 = 8586A92285EA6058</action>
<!--
ECEA | A9 00 : lda #$00 // initialize sound code
ECEC | 85 80 : sta $80
ECEE | 84 81 : sty $81
ECF0 | A9 02 : lda #$02 // read start button
ECF2 | 20 37 ED : jsr $ed37
ECF5 | 4A : lsr a
ECF6 | 4A : lsr a
ECF7 | 4A : lsr a
ECF8 | 4A : lsr a
ECF9 | 85 82 : sta $82
ECFB | A9 04 : lda #$04 // read other inputs
ECFD | 20 37 ED : jsr $de37
ED00 | 05 82 : ora $82
ED02 | A8 : tay
ED03 | C4 81 : cpy $81
ED05 | F0 E7 : beq $ecee
ED07 | A6 80 : ldx $80
ED09 | C0 10 : cpy #$10
ED0B | D0 01 : bne $ed0e
ED0D | CA : dex // decrease code -01
ED0E | C0 40 : cpy #$40
ED10 | D0 01 : bne $ed13
ED12 | E8 : inx // increase code +01
ED13 | C0 20 : cpy #$20
ED15 | D0 05 : bne $ed1c
ED17 | 8A : txa // decrease code -10
ED18 | 38 : sec
ED19 | E9 10 : sbc #$10
ED1B | AA : tax
ED1C | C0 80 : cpy #$80
ED1E | D0 05 : bne $ed25
ED20 | 8A : txa // increase code +10
ED21 | 18 : clc
ED22 | 69 10 : adc #$10
ED24 | AA : tax
ED25 | 86 80 : stx $80
ED27 | C0 08 : cpy #$08
ED29 | F0 06 : beq $ed31 // play sound
ED2B | C0 02 : cpy #$02
ED2D | D0 05 : bne $ed34
ED2F | A2 00 : ldx #$00 // stop sound
ED31 | 8E 01 30 : stx $3001 // send sound code
ED34 | 4C EE EC : jmp $ecee
ED37 | 78 : sei
ED38 | 8D 00 28 : sta $2800 // input read routine
ED3B | EA : nop
ED3C | EA : nop
ED3D | AD 01 28 : lda $2801
ED40 | 49 FF : eor #$ff
ED42 | 58 : cli
ED43 | 60 : rts
-->
<!-- reset audio cpu when code 0x00 is selected -->
<action>audiocpu.mw@E111 = FFE0 </action>
<action>audiocpu.mq@EFE0 = 60F1672004F000C9</action>
<action>audiocpu.mq@EFE8 = A095A0EAEAF0004C</action>
<!--
FFE0 | C9 00 : cmp #$00
FFE2 | F0 04 : beq $ffe8
FFE4 | 20 67 F1 : jsr $f167
FFE7 | 60 : rts
FFE8 | 4C 00 F0 : jmp $f000
-->
</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="1P start : play sound" line="15" align="center" />
<output format="2P 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.mq@ECEA = 0AA9ED72208AEF20</action>
<action> maincpu.mq@ECF2 = 02A92085F2A97885</action>
<action> maincpu.mq@ECFA = 86A922857AA92185</action>
<action> maincpu.mq@ED02 = E2A9268558A92385</action>
<action> maincpu.mq@ED0A = 3FA93A85B7A92785</action>
<action> maincpu.mq@ED12 = 383AA586BA203985</action>
<action> maincpu.mq@ED1A = 691820A53A8511E9</action>
<action> maincpu.mq@ED22 = 85006921A5208504</action>
<action> maincpu.mq@ED2A = 850AA9E1D078C621</action>
<action> maincpu.mq@ED32 = 8502A91A85CAA978</action>
<action> maincpu.mq@ED3A = 8502A92085ADA91B</action>
<action> maincpu.mq@ED42 = 8586A9228578A921</action>
<action>audiocpu.mq@EFE0 = B8A092A0D5A0A0A2</action>
<action>audiocpu.mq@EFE8 = A095A093A0FF96A0</action>
</script>
</cheat>
</mamecheat>
"sound test mode" : Fixed sound stop problem.