Page 1 of 1

[cstlevna] Vs. Akuma-Jou Dracula/Vs. Castlevania

Posted: Fri Jun 24, 2022 1:01 pm
by jman

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 &quot;skip rom check&quot; 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="&lt;&lt; sound code %2.2X &gt;&gt;"          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".

[cstlevna] Vs. Akuma-Jou Dracula/Vs. Castlevania

Posted: Mon Jun 17, 2024 9:08 am
by jman
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 &quot;skip rom check&quot; 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="&lt;&lt; sound code %02X &gt;&gt;"           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.

[pc_cvnia] Akuma-Jou Dracula/Castlevania

Posted: Mon Jun 17, 2024 9:12 am
by jman
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 &quot;skip rom check&quot; 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="&lt;&lt; sound code %02X &gt;&gt;"       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.