sms/captsilv.xml
Code: Select all
<!-- Captain Silver (Europe, Japan) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>slot:cart:rom.mb@2FFB = 18</action> <!-- background -->
<action>slot:cart:rom.mb@60A9 = C3</action> <!-- objects (potion) -->
<action>slot:cart:rom.mb@6125 = C9</action> <!-- objects -->
</script>
<script state="off">
<action>slot:cart:rom.mb@2FFB = 20</action>
<action>slot:cart:rom.mb@60A9 = DA</action>
<action>slot:cart:rom.mb@6125 = C0</action>
</script>
</cheat>
<cheat desc="no fall down">
<script state="on">
<action>slot:cart:rom.mw@1CB8 = 7F00 </action> <!-- stand -->
<action>slot:cart:rom.mw@1D64 = 7F00 </action> <!-- walk -->
<action>slot:cart:rom.mw@2052 = 7F00 </action> <!-- crouch -->
<action>slot:cart:rom.mw@2F1B = 7F00 </action> <!-- jump -->
<action>slot:cart:rom.mq@7F00 = 047EDDF5D82ED5CD</action>
<action>slot:cart:rom.mq@7F08 = 36DDC9F1023080FE</action>
<action>slot:cart:rom.mq@7F10 = FFFFFFC937F18104</action>
<!--
7F00 | CD D5 2E : call $2ED5
7F03 | D8 : ret c
7F04 | F5 : push af
7F05 | DD 7E 04 : ld a,(ix+$04)
7F08 | FE 80 : cp $80
7F0A | 30 02 : jr nc,$7F0E
7F0C | F1 : pop af
7F0D | C9 : ret
7F0E | DD 36 04 81 : ld (ix+$04),$81
7F12 | F1 : pop af
7F13 | 37 : scf
7F14 | C9 : ret
-->
</script>
<script state="off">
<action>slot:cart:rom.mw@1CB8 = 2ED5 </action>
<action>slot:cart:rom.mw@1D64 = 2ED5 </action>
<action>slot:cart:rom.mw@2052 = 2ED5 </action>
<action>slot:cart:rom.mw@2F1B = 2ED5 </action>
<action>slot:cart:rom.mq@7F00 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7F08 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7F10 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>slot:cart:rom.md@1CE6 = CB7F20CD </action> <!-- stand -->
<action>slot:cart:rom.md@1EF0 = E67F20CD </action> <!-- jump -->
<action>slot:cart:rom.md@208D = CB7F20CD </action> <!-- crouch -->
<action>slot:cart:rom.md@23E4 = CB7F20CD </action> <!-- ladder -->
<action>slot:cart:rom.mq@7F20 = 063A4710E6C0053A</action>
<action>slot:cart:rom.mq@7F28 = FFFFFFFFFFC9B0C0</action>
<!--
7F20 | 3A 05 C0 : ld a,($C005)
7F23 | E6 10 : and $10
7F25 | 47 : ld b,a
7F26 | 3A 06 C0 : ld a,($C006)
7F29 | B0 : or b
7F2A | C9 : ret
-->
</script>
<script state="off">
<action>slot:cart:rom.md@1CE6 = CBC0063A </action>
<action>slot:cart:rom.md@1EF0 = E6C0063A </action>
<action>slot:cart:rom.md@208D = CBC0063A </action>
<action>slot:cart:rom.md@23E4 = CBC0063A </action>
<action>slot:cart:rom.mq@7F20 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7F28 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="attack speed up">
<script state="on">
<action>slot:cart:rom.mw@228C = 0101</action>
</script>
<script state="off">
<action>slot:cart:rom.mw@228C = 0202</action>
</script>
</cheat>
<cheat desc="multiple jump">
<script state="on">
<action>slot:cart:rom.mw@1C60 = 7F30 </action>
<action>slot:cart:rom.mq@7F30 = 1ECCCA6FCBC0063A</action>
<action>slot:cart:rom.mq@7F38 = FF1E82C38E1CCBDD</action>
<!--
7F30 | 3A 06 C0 : ld a,($C006)
7F33 | CB 6F : bit 5,a
7F35 | CA CC 1E : jp z,$1ECC
7F38 | DD CB 1C 8E : res 1,(ix+$1c)
7F3C | C3 82 1E : jp $1E82
-->
</script>
<script state="off">
<action>slot:cart:rom.mw@1C60 = 1ECC </action>
<action>slot:cart:rom.mq@7F30 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7F38 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="timer speed">
<parameter>
<item value="0x7f">01 (slow)</item>
<item value="0x40">02 </item>
<item value="0x20">03 </item>
<item value="0x10">04 </item>
<item value="0x00">05 (fast)</item>
</parameter>
<script state="change">
<action> maincpu.pb@C0E9 = param</action> <!-- initialize sub timer -->
<action>slot:cart:rom.mb@0E0A = param</action>
<action>slot:cart:rom.mb@6E90 = param</action> <!-- game start -->
</script>
<script state="off">
<action> maincpu.pb@C0E9 = 20</action>
<action>slot:cart:rom.mb@0E0A = 20</action>
<action>slot:cart:rom.mb@6E90 = 20</action>
</script>
</cheat>
<cheat desc="sound device">
<!-- smsj and sms1krfm only -->
<comment>reset the game (F3) to switch sound device</comment>
<parameter>
<item value="0x0028">PSG</item>
<item value="0x0118">FM </item>
</parameter>
<script state="change">
<action>slot:cart:rom.mw@012C = param</action>
</script>
<script state="off">
<action>slot:cart:rom.mw@012C = 0128</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>slot:cart:rom.mw@00DC = 7F40 </action>
<action>slot:cart:rom.mq@7F40 = DCDBC10021010FCD</action>
<action>slot:cart:rom.mq@7F48 = 0120FBFEFA2847B8</action>
<action>slot:cart:rom.mq@7F50 = FDFE340120F7FE35</action>
<action>slot:cart:rom.mq@7F58 = FEFE0618F03E0420</action>
<action>slot:cart:rom.mq@7F60 = FE787786103E0520</action>
<action>slot:cart:rom.mq@7F68 = 051880F67E0520EF</action>
<action>slot:cart:rom.mq@7F70 = DC0332AF0420DFFE</action>
<action>slot:cart:rom.mq@7F78 = FFFFFFFFFFFFCC18</action>
<!--
7F40 | CD 0F 01 : call $010F // check sound device
7F43 | 21 00 C1 : ld hl,$C100 // sound code address
7F46 | DB DC : in a,($DC) // read input
7F48 | B8 : cp b
7F49 | 47 : ld b,a
7F4A | 28 FA : jr z,$7F46
7F4C | FE FB : cp $FB
7F4E | 20 01 : jr nz,$7F51
7F50 | 35 : dec (hl) // decrease code -01
7F51 | FE F7 : cp $F7
7F53 | 20 01 : jr nz,$7F56
7F55 | 34 : inc (hl) // increase code +01
7F56 | FE FD : cp $FD
7F58 | 20 04 : jr nz,$7F5E
7F5A | 3E F0 : ld a,$F0 // decrease code -10
7F5C | 18 06 : jr $7F64
7F5E | FE FE : cp $FE
7F60 | 20 05 : jr nz,$7F67
7F62 | 3E 10 : ld a,$10 // increase code +10
7F64 | 86 : add a,(hl)
7F65 | 77 : ld (hl),a
7F66 | 78 : ld a,b
7F67 | FE EF : cp $EF
7F69 | 20 05 : jr nz,$7F70
7F6B | 7E : ld a,(hl) // play sound
7F6C | F6 80 : or $80
7F6E | 18 05 : jr $7F75
7F70 | FE DF : cp $DF
7F72 | 20 04 : jr nz,$7F78
7F74 | AF : xor a // stop sound
7F75 | 32 03 DC : ld ($DC03),a // send sound code
7F78 | 18 CC : jr $7F46
-->
</script>
<script state="run">
<output format="----- captain silver sound test mode -----" line="10" align="center" />
<output format="left : decrease code -01" line="11" align="center" />
<output format="right : increase code +01" line="12" align="center" />
<output format="down : decrease code -10" line="13" align="center" />
<output format="up : increase code +10" line="14" align="center" />
<output format="button 1 : play sound" line="15" align="center" />
<output format="button 2 : stop sound" line="16" align="center" />
<output format="----------------------------" line="17" align="center" />
<output format="<< sound code %02X >>" line="19" align="center" >
<argument>maincpu.pb@C100</argument>
</output>
</script>
<script state="off">
<action>slot:cart:rom.mw@00DC = 08D3 </action>
<action>slot:cart:rom.mq@7F40 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7F48 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7F50 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7F58 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7F60 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7F68 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip rom check error">
<script state="on">
<!-- detect bios -->
<action> temp0 = 00</action> <!-- initialize flag -->
<action condition="user1.mw@0006 == 0x7d18">temp0 = 01</action>
<action condition="user1.mw@0006 == 0x6518">temp0 = 02</action>
<action condition="user1.mw@0006 == 0x36ff">temp0 = 03</action>
<action condition="user1.mw@0006 == 0x6f18">temp0 = 04</action>
<action condition="user1.mw@0006 == 0x0000">temp0 = 05</action>
<action condition="user1.mw@0006 == 0x0406">temp0 = 06</action>
<action condition="user1.mw@0006 == 0x94cd">temp0 = 07</action>
<!-- US/European BIOS with Alex Kidd ($bef2) -->
<action condition="temp0 == 01">user1.mb@17EF2 = C3</action>
<!-- US/European BIOS v1.3 -->
<action condition="temp0 == 02">user1.mb@00128 = C3</action>
<!-- US/European BIOS v2.4 ($8142) -->
<action condition="temp0 == 03">user1.mb@1C142 = C3</action>
<!-- US/European BIOS v3.4 -->
<action condition="temp0 == 04">user1.mb@0813E = C3</action>
<!-- US/European BIOS v4.4 ($b0b9) -->
<action condition="temp0 == 05">user1.mb@170B9 = C3</action>
<!-- US Master System BIOS v1.0 -->
<action condition="temp0 == 06">user1.mb@00140 = C3</action>
<!-- European/Brazilian BIOS with Sonic -->
<action condition="temp0 == 07">user1.mb@0270E = C3</action>
</script>
<script state="off">
<action condition="temp0 == 01">user1.mb@17EF2 = CA</action>
<action condition="temp0 == 02">user1.mb@00128 = CA</action>
<action condition="temp0 == 03">user1.mb@1C142 = CA</action>
<action condition="temp0 == 04">user1.mb@0813E = CA</action>
<action condition="temp0 == 05">user1.mb@170B9 = CA</action>
<action condition="temp0 == 06">user1.mb@00140 = CA</action>
<action condition="temp0 == 07">user1.mb@0270E = CA</action>
</script>
</cheat>
</mamecheat>
sms/captsilvu.xml
Code: Select all
<!-- Captain Silver (USA) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>slot:cart:rom.mb@24D2 = 18</action> <!-- background -->
<action>slot:cart:rom.mb@4627 = C3</action> <!-- objects (potion) -->
<action>slot:cart:rom.mb@4697 = C9</action> <!-- objects -->
</script>
<script state="off">
<action>slot:cart:rom.mb@24D2 = 20</action>
<action>slot:cart:rom.mb@4627 = DA</action>
<action>slot:cart:rom.mb@4697 = C0</action>
</script>
</cheat>
<cheat desc="no fall down">
<script state="on">
<action>slot:cart:rom.mw@156C = 7F00 </action> <!-- stand -->
<action>slot:cart:rom.mw@1620 = 7F00 </action> <!-- walk -->
<action>slot:cart:rom.mw@190E = 7F00 </action> <!-- crouch -->
<action>slot:cart:rom.mw@23F2 = 7F00 </action> <!-- jump -->
<action>slot:cart:rom.mq@7F00 = 047EDDF5D823ACCD</action>
<action>slot:cart:rom.mq@7F08 = 36DDC9F1023080FE</action>
<action>slot:cart:rom.mq@7F10 = FFFFFFC937F18104</action>
<!--
7F00 | CD AC 23 : call $23AC
7F03 | D8 : ret c
7F04 | F5 : push af
7F05 | DD 7E 04 : ld a,(ix+$04)
7F08 | FE 80 : cp $80
7F0A | 30 02 : jr nc,$7F0E
7F0C | F1 : pop af
7F0D | C9 : ret
7F0E | DD 36 04 81 : ld (ix+$04),$81
7F12 | F1 : pop af
7F13 | 37 : scf
7F14 | C9 : ret
-->
</script>
<script state="off">
<action>slot:cart:rom.mw@156C = 23AC </action>
<action>slot:cart:rom.mw@1620 = 23AC </action>
<action>slot:cart:rom.mw@190E = 23AC </action>
<action>slot:cart:rom.mw@23F2 = 23AC </action>
<action>slot:cart:rom.mq@7F00 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7F08 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7F10 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>slot:cart:rom.md@15A2 = CB7F20CD </action> <!-- stand -->
<action>slot:cart:rom.md@17AC = E67F20CD </action> <!-- jump -->
<action>slot:cart:rom.md@1951 = CB7F20CD </action> <!-- crouch -->
<action>slot:cart:rom.md@1CA9 = CB7F20CD </action> <!-- ladder -->
<action>slot:cart:rom.mq@7F20 = 063A4710E6C0053A</action>
<action>slot:cart:rom.mq@7F28 = FFFFFFFFFFC9B0C0</action>
<!--
7F20 | 3A 05 C0 : ld a,($C005)
7F23 | E6 10 : and $10
7F25 | 47 : ld b,a
7F26 | 3A 06 C0 : ld a,($C006)
7F29 | B0 : or b
7F2A | C9 : ret
-->
</script>
<script state="off">
<action>slot:cart:rom.md@15A2 = CBC0063A </action>
<action>slot:cart:rom.md@17AC = E6C0063A </action>
<action>slot:cart:rom.md@1951 = CBC0063A </action>
<action>slot:cart:rom.md@1CA9 = CBC0063A </action>
<action>slot:cart:rom.mq@7F20 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7F28 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="attack speed up">
<script state="on">
<action>slot:cart:rom.mw@1B51 = 0101</action>
</script>
<script state="off">
<action>slot:cart:rom.mw@1B51 = 0202</action>
</script>
</cheat>
<cheat desc="multiple jump">
<script state="on">
<action>slot:cart:rom.mw@1514 = 7F30 </action>
<action>slot:cart:rom.mq@7F30 = 1788CA6FCBC0063A</action>
<action>slot:cart:rom.mq@7F38 = FF173EC38E1CCBDD</action>
<!--
7F30 | 3A 06 C0 : ld a,($C006)
7F33 | CB 6F : bit 5,a
7F35 | CA 88 17 : jp z,$1788
7F38 | DD CB 1C 8E : res 1,(ix+$1c)
7F3C | C3 3E 17 : jp $173E
-->
</script>
<script state="off">
<action>slot:cart:rom.mw@1514 = 1788 </action>
<action>slot:cart:rom.mq@7F30 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7F38 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="timer speed">
<parameter>
<item value="0x7f">01 (slow)</item>
<item value="0x40">02 </item>
<item value="0x20">03 </item>
<item value="0x10">04 </item>
<item value="0x00">05 (fast)</item>
</parameter>
<script state="change">
<action> maincpu.pb@C0E9 = param</action> <!-- initialize sub timer -->
<action>slot:cart:rom.mb@091E = param</action>
<action>slot:cart:rom.mb@536C = param</action> <!-- game start -->
</script>
<script state="off">
<action> maincpu.pb@C0E9 = 20</action>
<action>slot:cart:rom.mb@091E = 20</action>
<action>slot:cart:rom.mb@536C = 20</action>
</script>
</cheat>
<cheat desc="sound device">
<!-- smsj and sms1krfm only -->
<comment>reset the game (F3) to switch sound device</comment>
<parameter>
<item value="0x0028">PSG</item>
<item value="0x0118">FM </item>
</parameter>
<script state="change">
<action>slot:cart:rom.mw@012C = param</action>
</script>
<script state="off">
<action>slot:cart:rom.mw@012C = 0128</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>slot:cart:rom.mw@00DC = 7F40 </action>
<action>slot:cart:rom.mq@7F40 = DCDBC10021010FCD</action>
<action>slot:cart:rom.mq@7F48 = 0120FBFEFA2847B8</action>
<action>slot:cart:rom.mq@7F50 = FDFE340120F7FE35</action>
<action>slot:cart:rom.mq@7F58 = FEFE0618F03E0420</action>
<action>slot:cart:rom.mq@7F60 = FE787786103E0520</action>
<action>slot:cart:rom.mq@7F68 = 051880F67E0520EF</action>
<action>slot:cart:rom.mq@7F70 = DC0332AF0420DFFE</action>
<action>slot:cart:rom.mq@7F78 = FFFFFFFFFFFFCC18</action>
<!--
7F40 | CD 0F 01 : call $010F // check sound device
7F43 | 21 00 C1 : ld hl,$C100 // sound code address
7F46 | DB DC : in a,($DC) // read input
7F48 | B8 : cp b
7F49 | 47 : ld b,a
7F4A | 28 FA : jr z,$7F46
7F4C | FE FB : cp $FB
7F4E | 20 01 : jr nz,$7F51
7F50 | 35 : dec (hl) // decrease code -01
7F51 | FE F7 : cp $F7
7F53 | 20 01 : jr nz,$7F56
7F55 | 34 : inc (hl) // increase code +01
7F56 | FE FD : cp $FD
7F58 | 20 04 : jr nz,$7F5E
7F5A | 3E F0 : ld a,$F0 // decrease code -10
7F5C | 18 06 : jr $7F64
7F5E | FE FE : cp $FE
7F60 | 20 05 : jr nz,$7F67
7F62 | 3E 10 : ld a,$10 // increase code +10
7F64 | 86 : add a,(hl)
7F65 | 77 : ld (hl),a
7F66 | 78 : ld a,b
7F67 | FE EF : cp $EF
7F69 | 20 05 : jr nz,$7F70
7F6B | 7E : ld a,(hl) // play sound
7F6C | F6 80 : or $80
7F6E | 18 05 : jr $7F75
7F70 | FE DF : cp $DF
7F72 | 20 04 : jr nz,$7F78
7F74 | AF : xor a // stop sound
7F75 | 32 03 DC : ld ($DC03),a // send sound code
7F78 | 18 CC : jr $7F46
-->
</script>
<script state="run">
<output format="----- captain silver sound test mode -----" line="10" align="center" />
<output format="left : decrease code -01" line="11" align="center" />
<output format="right : increase code +01" line="12" align="center" />
<output format="down : decrease code -10" line="13" align="center" />
<output format="up : increase code +10" line="14" align="center" />
<output format="button 1 : play sound" line="15" align="center" />
<output format="button 2 : stop sound" line="16" align="center" />
<output format="----------------------------" line="17" align="center" />
<output format="<< sound code %02X >>" line="19" align="center" >
<argument>maincpu.pb@C100</argument>
</output>
</script>
<script state="off">
<action>slot:cart:rom.mw@00DC = 04A9 </action>
<action>slot:cart:rom.mq@7F40 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7F48 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7F50 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7F58 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7F60 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7F68 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip rom check error">
<script state="on">
<!-- detect bios -->
<action> temp0 = 00</action> <!-- initialize flag -->
<action condition="user1.mw@0006 == 0x7d18">temp0 = 01</action>
<action condition="user1.mw@0006 == 0x6518">temp0 = 02</action>
<action condition="user1.mw@0006 == 0x36ff">temp0 = 03</action>
<action condition="user1.mw@0006 == 0x6f18">temp0 = 04</action>
<action condition="user1.mw@0006 == 0x0000">temp0 = 05</action>
<action condition="user1.mw@0006 == 0x0406">temp0 = 06</action>
<action condition="user1.mw@0006 == 0x94cd">temp0 = 07</action>
<!-- US/European BIOS with Alex Kidd ($bef2) -->
<action condition="temp0 == 01">user1.mb@17EF2 = C3</action>
<!-- US/European BIOS v1.3 -->
<action condition="temp0 == 02">user1.mb@00128 = C3</action>
<!-- US/European BIOS v2.4 ($8142) -->
<action condition="temp0 == 03">user1.mb@1C142 = C3</action>
<!-- US/European BIOS v3.4 -->
<action condition="temp0 == 04">user1.mb@0813E = C3</action>
<!-- US/European BIOS v4.4 ($b0b9) -->
<action condition="temp0 == 05">user1.mb@170B9 = C3</action>
<!-- US Master System BIOS v1.0 -->
<action condition="temp0 == 06">user1.mb@00140 = C3</action>
<!-- European/Brazilian BIOS with Sonic -->
<action condition="temp0 == 07">user1.mb@0270E = C3</action>
</script>
<script state="off">
<action condition="temp0 == 01">user1.mb@17EF2 = CA</action>
<action condition="temp0 == 02">user1.mb@00128 = CA</action>
<action condition="temp0 == 03">user1.mb@1C142 = CA</action>
<action condition="temp0 == 04">user1.mb@0813E = CA</action>
<action condition="temp0 == 05">user1.mb@170B9 = CA</action>
<action condition="temp0 == 06">user1.mb@00140 = CA</action>
<action condition="temp0 == 07">user1.mb@0270E = CA</action>
</script>
</cheat>
</mamecheat>
sms/captsilvp.xml
Code: Select all
<!-- Captain Silver (prototype) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>slot:cart:rom.mb@24CA = 18</action> <!-- background -->
<action>slot:cart:rom.mb@4609 = C3</action> <!-- objects (potion) -->
<action>slot:cart:rom.mb@468C = C9</action> <!-- objects -->
</script>
<script state="off">
<action>slot:cart:rom.mb@24CA = 20</action>
<action>slot:cart:rom.mb@4609 = DA</action>
<action>slot:cart:rom.mb@468C = C0</action>
</script>
</cheat>
<cheat desc="no fall down">
<script state="on">
<action>slot:cart:rom.mw@156C = 7F00 </action> <!-- stand -->
<action>slot:cart:rom.mw@1620 = 7F00 </action> <!-- walk -->
<action>slot:cart:rom.mw@190E = 7F00 </action> <!-- crouch -->
<action>slot:cart:rom.mw@23EA = 7F00 </action> <!-- jump -->
<action>slot:cart:rom.mq@7F00 = 047EDDF5D823A4CD</action>
<action>slot:cart:rom.mq@7F08 = 36DDC9F1023080FE</action>
<action>slot:cart:rom.mq@7F10 = FFFFFFC937F18104</action>
<!--
7F00 | CD A4 23 : call $23A4
7F03 | D8 : ret c
7F04 | F5 : push af
7F05 | DD 7E 04 : ld a,(ix+$04)
7F08 | FE 80 : cp $80
7F0A | 30 02 : jr nc,$7F0E
7F0C | F1 : pop af
7F0D | C9 : ret
7F0E | DD 36 04 81 : ld (ix+$04),$81
7F12 | F1 : pop af
7F13 | 37 : scf
7F14 | C9 : ret
-->
</script>
<script state="off">
<action>slot:cart:rom.mw@156C = 2EA4 </action>
<action>slot:cart:rom.mw@1620 = 2ED5 </action>
<action>slot:cart:rom.mw@190E = 2ED5 </action>
<action>slot:cart:rom.mw@23EA = 2ED5 </action>
<action>slot:cart:rom.mq@7F00 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7F08 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7F10 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>slot:cart:rom.md@15A2 = CB7F20CD </action> <!-- stand -->
<action>slot:cart:rom.md@17AC = E67F20CD </action> <!-- jump -->
<action>slot:cart:rom.md@1951 = CB7F20CD </action> <!-- crouch -->
<action>slot:cart:rom.md@1CA9 = CB7F20CD </action> <!-- ladder -->
<action>slot:cart:rom.mq@7F20 = 063A4710E6C0053A</action>
<action>slot:cart:rom.mq@7F28 = FFFFFFFFFFC9B0C0</action>
<!--
7F20 | 3A 05 C0 : ld a,($C005)
7F23 | E6 10 : and $10
7F25 | 47 : ld b,a
7F26 | 3A 06 C0 : ld a,($C006)
7F29 | B0 : or b
7F2A | C9 : ret
-->
</script>
<script state="off">
<action>slot:cart:rom.md@15A2 = CBC0063A </action>
<action>slot:cart:rom.md@17AC = E6C0063A </action>
<action>slot:cart:rom.md@1951 = CBC0063A </action>
<action>slot:cart:rom.md@1CA9 = CBC0063A </action>
<action>slot:cart:rom.mq@7F20 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7F28 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="attack speed up">
<script state="on">
<action>slot:cart:rom.mw@1B51 = 0101</action>
</script>
<script state="off">
<action>slot:cart:rom.mw@1B51 = 0202</action>
</script>
</cheat>
<cheat desc="multiple jump">
<script state="on">
<action>slot:cart:rom.mw@1514 = 7F30 </action>
<action>slot:cart:rom.mq@7F30 = 1788CA6FCBC0063A</action>
<action>slot:cart:rom.mq@7F38 = FF173EC38E1CCBDD</action>
<!--
7F30 | 3A 06 C0 : ld a,($C006)
7F33 | CB 6F : bit 5,a
7F35 | CA 88 17 : jp z,$1788
7F38 | DD CB 1C 8E : res 1,(ix+$1c)
7F3C | C3 3E 17 : jp $173E
-->
</script>
<script state="off">
<action>slot:cart:rom.mw@1514 = 1788 </action>
<action>slot:cart:rom.mq@7F30 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7F38 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="timer speed">
<parameter>
<item value="0x7f">01 (slow)</item>
<item value="0x40">02 </item>
<item value="0x20">03 </item>
<item value="0x10">04 </item>
<item value="0x00">05 (fast)</item>
</parameter>
<script state="change">
<action> maincpu.pb@C0E9 = param</action> <!-- initialize sub timer -->
<action>slot:cart:rom.mb@091E = param</action>
<action>slot:cart:rom.mb@5361 = param</action> <!-- game start -->
</script>
<script state="off">
<action> maincpu.pb@C0E9 = 20</action>
<action>slot:cart:rom.mb@091E = 20</action>
<action>slot:cart:rom.mb@5361 = 20</action>
</script>
</cheat>
<cheat desc="sound device">
<!-- smsj and sms1krfm only -->
<comment>reset the game (F3) to switch sound device</comment>
<parameter>
<item value="0x0028">PSG</item>
<item value="0x0118">FM </item>
</parameter>
<script state="change">
<action>slot:cart:rom.mw@012C = param</action>
</script>
<script state="off">
<action>slot:cart:rom.mw@012C = 0128</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>slot:cart:rom.mw@00DC = 7F40 </action>
<action>slot:cart:rom.mq@7F40 = DCDBC10021010FCD</action>
<action>slot:cart:rom.mq@7F48 = 0120FBFEFA2847B8</action>
<action>slot:cart:rom.mq@7F50 = FDFE340120F7FE35</action>
<action>slot:cart:rom.mq@7F58 = FEFE0618F03E0420</action>
<action>slot:cart:rom.mq@7F60 = FE787786103E0520</action>
<action>slot:cart:rom.mq@7F68 = 051880F67E0520EF</action>
<action>slot:cart:rom.mq@7F70 = DC0332AF0420DFFE</action>
<action>slot:cart:rom.mq@7F78 = FFFFFFFFFFFFCC18</action>
<!--
7F40 | CD 0F 01 : call $010F // check sound device
7F43 | 21 00 C1 : ld hl,$C100 // sound code address
7F46 | DB DC : in a,($DC) // read input
7F48 | B8 : cp b
7F49 | 47 : ld b,a
7F4A | 28 FA : jr z,$7F46
7F4C | FE FB : cp $FB
7F4E | 20 01 : jr nz,$7F51
7F50 | 35 : dec (hl) // decrease code -01
7F51 | FE F7 : cp $F7
7F53 | 20 01 : jr nz,$7F56
7F55 | 34 : inc (hl) // increase code +01
7F56 | FE FD : cp $FD
7F58 | 20 04 : jr nz,$7F5E
7F5A | 3E F0 : ld a,$F0 // decrease code -10
7F5C | 18 06 : jr $7F64
7F5E | FE FE : cp $FE
7F60 | 20 05 : jr nz,$7F67
7F62 | 3E 10 : ld a,$10 // increase code +10
7F64 | 86 : add a,(hl)
7F65 | 77 : ld (hl),a
7F66 | 78 : ld a,b
7F67 | FE EF : cp $EF
7F69 | 20 05 : jr nz,$7F70
7F6B | 7E : ld a,(hl) // play sound
7F6C | F6 80 : or $80
7F6E | 18 05 : jr $7F75
7F70 | FE DF : cp $DF
7F72 | 20 04 : jr nz,$7F78
7F74 | AF : xor a // stop sound
7F75 | 32 03 DC : ld ($DC03),a // send sound code
7F78 | 18 CC : jr $7F46
-->
</script>
<script state="run">
<output format="----- captain silver sound test mode -----" line="10" align="center" />
<output format="left : decrease code -01" line="11" align="center" />
<output format="right : increase code +01" line="12" align="center" />
<output format="down : decrease code -10" line="13" align="center" />
<output format="up : increase code +10" line="14" align="center" />
<output format="button 1 : play sound" line="15" align="center" />
<output format="button 2 : stop sound" line="16" align="center" />
<output format="----------------------------" line="17" align="center" />
<output format="<< sound code %02X >>" line="19" align="center" >
<argument>maincpu.pb@C100</argument>
</output>
</script>
<script state="off">
<action>slot:cart:rom.mw@00DC = 04A9 </action>
<action>slot:cart:rom.mq@7F40 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7F48 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7F50 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7F58 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7F60 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7F68 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip rom check error">
<script state="on">
<!-- detect bios -->
<action> temp0 = 00</action> <!-- initialize flag -->
<action condition="user1.mw@0006 == 0x7d18">temp0 = 01</action>
<action condition="user1.mw@0006 == 0x6518">temp0 = 02</action>
<action condition="user1.mw@0006 == 0x36ff">temp0 = 03</action>
<action condition="user1.mw@0006 == 0x6f18">temp0 = 04</action>
<action condition="user1.mw@0006 == 0x0000">temp0 = 05</action>
<action condition="user1.mw@0006 == 0x0406">temp0 = 06</action>
<action condition="user1.mw@0006 == 0x94cd">temp0 = 07</action>
<!-- US/European BIOS with Alex Kidd ($bef2) -->
<action condition="temp0 == 01">user1.mb@17EF2 = C3</action>
<!-- US/European BIOS v1.3 -->
<action condition="temp0 == 02">user1.mb@00128 = C3</action>
<!-- US/European BIOS v2.4 ($8142) -->
<action condition="temp0 == 03">user1.mb@1C142 = C3</action>
<!-- US/European BIOS v3.4 -->
<action condition="temp0 == 04">user1.mb@0813E = C3</action>
<!-- US/European BIOS v4.4 ($b0b9) -->
<action condition="temp0 == 05">user1.mb@170B9 = C3</action>
<!-- US Master System BIOS v1.0 -->
<action condition="temp0 == 06">user1.mb@00140 = C3</action>
<!-- European/Brazilian BIOS with Sonic -->
<action condition="temp0 == 07">user1.mb@0270E = C3</action>
</script>
<script state="off">
<action condition="temp0 == 01">user1.mb@17EF2 = CA</action>
<action condition="temp0 == 02">user1.mb@00128 = CA</action>
<action condition="temp0 == 03">user1.mb@1C142 = CA</action>
<action condition="temp0 == 04">user1.mb@0813E = CA</action>
<action condition="temp0 == 05">user1.mb@170B9 = CA</action>
<action condition="temp0 == 06">user1.mb@00140 = CA</action>
<action condition="temp0 == 07">user1.mb@0270E = CA</action>
</script>
</cheat>
</mamecheat>
- "no hit" : Added codes for "background" and "objects (potion)".
- "no fall down", "sound device" and "skip rom check error" : Added new.
- "timer speed" : Added codes for timer initialization.
- "sound test mode" : Rewritten routine. Added up/down key to code ±10.