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 Jun 24, 2022 1:01 pm
Code: Select all
<cheat desc="no hit">
<script state="on">
<action>prg.mb@1e7a9 = 60</action> <!-- objects ($e7a9) -->
<action>prg.mw@187bd = 88c8</action> <!-- trap ($87bd) -->
</script>
<script state="off">
<action>prg.mb@1e7a9 = bd</action>
<action>prg.mw@187bd = a575</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>prg.mb@19f5d = f7</action> <!-- ($9f5d) -->
</script>
<script state="off">
<action>prg.mb@19f5d = f5</action>
</script>
</cheat>
<cheat desc="attack speed up">
<script state="on">
<action>prg.md@1a034 = ff070605</action> <!-- attack status ($a034) -->
<action>prg.mb@1a019 = 02</action> <!-- weapon ($a019) -->
<action>prg.mb@1ad61 = 02</action> <!-- collision check [block] ($ad61) -->
<action>prg.mb@1e49b = 02</action> <!-- collision check [objects] ($e49b) -->
</script>
<script state="off">
<action>prg.md@1a034 = 05050505</action>
<action>prg.mb@1a019 = 11</action>
<action>prg.mb@1ad61 = 09</action>
<action>prg.mb@1e49b = 11</action>
</script>
</cheat>
<cheat desc="multiple jump">
<script state="on">
<action>prg.mw@1989b = bfa0</action> <!-- in jumping ($989b) -->
<action>prg.mw@198a7 = bfa8</action> <!-- in falling ($98a7) -->
<action>prg.mq@1bfa0 = 99af4c0bb0bfb320</action>
<action>prg.mq@1bfa8 = 9c844c03b0bfb320</action>
<action>prg.mq@1bfb0 = d08029f5a599394c</action>
<action>prg.mq@1bfb8 = 046c8d00a9601802</action>
<action>prg.mq@1bfc0 = f0032905848df7a5</action>
<action>prg.mq@1bfc8 = ff603804508d4a04</action>
<!--
bfa0 | 20 b3 bf : jsr $bfb3 // in jumping
bfa3 | b0 0b : bcs $bfb0
bfa5 | 4c af 99 : jmp $99af
bfa8 | 20 b3 bf : jsr $bfb3 // in falling
bfab | b0 03 : bcs $bfb0
bfad | 4c 84 9c : jmp $9c84
bfb0 | 4c 39 99 : jmp $9939
bfb3 | a5 f5 : lda $f5 // main check routine
bfb5 | 29 80 : and #$80
bfb7 | d0 02 : bne $bfbb
bfb9 | 18 : clc
bfba | 60 : rts
bfbb | a9 00 : lda #$00
bfbd | 8d 6c 04 : sta $046c
bfc0 | a5 f7 : lda $f7
bfc2 | 8d 84 05 : sta $0584
bfc5 | 29 03 : and #$03
bfc7 | f0 04 : beq $bfcd
bfc9 | 4a : lsr a
bfca | 8d 50 04 : sta $0450
bfcd | 38 : sec
bfce | 60 : rts
-->
</script>
<script state="off">
<action>prg.mw@1989b = 99af</action>
<action>prg.mw@198a7 = 9c84</action>
<action>prg.mq@1bfa0 = ffffffffffffffff</action>
<action>prg.mq@1bfa8 = ffffffffffffffff</action>
<action>prg.mq@1bfb0 = ffffffffffffffff</action>
<action>prg.mq@1bfb8 = ffffffffffffffff</action>
<action>prg.mq@1bfc0 = ffffffffffffffff</action>
<action>prg.mq@1bfc8 = ffffffffffffffff</action>
</script>
</cheat>
<cheat desc="timer speed">
<parameter>
<item value="0xff">01 (slow)</item>
<item value="0x7f">02 </item>
<item value="0x3f">03 </item>
<item value="0x1f">04 </item>
<item value="0x01">05 (fast)</item>
</parameter>
<script state="change">
<action>prg.mb@1a5d9 = param</action> <!-- ($a5d9) -->
</script>
<script state="off">
<action>prg.mb@1a5d9 = 3f</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>set "skip rom check" then reset the game (F3)</comment>
<script state="on">
<action>prg.mw@1c1f9 = fe20</action> <!-- ($c1f9) -->
<action>prg.mq@1fe20 = a633f0f1c5a8f7a5</action>
<action>prg.mq@1fe28 = 01c9ca01d002c9f0</action>
<action>prg.mq@1fe30 = 8a06d004c9e801d0</action>
<action>prg.mq@1fe38 = d008c998aa10e938</action>
<action>prg.mq@1fe40 = 8698aa1069188a06</action>
<action>prg.mq@1fe48 = 574c8a04d040c9f0</action>
<action>prg.mq@1fe50 = 2055a905d080c9fe</action>
<action>prg.mq@1fe58 = ffffff60f184c1b5</action>
<!--
fe20 | a5 f7 : lda $f7 // read input
fe22 | a8 : tay
fe23 | c5 f1 : cmp $f1
fe25 | f0 33 : beq $fe5a
fe27 | a6 f0 : ldx $f0
fe29 | c9 02 : cmp #$02
fe2b | d0 01 : bne $fe2e
fe2d | ca : dex // decrease code -01
fe2e | c9 01 : cmp #$01
fe30 | d0 01 : bne $fe33
fe32 | e8 : inx // increase code +01
fe33 | c9 04 : cmp #$04
fe35 | d0 06 : bne $fe3d
fe37 | 8a : txa // decrease code -10
fe38 | 38 : sec
fe39 | e9 10 : sbc #$10
fe3b | aa : tax
fe3c | 98 : tya
fe3d | c9 08 : cmp #$08
fe3f | d0 06 : bne $fe47
fe41 | 8a : txa // increase code +10
fe42 | 18 : clc
fe43 | 69 10 : adc #$10
fe45 | aa : tax
fe46 | 98 : tya
fe47 | 86 f0 : stx $f0
fe49 | c9 40 : cmp #$40
fe4b | d0 04 : bne $fe51
fe4d | 8a : txa // play sound
fe4e | 4c 57 fe : jmp $fe57
fe51 | c9 80 : cmp #$80
fe53 | d0 05 : bne $fe5a
fe55 | a9 55 : lda #$55 // stop music
fe57 | 20 b5 c1 : jsr $c1b5
fe5a | 84 f1 : sty $f1
fe5c | 60 : rts
-->
</script>
<script state="run">
<output format="----- vs. castlevania 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 music" line="16" align="center" />
<output format="----------------------------" line="17" align="center" />
<output format="<< sound code %2.2X >>" line="19" align="center" >
<argument>maincpu.pb@00f0</argument>
</output>
</script>
<script state="off">
<action>prg.mw@1c1f9 = bd25</action>
<action>prg.mq@1fe20 = ffffffffffffffff</action>
<action>prg.mq@1fe28 = ffffffffffffffff</action>
<action>prg.mq@1fe30 = ffffffffffffffff</action>
<action>prg.mq@1fe38 = ffffffffffffffff</action>
<action>prg.mq@1fe40 = ffffffffffffffff</action>
<action>prg.mq@1fe48 = ffffffffffffffff</action>
<action>prg.mq@1fe50 = ffffffffffffffff</action>
<action>prg.mq@1fe58 = ffffffffffffffff</action>
</script>
</cheat>
<cheat desc="skip rom check">
<script state="on">
<action>prg.mb@1fc56 = 60</action> <!-- ($fc56) -->
</script>
<script state="off">
<action>prg.mb@1fc56 = 20</action>
</script>
</cheat>
BTW, "skip rom check" in official package based on 0.221 doesn't work since 0.242 because of
driver update . Modification is simple. Change tag "maincpu" to "prg" and address "$fc56" to "$1fc56".
jman
Posts: 1318 Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 10 times
Post
by jman » Mon Jun 17, 2024 9:08 am
cstlevna.xml
Code: Select all
<!-- Vs. Castlevania -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>prg.mb@1E7A9 = 60 </action> <!-- objects ($e7a9) -->
<action>prg.mw@187BD = 88C8</action> <!-- trap ($87bd) -->
</script>
<script state="off">
<action>prg.mb@1E7A9 = BD </action>
<action>prg.mw@187BD = A575</action>
</script>
</cheat>
<cheat desc="no fall down">
<script state="on">
<action>prg.md@1A3F3 = EABFD020 </action> <!-- ($a3f3) -->
<action>prg.mq@1BFD0 = 60D0C93FA501428D</action>
<!--
BFD0 | 8D 42 01 : sta $0142
BFD3 | A5 3F : lda $3f
BFD5 | C9 D0 : cmp #$d0
BFD7 | 60 : rts
-->
</script>
<script state="off">
<action>prg.md@1A3F3 = 1801428D </action>
<action>prg.mq@1BFD0 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>prg.mb@19F5D = F7</action> <!-- ($9f5d) -->
</script>
<script state="off">
<action>prg.mb@19F5D = F5</action>
</script>
</cheat>
<cheat desc="attack speed up">
<script state="on">
<action>prg.mb@1A019 = 02 </action> <!-- weapon ($a019) -->
<action>prg.md@1A034 = FF070605</action> <!-- attack status ($a034) -->
<action>prg.mb@1AD61 = 02 </action> <!-- collision check [block] ($ad61) -->
<action>prg.mb@1E49B = 02 </action> <!-- collision check [objects] ($e49b) -->
</script>
<script state="off">
<action>prg.mb@1A019 = 11 </action>
<action>prg.md@1A034 = 05050505</action>
<action>prg.mb@1AD61 = 09 </action>
<action>prg.mb@1E49B = 11 </action>
</script>
</cheat>
<cheat desc="multiple jump">
<script state="on">
<action>prg.mw@1989B = BFA0 </action> <!-- in jumping ($989b) -->
<action>prg.mw@198A7 = BFA8 </action> <!-- in falling ($98a7) -->
<action>prg.mq@1BFA0 = 99AF4C0BB0BFB320</action>
<action>prg.mq@1BFA8 = 9C844C03B0BFB320</action>
<action>prg.mq@1BFB0 = D08029F5A599394C</action>
<action>prg.mq@1BFB8 = 046C8D00A9601802</action>
<action>prg.mq@1BFC0 = F0032905848DF7A5</action>
<action>prg.mq@1BFC8 = FF603804508D4A04</action>
<!--
BFA0 | 20 B3 BF : jsr $bfb3 // in jumping
BFA3 | B0 0B : bcs $bfb0
BFA5 | 4C AF 99 : jmp $99af
BFA8 | 20 B3 BF : jsr $bfb3 // in falling
BFAB | B0 03 : bcs $bfb0
BFAD | 4C 84 9C : jmp $9c84
BFB0 | 4C 39 99 : jmp $9939
BFB3 | A5 F5 : lda $f5 // main routine
BFB5 | 29 80 : and #$80
BFB7 | D0 02 : bne $bfbb
BFB9 | 18 : clc
BFBA | 60 : rts
BFBB | A9 00 : lda #$00
BFBD | 8D 6C 04 : sta $046c
BFC0 | A5 F7 : lda $f7
BFC2 | 8D 84 05 : sta $0584
BFC5 | 29 03 : and #$03
BFC7 | F0 04 : beq $bfcd
BFC9 | 4A : lsr a
BFCA | 8D 50 04 : sta $0450
BFCD | 38 : sec
BFCE | 60 : rts
-->
</script>
<script state="off">
<action>prg.mw@1989B = 99AF </action>
<action>prg.mw@198A7 = 9C84 </action>
<action>prg.mq@1BFA0 = FFFFFFFFFFFFFFFF</action>
<action>prg.mq@1BFA8 = FFFFFFFFFFFFFFFF</action>
<action>prg.mq@1BFB0 = FFFFFFFFFFFFFFFF</action>
<action>prg.mq@1BFB8 = FFFFFFFFFFFFFFFF</action>
<action>prg.mq@1BFC0 = FFFFFFFFFFFFFFFF</action>
<action>prg.mq@1BFC8 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="timer speed">
<parameter>
<item value="0xff">01 (slow)</item>
<item value="0x7f">02 </item>
<item value="0x3f">03 </item>
<item value="0x1f">04 </item>
<item value="0x01">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.pb@0001A = 00 </action> <!-- initialize sub timer -->
<action> prg.mb@1A5D9 = param</action> <!-- ($a5d9) -->
</script>
<script state="off">
<action>maincpu.pb@0001A = 00</action>
<action> prg.mb@1A5D9 = 3F</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- some sfxs (eg 0x25) doesn't stop by sound stop button -->
<comment>set "skip rom check" then reset the game (F3)</comment>
<script state="on">
<action>prg.mw@1C1F9 = FE20 </action> <!-- ($c1f9) -->
<action>prg.mq@1FE20 = F0A631F0F1C4F7A4</action>
<action>prg.mq@1FE28 = D001C0CA01D002C0</action>
<action>prg.mq@1FE30 = 388A05D004C0E801</action>
<action>prg.mq@1FE38 = 8A05D008C0AA10E9</action>
<action>prg.mq@1FE40 = 40C0F086AA106918</action>
<action>prg.mq@1FE48 = 80C0FE544C8A04D0</action>
<action>prg.mq@1FE50 = 84C1B52055A905D0</action>
<action>prg.mq@1FE58 = FFFFFFFFFFFF60F1</action>
<!--
FE20 | A4 F7 : ldy $f7 // read input
FE22 | C4 F1 : cpy $f1
FE24 | F0 31 : beq $fe57
FE26 | A6 F0 : ldx $f0
FE28 | C0 02 : cpy #$02
FE2A | D0 01 : bne $fe2d
FE2C | CA : dex // decrease code -01
FE2D | C0 01 : cpy #$01
FE2F | D0 01 : bne $fe32
FE31 | E8 : inx // increase code +01
FE32 | C0 04 : cpy #$04
FE34 | D0 05 : bne $fe3b
FE36 | 8A : txa // decrease code -10
FE37 | 38 : sec
FE38 | E9 10 : sbc #$10
FE3A | AA : tax
FE3B | C0 08 : cpy #$08
FE3D | D0 05 : bne $fe44
FE3F | 8A : txa // increase code +10
FE40 | 18 : clc
FE41 | 69 10 : adc #$10
FE43 | AA : tax
FE44 | 86 F0 : stx $f0
FE46 | C0 40 : cpy #$40
FE48 | D0 04 : bne $fe4e
FE4A | 8A : txa // play sound
FE4B | 4C 54 FE : jmp $fe54
FE4E | C0 80 : cpy #$80
FE50 | D0 05 : bne $fe57
FE52 | A9 55 : lda #$55 // stop sound
FE54 | 20 B5 C1 : jsr $c1b5 // send sound code
FE57 | 84 F1 : sty $f1
FE59 | 60 : rts
-->
</script>
<script state="run">
<output format="----- vs. castlevania 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 music" line="16" align="center" />
<output format="----------------------------" line="17" align="center" />
<output format="<< sound code %02X >>" line="19" align="center" >
<argument>maincpu.pb@00F0</argument>
</output>
</script>
<script state="off">
<action>prg.mw@1C1F9 = BD25 </action>
<action>prg.mq@1FE20 = FFFFFFFFFFFFFFFF</action>
<action>prg.mq@1FE28 = FFFFFFFFFFFFFFFF</action>
<action>prg.mq@1FE30 = FFFFFFFFFFFFFFFF</action>
<action>prg.mq@1FE38 = FFFFFFFFFFFFFFFF</action>
<action>prg.mq@1FE40 = FFFFFFFFFFFFFFFF</action>
<action>prg.mq@1FE48 = FFFFFFFFFFFFFFFF</action>
<action>prg.mq@1FE50 = FFFFFFFFFFFFFFFF</action>
<action>prg.mq@1FE58 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip rom check">
<script state="on">
<action>prg.mb@1FC56 = 60</action> <!-- ($fc56) -->
</script>
<script state="off">
<action>prg.mb@1FC56 = 20</action>
</script>
</cheat>
</mamecheat>
"no fall down" : Added new.
"timer speed" : Initialized sub timer.
"sound test mode" : Rewritten routine.
jman
Posts: 1318 Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 10 times
Post
by jman » Mon Jun 17, 2024 9:12 am
pc_cvnia.xml
Code: Select all
<!-- Castlevania (PlayChoice-10) -->
<mamecheat version="1">
<cheat desc="infinite main time with auto enter">
<script state="on">
<action>temp0 = maincpu.mw@0080</action>
<!-- bios 0 : Dual Monitor Version -->
<action condition="temp0 == 0x11eb">maincpu.mw@0080 = 3F00 </action>
<action condition="temp0 == 0x11eb">maincpu.mq@3F00 = EBCD80D222999921</action>
<action condition="temp0 == 0x11eb">maincpu.mq@3F08 = 000000000000C911</action>
<action condition="temp0 == 0x11eb">maincpu.mb@0F54 = 18 </action>
<!-- bios 1, 3 : Single Monitor Version -->
<action condition="temp0 == 0x1416">maincpu.mw@0080 = 3CB0 </action>
<action condition="temp0 == 0x1416">maincpu.mq@3CB0 = 16CD80D222999921</action>
<action condition="temp0 == 0x1416">maincpu.mq@3CB8 = 000000000000C914</action>
<action condition="temp0 == 0x1416">maincpu.mb@11B1 = 18 </action>
<!-- bios 2 : Alternate BIOS -->
<action condition="temp0 == 0x0f3e">maincpu.mw@0080 = 3D50 </action>
<action condition="temp0 == 0x0f3e">maincpu.mq@3D50 = 3ECD80D222999921</action>
<action condition="temp0 == 0x0f3e">maincpu.mq@3D58 = FFFFFFFFFFFFC90F</action>
<action condition="temp0 == 0x0f3e">maincpu.mb@0CC0 = 18 </action>
<!-- bios 4 : Dual Monitor Version (alternate) -->
<action condition="temp0 == 0x11e1">maincpu.mw@0080 = 3F00 </action>
<action condition="temp0 == 0x11e1">maincpu.mq@3F00 = E1CD80D222999921</action>
<action condition="temp0 == 0x11e1">maincpu.mq@3F08 = 000000000000C911</action>
<action condition="temp0 == 0x11e1">maincpu.mb@0F54 = 18 </action>
</script>
<script state="off">
<action> maincpu.mw@0080 = temp0 </action>
<action condition="(temp0 == 0x11eb) || (temp0 == 0x11e1)">maincpu.mq@3F00 = 0000000000000000</action>
<action condition="(temp0 == 0x11eb) || (temp0 == 0x11e1)">maincpu.mq@3F08 = 0000000000000000</action>
<action condition="(temp0 == 0x11eb) || (temp0 == 0x11e1)">maincpu.mb@0F54 = 20 </action>
<action condition="(temp0 == 0x1416)"> maincpu.mq@3CB0 = 0000000000000000</action>
<action condition="(temp0 == 0x1416)"> maincpu.mq@3CB8 = 0000000000000000</action>
<action condition="(temp0 == 0x1416)"> maincpu.mq@11B1 = 20 </action>
<action condition="(temp0 == 0x0f3e)"> maincpu.mq@3D50 = FFFFFFFFFFFFFFFF</action>
<action condition="(temp0 == 0x0f3e)"> maincpu.mq@3D58 = FFFFFFFFFFFFFFFF</action>
<action condition="(temp0 == 0x0f3e)"> maincpu.mq@0CC0 = 20 </action>
</script>
</cheat>
<cheat desc="skip bios rom check">
<script state="on">
<action condition="maincpu.mw@0244 = 0x159b">temp0 = maincpu.mw@0244, maincpu.mw@0244 = 024D</action>
<action condition="maincpu.mw@024f = 0x17fa">temp0 = maincpu.mw@024F, maincpu.mw@024F = 0258</action>
<action condition="maincpu.mw@0246 = 0x12ee">temp0 = maincpu.mw@0246, maincpu.mw@0246 = 024F</action>
<action condition="maincpu.mw@0244 = 0x1591">temp0 = maincpu.mw@0244, maincpu.mw@0244 = 024D</action>
</script>
<script state="off">
<action condition="temp0 == 0x159b">maincpu.mw@0244 = temp0</action>
<action condition="temp0 == 0x17fa">maincpu.mw@024F = temp0</action>
<action condition="temp0 == 0x12ee">maincpu.mw@0246 = temp0</action>
<action condition="temp0 == 0x1591">maincpu.mw@0244 = temp0</action>
</script>
</cheat>
<cheat desc=" " />
<cheat desc="no hit">
<script state="on">
<action>prg.mb@182D7 = 88</action> <!-- trap ($82d7) -->
<action>prg.mb@1E70D = 60</action> <!-- objects ($e70d) -->
</script>
<script state="off">
<action>prg.mb@182D7 = 48</action>
<action>prg.mb@1E70D = BD</action>
</script>
</cheat>
<cheat desc="no fall down">
<script state="on">
<action>prg.md@19EC4 = EABA7020 </action> <!-- ($9ec4) -->
<action>prg.mq@1BA70 = 60D0C93FA501428D</action>
<!--
BA70 | 8D 42 01 : sta $0142
BA73 | A5 3F : lda $3f
BA75 | C9 D0 : cmp #$d0
BA77 | 60 : rts
-->
</script>
<script state="off">
<action>prg.md@19EC4 = 1801428D </action>
<action>prg.mq@1BA70 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>prg.mb@19A30 = F7</action> <!-- ($9a30) -->
</script>
<script state="off">
<action>prg.mb@19A30 = F5</action>
</script>
</cheat>
<cheat desc="attack speed up">
<script state="on">
<action>prg.mb@19AEC = 02 </action> <!-- weapon ($9aec) -->
<action>prg.md@19B08 = FF070605</action> <!-- attack status ($9b08) -->
<action>prg.mb@1A834 = 02 </action> <!-- collision check [block] ($a834) -->
<action>prg.mb@1E3FF = 02 </action> <!-- collision check [objects] ($e3ff) -->
</script>
<script state="off">
<action>prg.mb@19AEC = 11 </action>
<action>prg.md@19B08 = 05050505</action>
<action>prg.mb@1A834 = 09 </action>
<action>prg.mb@1E3FF = 11 </action>
</script>
</cheat>
<cheat desc="multiple jump">
<script state="on">
<action>prg.mw@1936E = BA40 </action> <!-- in jumping ($936e) -->
<action>prg.mw@1937A = BA48 </action> <!-- in falling ($937a) -->
<action>prg.mq@1BA40 = 94824C0BB0BA5320</action>
<action>prg.mq@1BA48 = 97574C03B0BA5320</action>
<action>prg.mq@1BA50 = D08029F5A5940C4C</action>
<action>prg.mq@1BA58 = 046C8D00A9601802</action>
<action>prg.mq@1BA60 = F0032905848DF7A5</action>
<action>prg.mq@1BA68 = FF603804508D4A04</action>
<!--
BA40 | 20 53 BA : jsr $ba53 // in jumping
BA43 | B0 0B : bcs $ba50
BA45 | 4C 82 94 : jmp $9482
BA48 | 20 53 BF : jsr $bf53 // in falling
BA4B | B0 03 : bcs $bfb0
BA4D | 4C 57 97 : jmp $9757
BA50 | 4C 0C 94 : jmp $940c
BA53 | A5 F5 : lda $f5 // main routine
BA55 | 29 80 : and #$80
BA57 | D0 02 : bne $ba5b
BA59 | 18 : clc
BA5A | 60 : rts
BA5B | A9 00 : lda #$00
BA5D | 8D 6C 04 : sta $046c
BA60 | A5 F7 : lda $f7
BA62 | 8D 84 05 : sta $0584
BA65 | 29 03 : and #$03
BA67 | F0 04 : beq $ba6d
BA69 | 4A : lsr a
BA6A | 8D 50 04 : sta $0450
BA6D | 38 : sec
BA6E | 60 : rts
-->
</script>
<script state="off">
<action>prg.mw@1936E = 9482 </action>
<action>prg.mw@1937A = 9757 </action>
<action>prg.mq@1BF40 = FFFFFFFFFFFFFFFF</action>
<action>prg.mq@1BF48 = FFFFFFFFFFFFFFFF</action>
<action>prg.mq@1BF50 = FFFFFFFFFFFFFFFF</action>
<action>prg.mq@1BF58 = FFFFFFFFFFFFFFFF</action>
<action>prg.mq@1BF60 = FFFFFFFFFFFFFFFF</action>
<action>prg.mq@1BF68 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="timer speed">
<parameter>
<item value="0xff">01 (slow)</item>
<item value="0x7f">02 </item>
<item value="0x3f">03 </item>
<item value="0x1f">04 </item>
<item value="0x01">05 (fast)</item>
</parameter>
<script state="change">
<action>cart.pb@0001A = 00 </action> <!-- initialize sub timer -->
<action> prg.mb@1A0AC = param</action> <!-- ($a0ac) -->
</script>
<script state="off">
<action>cart.pb@0001A = 00</action>
<action> prg.mb@1A0AC = 3F</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- some sfxs (eg 0x25) doesn't stop by sound stop button -->
<comment>set "skip rom check" then reset the game (F3)</comment>
<script state="on">
<action>prg.mw@1C1D5 = BA80 </action> <!-- ($c1d5) -->
<action>prg.mq@1BA80 = F0A631F0F1C4F7A4</action>
<action>prg.mq@1BA88 = D001C0CA01D002C0</action>
<action>prg.mq@1BA90 = 388A05D004C0E801</action>
<action>prg.mq@1BA98 = 8A05D008C0AA10E9</action>
<action>prg.mq@1BAA0 = 40C0F086AA106918</action>
<action>prg.mq@1BAA8 = 80C0BAB44C8A04D0</action>
<action>prg.mq@1BAB0 = 84C1952055A905D0</action>
<action>prg.mq@1BAB8 = FFFFFFFFFFFF60F1</action>
<!--
BA80 | A4 F7 : ldy $f7 // read input
BA82 | C4 F1 : cpy $f1
BA84 | F0 31 : beq $bab7
BA86 | A6 F0 : ldx $f0
BA88 | C0 02 : cpy #$02
BA8A | D0 01 : bne $ba8d
BA8C | CA : dex // decrease code -01
BA8D | C0 01 : cpy #$01
BA8F | D0 01 : bne $ba92
BA91 | E8 : inx // increase code +01
BA92 | C0 04 : cpy #$04
BA94 | D0 05 : bne $ba9b
BA96 | 8A : txa // decrease code -10
BA97 | 38 : sec
BA98 | E9 10 : sbc #$10
BA9A | AA : tax
BA9B | C0 08 : cpy #$08
BA9D | D0 05 : bne $baa4
BA9F | 8A : txa // increase code +10
BAA0 | 18 : clc
BAA1 | 69 10 : adc #$10
BAA3 | AA : tax
BAA4 | 86 F0 : stx $f0
BAA6 | C0 40 : cpy #$40
BAA8 | D0 04 : bne $baae
BAAA | 8A : txa // play sound
BAAB | 4C B4 BA : jmp $bab4
BAAE | C0 80 : cpy #$80
BAB0 | D0 05 : bne $bab7
BAB2 | A9 55 : lda #$55 // stop sound
BAB4 | 20 95 C1 : jsr $c195 // send sound code
BAB7 | 84 F1 : sty $f1
BAB9 | 60 : rts
-->
</script>
<script state="run">
<output format="----- castlevania 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 music" line="16" align="center" />
<output format="----------------------------" line="17" align="center" />
<output format="<< sound code %02X >>" line="19" align="center" >
<argument>cart.pb@00F0</argument>
</output>
</script>
<script state="off">
<action>prg.mw@1C1D5 = B7DC </action>
<action>prg.mq@1BA80 = FFFFFFFFFFFFFFFF</action>
<action>prg.mq@1BA88 = FFFFFFFFFFFFFFFF</action>
<action>prg.mq@1BA90 = FFFFFFFFFFFFFFFF</action>
<action>prg.mq@1BA98 = FFFFFFFFFFFFFFFF</action>
<action>prg.mq@1BAA0 = FFFFFFFFFFFFFFFF</action>
<action>prg.mq@1BAA8 = FFFFFFFFFFFFFFFF</action>
<action>prg.mq@1BAB0 = FFFFFFFFFFFFFFFF</action>
<action>prg.mq@1BAB8 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
</mamecheat>
"infinite main time with auto enter" and "skip bios rom check" are common code for PlayChoice-10.