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

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.
Post Reply
jman
Posts: 1318
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 10 times

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

Post 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".
jman

my wip cheat database back-up (06/01/2025 ver.)
https://u3.getuploader.com/...../download/58
downloadpass : jman2020
jman
Posts: 1318
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 10 times

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

Post 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.
jman

my wip cheat database back-up (06/01/2025 ver.)
https://u3.getuploader.com/...../download/58
downloadpass : jman2020
jman
Posts: 1318
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 10 times

[pc_cvnia] Akuma-Jou Dracula/Castlevania

Post 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.
jman

my wip cheat database back-up (06/01/2025 ver.)
https://u3.getuploader.com/...../download/58
downloadpass : jman2020
Post Reply