sms/secret.xml
Code: Select all
<!-- Secret Command (Europe) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>slot:cart:rom.mb@2614 = 32</action> <!-- bullet -->
<action>slot:cart:rom.mb@2643 = AD</action> <!-- P1 tank -->
<action>slot:cart:rom.mb@2650 = AD</action> <!-- P2 tank -->
<action>slot:cart:rom.mb@268A = AD</action> <!-- P1 grenade -->
<action>slot:cart:rom.mb@2695 = AD</action> <!-- P2 grenade -->
</script>
<script state="off">
<action>slot:cart:rom.mb@2614 = 52</action>
<action>slot:cart:rom.mb@2643 = AE</action>
<action>slot:cart:rom.mb@2650 = AE</action>
<action>slot:cart:rom.mb@268A = AE</action>
<action>slot:cart:rom.mb@2695 = AE</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>slot:cart:rom.md@1296 = 4F0010CD </action> <!-- P1 -->
<action>slot:cart:rom.md@154A = 4F0015CD </action> <!-- P2 -->
<action>slot:cart:rom.mq@0010 = C165210318C16321</action>
<action>slot:cart:rom.mq@0018 = C9B07E234710E67E</action>
<!--
0010 | 21 63 C1 : ld hl,$C163 // P1
0013 | 18 03 : jr $0018
0015 | 21 65 C1 : ld hl,$C165 // P2
0018 | 7E : ld a,(hl)
0019 | E6 10 : and $10
001B | 47 : ld b,a
001C | 23 : inc hl
001D | 7E : ld a,(hl)
001E | B0 : or b
001F | C9 : ret
-->
</script>
<script state="off">
<action>slot:cart:rom.md@1296 = 4FC1643A </action>
<action>slot:cart:rom.md@154A = 4FC1663A </action>
<action>slot:cart:rom.mq@0010 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@0018 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="walk through wall">
<script state="on">
<action>slot:cart:rom.mw@29AD = 013E</action>
</script>
<script state="off">
<action>slot:cart:rom.mw@29AD = BEDB</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x00">01 (slow)</item>
<item value="0x01">02 </item>
<item value="0x02">03 </item>
<item value="0x03">04 </item>
<item value="0x04">05 (fast)</item>
</parameter>
<script state="change">
<!-- P1 -->
<action>slot:cart:rom.mb@12FE = -param - 1</action> <!-- up -->
<action>slot:cart:rom.mb@1319 = -param - 1</action> <!-- upper-left -->
<action>slot:cart:rom.mb@1359 = -param - 1</action> <!-- upper-right : up -->
<action>slot:cart:rom.mb@135B = param </action> <!-- upper-right : right -->
<action>slot:cart:rom.mb@13D8 = -param - 1</action> <!-- left -->
<action>slot:cart:rom.mb@140A = param </action> <!-- right -->
<action>slot:cart:rom.mb@143C = param </action> <!-- down -->
<action>slot:cart:rom.mb@1456 = param </action> <!-- lower-left : down -->
<action>slot:cart:rom.mb@1458 = -param - 1</action> <!-- lower-left : left -->
<action>slot:cart:rom.mb@148C = param </action> <!-- lower-right -->
<!-- P2 -->
<action>slot:cart:rom.mb@15B2 = -param - 1</action> <!-- up -->
<action>slot:cart:rom.mb@15CD = -param - 1</action> <!-- upper-left -->
<action>slot:cart:rom.mb@160D = -param - 1</action> <!-- upper-right : up -->
<action>slot:cart:rom.mb@160F = param </action> <!-- upper-right : right -->
<action>slot:cart:rom.mb@168C = -param - 1</action> <!-- left -->
<action>slot:cart:rom.mb@16BE = param </action> <!-- right -->
<action>slot:cart:rom.mb@16F0 = param </action> <!-- down -->
<action>slot:cart:rom.mb@1709 = param </action> <!-- lower-left : down -->
<action>slot:cart:rom.mb@170B = -param - 1</action> <!-- lower-left : left -->
<action>slot:cart:rom.mb@173F = param </action> <!-- lower-right -->
</script>
<script state="off">
<action>slot:cart:rom.mb@12FE = FF</action>
<action>slot:cart:rom.mb@1319 = FF</action>
<action>slot:cart:rom.mb@1359 = FF</action>
<action>slot:cart:rom.mb@135B = 00</action>
<action>slot:cart:rom.mb@13D8 = FF</action>
<action>slot:cart:rom.mb@140A = 00</action>
<action>slot:cart:rom.mb@143C = 00</action>
<action>slot:cart:rom.mb@1456 = 00</action>
<action>slot:cart:rom.mb@1458 = FF</action>
<action>slot:cart:rom.mb@148C = 00</action>
<action>slot:cart:rom.mb@15B2 = FF</action>
<action>slot:cart:rom.mb@15CD = FF</action>
<action>slot:cart:rom.mb@160D = FF</action>
<action>slot:cart:rom.mb@160F = 00</action>
<action>slot:cart:rom.mb@168C = FF</action>
<action>slot:cart:rom.mb@16BE = 00</action>
<action>slot:cart:rom.mb@16F0 = 00</action>
<action>slot:cart:rom.mb@1709 = 00</action>
<action>slot:cart:rom.mb@170B = FF</action>
<action>slot:cart:rom.mb@173F = 00</action>
</script>
</cheat>
<cheat desc="information display">
<script state="run">
<output format="P1 <%2X> [%2X] %6X HighScore %6X P2 <%2X> [%2X] %6X" line="1" align="center" >
<argument>tobcd(maincpu.pb@C11F) </argument>
<argument>tobcd(maincpu.pb@C121) </argument>
<argument>(maincpu.pb@C11B * 100000) + (maincpu.pb@C11A * 1000) + (maincpu.pb@C119 * 10)</argument>
<argument>(maincpu.pb@C118 * 100000) + (maincpu.pb@C117 * 1000) + (maincpu.pb@C116 * 10)</argument>
<argument>tobcd(maincpu.pb@C120) </argument>
<argument>tobcd(maincpu.pb@C122) </argument>
<argument>(maincpu.pb@C11E * 100000) + (maincpu.pb@C11D * 1000) + (maincpu.pb@C11C * 10)</argument>
</output>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>set "skip rom check error" then reset the game (F3)</comment>
<script state="on">
<action>slot:cart:rom.mq@00D9 = BF00C3FFFF32023E</action>
<action>slot:cart:rom.mq@BF00 = 2847B8DCDBC10021</action>
<action>slot:cart:rom.mq@BF08 = F7FE350120FBFEFA</action>
<action>slot:cart:rom.mq@BF10 = 3E0420FDFE340120</action>
<action>slot:cart:rom.mq@BF18 = 3E0520FEFE0618F0</action>
<action>slot:cart:rom.mq@BF20 = 0520EFFE78778610</action>
<action>slot:cart:rom.mq@BF28 = 20DFFE051880F67E</action>
<action>slot:cart:rom.mq@BF30 = FFCC18DC0032AF04</action>
<!--
00D9 | 3E 02 : ld a,$02 // set bank
00DB | 32 FF FF : ld ($FFFF),a
00DE | C3 00 BF : jp $BF00
================================
BF00 | 21 00 C1 : ld hl,$C100 // sound code address
BF03 | DB DC : in a,($DC) // read input
BF05 | B8 : cp b
BF06 | 47 : ld b,a
BF07 | 28 FA : jr z,$BF03
BF09 | FE FB : cp $FB
BF0B | 20 01 : jr nz,$BF0E
BF0D | 35 : dec (hl) // decrease code -01
BF0E | FE F7 : cp $F7
BF10 | 20 01 : jr nz,$BF13
BF12 | 34 : inc (hl) // increase code +01
BF13 | FE FD : cp $FD
BF15 | 20 04 : jr nz,$BF1B
BF17 | 3E F0 : ld a,$F0 // decrease code -10
BF19 | 18 06 : jr $BF21
BF1B | FE FE : cp $FE
BF1D | 20 05 : jr nz,$BF24
BF1F | 3E 10 : ld a,$10 // increase code +10
BF21 | 86 : add a,(hl)
BF22 | 77 : ld (hl),a
BF23 | 78 : ld a,b
BF24 | FE EF : cp $EF
BF26 | 20 05 : jr nz,$BF2D
BF28 | 7E : ld a,(hl) // play sound
BF29 | F6 80 : or $80
BF2B | 18 05 : jr $BF32
BF2D | FE DF : cp $DF
BF2F | 20 04 : jr nz,$BF35
BF31 | AF : xor a // stop sound
BF32 | 32 00 DC : ld ($DC00),a // send sound code
BF35 | 18 CC : jr $BF03
-->
</script>
<script state="run">
<output format="----- sound test mode -----" line="10" align="center" />
<output format="left : decrease code -01" line="11" align="center" />
<output format="right : increase code +01" line="12" align="center" />
<output format="down : decrease code -10" line="13" align="center" />
<output format="up : increase code +10" line="14" align="center" />
<output format="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.mq@00D9 = 0715C257CBC1103A</action>
<action>slot:cart:rom.mq@BF00 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@BF08 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@BF10 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@BF18 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@BF20 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@BF28 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@BF30 = 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/rambo2.xml
Code: Select all
<!-- Rambo - First Blood Part II (USA) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>slot:cart:rom.mb@26AA = C8</action> <!-- bullet -->
<action>slot:cart:rom.mb@26D9 = 43</action> <!-- P1 tank -->
<action>slot:cart:rom.mb@26E6 = 43</action> <!-- P2 tank -->
<action>slot:cart:rom.mb@2720 = 43</action> <!-- P1 grenade -->
<action>slot:cart:rom.mb@272B = 43</action> <!-- P2 grenade -->
</script>
<script state="off">
<action>slot:cart:rom.mb@26AA = E8</action>
<action>slot:cart:rom.mb@26D9 = 44</action>
<action>slot:cart:rom.mb@26E6 = 44</action>
<action>slot:cart:rom.mb@2720 = 44</action>
<action>slot:cart:rom.mb@272B = 44</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>slot:cart:rom.md@132C = 4F0010CD </action> <!-- P1 -->
<action>slot:cart:rom.md@15E0 = 4F0015CD </action> <!-- P2 -->
<action>slot:cart:rom.mq@0010 = C165210318C16321</action>
<action>slot:cart:rom.mq@0018 = C9B07E234710E67E</action>
<!--
0010 | 21 63 C1 : ld hl,$C163 // P1
0013 | 18 03 : jr $0018
0015 | 21 65 C1 : ld hl,$C165 // P2
0018 | 7E : ld a,(hl)
0019 | E6 10 : and $10
001B | 47 : ld b,a
001C | 23 : inc hl
001D | 7E : ld a,(hl)
001E | B0 : or b
001F | C9 : ret
-->
</script>
<script state="off">
<action>slot:cart:rom.md@1239 = 4FC1643A </action>
<action>slot:cart:rom.md@14ED = 4FC1663A </action>
<action>slot:cart:rom.mq@0010 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@0018 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="walk through wall">
<script state="on">
<action>slot:cart:rom.mw@2A43 = 013E</action>
</script>
<script state="off">
<action>slot:cart:rom.mw@2A43 = BEDB</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x00">01 (slow)</item>
<item value="0x01">02 </item>
<item value="0x02">03 </item>
<item value="0x03">04 </item>
<item value="0x04">05 (fast)</item>
</parameter>
<script state="change">
<!-- P1 -->
<action>slot:cart:rom.mb@1394 = -param - 1</action> <!-- up -->
<action>slot:cart:rom.mb@13AF = -param - 1</action> <!-- upper-left -->
<action>slot:cart:rom.mb@13EF = -param - 1</action> <!-- upper-right : up -->
<action>slot:cart:rom.mb@13F1 = param </action> <!-- upper-right : right -->
<action>slot:cart:rom.mb@146E = -param - 1</action> <!-- left -->
<action>slot:cart:rom.mb@14A0 = param </action> <!-- right -->
<action>slot:cart:rom.mb@14D2 = param </action> <!-- down -->
<action>slot:cart:rom.mb@14EC = param </action> <!-- lower-left : down -->
<action>slot:cart:rom.mb@14EE = -param - 1</action> <!-- lower-left : left -->
<action>slot:cart:rom.mb@1522 = param </action> <!-- lower-right -->
<!-- P2 -->
<action>slot:cart:rom.mb@1648 = -param - 1</action> <!-- up -->
<action>slot:cart:rom.mb@1663 = -param - 1</action> <!-- upper-left -->
<action>slot:cart:rom.mb@16A3 = -param - 1</action> <!-- upper-right : up -->
<action>slot:cart:rom.mb@16A5 = param </action> <!-- upper-right : right -->
<action>slot:cart:rom.mb@1722 = -param - 1</action> <!-- left -->
<action>slot:cart:rom.mb@1754 = param </action> <!-- right -->
<action>slot:cart:rom.mb@1786 = param </action> <!-- down -->
<action>slot:cart:rom.mb@179F = param </action> <!-- lower-left : down -->
<action>slot:cart:rom.mb@17A1 = -param - 1</action> <!-- lower-left : left -->
<action>slot:cart:rom.mb@17D5 = param </action> <!-- lower-right -->
</script>
<script state="off">
<action>slot:cart:rom.mb@1394 = FF</action>
<action>slot:cart:rom.mb@13AF = FF</action>
<action>slot:cart:rom.mb@13EF = FF</action>
<action>slot:cart:rom.mb@13F1 = 00</action>
<action>slot:cart:rom.mb@146E = FF</action>
<action>slot:cart:rom.mb@14A0 = 00</action>
<action>slot:cart:rom.mb@14D2 = 00</action>
<action>slot:cart:rom.mb@14EC = 00</action>
<action>slot:cart:rom.mb@14EE = FF</action>
<action>slot:cart:rom.mb@1522 = 00</action>
<action>slot:cart:rom.mb@1648 = FF</action>
<action>slot:cart:rom.mb@1663 = FF</action>
<action>slot:cart:rom.mb@16A3 = FF</action>
<action>slot:cart:rom.mb@16A5 = 00</action>
<action>slot:cart:rom.mb@1722 = FF</action>
<action>slot:cart:rom.mb@1754 = 00</action>
<action>slot:cart:rom.mb@1786 = 00</action>
<action>slot:cart:rom.mb@179F = 00</action>
<action>slot:cart:rom.mb@17A1 = FF</action>
<action>slot:cart:rom.mb@17D5 = 00</action>
</script>
</cheat>
<cheat desc="information display">
<script state="run">
<output format="P1 <%2X> [%2X] %6X HighScore %6X P2 <%2X> [%2X] %6X" line="1" align="center" >
<argument>tobcd(maincpu.pb@C11F) </argument>
<argument>tobcd(maincpu.pb@C121) </argument>
<argument>(maincpu.pb@C11B * 100000) + (maincpu.pb@C11A * 1000) + (maincpu.pb@C119 * 10)</argument>
<argument>(maincpu.pb@C118 * 100000) + (maincpu.pb@C117 * 1000) + (maincpu.pb@C116 * 10)</argument>
<argument>tobcd(maincpu.pb@C120) </argument>
<argument>tobcd(maincpu.pb@C122) </argument>
<argument>(maincpu.pb@C11E * 100000) + (maincpu.pb@C11D * 1000) + (maincpu.pb@C11C * 10)</argument>
</output>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>set "skip rom check error" then reset the game (F3)</comment>
<script state="on">
<action>slot:cart:rom.mq@00D9 = BF00C3FFFF32023E</action>
<action>slot:cart:rom.mq@BF00 = 2847B8DCDBC10021</action>
<action>slot:cart:rom.mq@BF08 = F7FE350120FBFEFA</action>
<action>slot:cart:rom.mq@BF10 = 3E0420FDFE340120</action>
<action>slot:cart:rom.mq@BF18 = 3E0520FEFE0618F0</action>
<action>slot:cart:rom.mq@BF20 = 0520EFFE78778610</action>
<action>slot:cart:rom.mq@BF28 = 20DFFE051880F67E</action>
<action>slot:cart:rom.mq@BF30 = FFCC18DC0032AF04</action>
<!--
00D9 | 3E 02 : ld a,$02 // set bank
00DB | 32 FF FF : ld ($FFFF),a
00DE | C3 00 BF : jp $BF00
================================
BF00 | 21 00 C1 : ld hl,$C100 // sound code address
BF03 | DB DC : in a,($DC) // read input
BF05 | B8 : cp b
BF06 | 47 : ld b,a
BF07 | 28 FA : jr z,$BF03
BF09 | FE FB : cp $FB
BF0B | 20 01 : jr nz,$BF0E
BF0D | 35 : dec (hl) // decrease code -01
BF0E | FE F7 : cp $F7
BF10 | 20 01 : jr nz,$BF13
BF12 | 34 : inc (hl) // increase code +01
BF13 | FE FD : cp $FD
BF15 | 20 04 : jr nz,$BF1B
BF17 | 3E F0 : ld a,$F0 // decrease code -10
BF19 | 18 06 : jr $BF21
BF1B | FE FE : cp $FE
BF1D | 20 05 : jr nz,$BF24
BF1F | 3E 10 : ld a,$10 // increase code +10
BF21 | 86 : add a,(hl)
BF22 | 77 : ld (hl),a
BF23 | 78 : ld a,b
BF24 | FE EF : cp $EF
BF26 | 20 05 : jr nz,$BF2D
BF28 | 7E : ld a,(hl) // play sound
BF29 | F6 80 : or $80
BF2B | 18 05 : jr $BF32
BF2D | FE DF : cp $DF
BF2F | 20 04 : jr nz,$BF35
BF31 | AF : xor a // stop sound
BF32 | 32 00 DC : ld ($DC00),a // send sound code
BF35 | 18 CC : jr $BF03
-->
</script>
<script state="run">
<output format="----- sound test mode -----" line="10" align="center" />
<output format="left : decrease code -01" line="11" align="center" />
<output format="right : increase code +01" line="12" align="center" />
<output format="down : decrease code -10" line="13" align="center" />
<output format="up : increase code +10" line="14" align="center" />
<output format="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.mq@00D9 = 0715C257CBC1103A</action>
<action>slot:cart:rom.mq@BF00 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@BF08 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@BF10 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@BF18 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@BF20 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@BF28 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@BF30 = 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/ashura.xml
Code: Select all
<!-- Ashura (Japan) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>slot:cart:rom.mb@25BC = DA</action> <!-- bullet -->
<action>slot:cart:rom.mb@25EB = 55</action> <!-- P1 tank -->
<action>slot:cart:rom.mb@25F8 = 55</action> <!-- P2 tank -->
<action>slot:cart:rom.mb@2632 = 55</action> <!-- P1 grenade -->
<action>slot:cart:rom.mb@263D = 55</action> <!-- P2 grenade -->
</script>
<script state="off">
<action>slot:cart:rom.mb@25BC = FA</action>
<action>slot:cart:rom.mb@25EB = 56</action>
<action>slot:cart:rom.mb@25F8 = 56</action>
<action>slot:cart:rom.mb@2632 = 56</action>
<action>slot:cart:rom.mb@263D = 56</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>slot:cart:rom.md@1239 = 4F0010CD </action> <!-- P1 -->
<action>slot:cart:rom.md@14ED = 4F0015CD </action> <!-- P2 -->
<action>slot:cart:rom.mq@0010 = C165210318C16321</action>
<action>slot:cart:rom.mq@0018 = C9B07E234710E67E</action>
<!--
0010 | 21 63 C1 : ld hl,$C163 // P1
0013 | 18 03 : jr $0018
0015 | 21 65 C1 : ld hl,$C165 // P2
0018 | 7E : ld a,(hl)
0019 | E6 10 : and $10
001B | 47 : ld b,a
001C | 23 : inc hl
001D | 7E : ld a,(hl)
001E | B0 : or b
001F | C9 : ret
-->
</script>
<script state="off">
<action>slot:cart:rom.md@1239 = 4FC1643A </action>
<action>slot:cart:rom.md@14ED = 4FC1663A </action>
<action>slot:cart:rom.mq@0010 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@0018 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="walk through wall">
<script state="on">
<action>slot:cart:rom.mw@2963 = 013E</action>
</script>
<script state="off">
<action>slot:cart:rom.mw@2963 = BEDB</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x00">01 (slow)</item>
<item value="0x01">02 </item>
<item value="0x02">03 </item>
<item value="0x03">04 </item>
<item value="0x04">05 (fast)</item>
</parameter>
<script state="change">
<!-- P1 -->
<action>slot:cart:rom.mb@12A1 = -param - 1</action> <!-- up -->
<action>slot:cart:rom.mb@12BC = -param - 1</action> <!-- upper-left -->
<action>slot:cart:rom.mb@12FC = -param - 1</action> <!-- upper-right : up -->
<action>slot:cart:rom.mb@12FE = param </action> <!-- upper-right : right -->
<action>slot:cart:rom.mb@137B = -param - 1</action> <!-- left -->
<action>slot:cart:rom.mb@13AD = param </action> <!-- right -->
<action>slot:cart:rom.mb@13DF = param </action> <!-- down -->
<action>slot:cart:rom.mb@13F9 = param </action> <!-- lower-left : down -->
<action>slot:cart:rom.mb@13FB = -param - 1</action> <!-- lower-left : left -->
<action>slot:cart:rom.mb@142F = param </action> <!-- lower-right -->
<!-- P2 -->
<action>slot:cart:rom.mb@1555 = -param - 1</action> <!-- up -->
<action>slot:cart:rom.mb@1570 = -param - 1</action> <!-- upper-left -->
<action>slot:cart:rom.mb@15B0 = -param - 1</action> <!-- upper-right : up -->
<action>slot:cart:rom.mb@15B2 = param </action> <!-- upper-right : right -->
<action>slot:cart:rom.mb@162F = -param - 1</action> <!-- left -->
<action>slot:cart:rom.mb@1661 = param </action> <!-- right -->
<action>slot:cart:rom.mb@1693 = param </action> <!-- down -->
<action>slot:cart:rom.mb@16AC = param </action> <!-- lower-left : down -->
<action>slot:cart:rom.mb@16AE = -param - 1</action> <!-- lower-left : left -->
<action>slot:cart:rom.mb@16E2 = param </action> <!-- lower-right -->
</script>
<script state="off">
<action>slot:cart:rom.mb@12A1 = FF</action>
<action>slot:cart:rom.mb@12BC = FF</action>
<action>slot:cart:rom.mb@12FC = FF</action>
<action>slot:cart:rom.mb@12FE = 00</action>
<action>slot:cart:rom.mb@137B = FF</action>
<action>slot:cart:rom.mb@13AD = 00</action>
<action>slot:cart:rom.mb@13DF = 00</action>
<action>slot:cart:rom.mb@13F9 = 00</action>
<action>slot:cart:rom.mb@13FB = FF</action>
<action>slot:cart:rom.mb@142F = 00</action>
<action>slot:cart:rom.mb@1555 = FF</action>
<action>slot:cart:rom.mb@1570 = FF</action>
<action>slot:cart:rom.mb@15B0 = FF</action>
<action>slot:cart:rom.mb@15B2 = 00</action>
<action>slot:cart:rom.mb@162F = FF</action>
<action>slot:cart:rom.mb@1661 = 00</action>
<action>slot:cart:rom.mb@1693 = 00</action>
<action>slot:cart:rom.mb@16AC = 00</action>
<action>slot:cart:rom.mb@16AE = FF</action>
<action>slot:cart:rom.mb@16E2 = 00</action>
</script>
</cheat>
<cheat desc="information display">
<script state="run">
<output format="P1 <%2X> [%2X] %6X HighScore %6X P2 <%2X> [%2X] %6X" line="1" align="center" >
<argument>tobcd(maincpu.pb@C11F) </argument>
<argument>tobcd(maincpu.pb@C121) </argument>
<argument>(maincpu.pb@C11B * 100000) + (maincpu.pb@C11A * 1000) + (maincpu.pb@C119 * 10)</argument>
<argument>(maincpu.pb@C118 * 100000) + (maincpu.pb@C117 * 1000) + (maincpu.pb@C116 * 10)</argument>
<argument>tobcd(maincpu.pb@C120) </argument>
<argument>tobcd(maincpu.pb@C122) </argument>
<argument>(maincpu.pb@C11E * 100000) + (maincpu.pb@C11D * 1000) + (maincpu.pb@C11C * 10)</argument>
</output>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>set "skip rom check error" then reset the game (F3)</comment>
<script state="on">
<action>slot:cart:rom.mq@00D5 = BF00C3FFFF32023E</action>
<action>slot:cart:rom.mq@BF00 = 2847B8DCDBC10021</action>
<action>slot:cart:rom.mq@BF08 = F7FE350120FBFEFA</action>
<action>slot:cart:rom.mq@BF10 = 3E0420FDFE340120</action>
<action>slot:cart:rom.mq@BF18 = 3E0520FEFE0618F0</action>
<action>slot:cart:rom.mq@BF20 = 0520EFFE78778610</action>
<action>slot:cart:rom.mq@BF28 = 20DFFE051880F67E</action>
<action>slot:cart:rom.mq@BF30 = FFCC18DC0032AF04</action>
<!--
00D5 | 3E 02 : ld a,$02 // set bank
00D7 | 32 FF FF : ld ($FFFF),a
00DA | C3 00 BF : jp $BF00
================================
BF00 | 21 00 C1 : ld hl,$C100 // sound code address
BF03 | DB DC : in a,($DC) // read input
BF05 | B8 : cp b
BF06 | 47 : ld b,a
BF07 | 28 FA : jr z,$BF03
BF09 | FE FB : cp $FB
BF0B | 20 01 : jr nz,$BF0E
BF0D | 35 : dec (hl) // decrease code -01
BF0E | FE F7 : cp $F7
BF10 | 20 01 : jr nz,$BF13
BF12 | 34 : inc (hl) // increase code +01
BF13 | FE FD : cp $FD
BF15 | 20 04 : jr nz,$BF1B
BF17 | 3E F0 : ld a,$F0 // decrease code -10
BF19 | 18 06 : jr $BF21
BF1B | FE FE : cp $FE
BF1D | 20 05 : jr nz,$BF24
BF1F | 3E 10 : ld a,$10 // increase code +10
BF21 | 86 : add a,(hl)
BF22 | 77 : ld (hl),a
BF23 | 78 : ld a,b
BF24 | FE EF : cp $EF
BF26 | 20 05 : jr nz,$BF2D
BF28 | 7E : ld a,(hl) // play sound
BF29 | F6 80 : or $80
BF2B | 18 05 : jr $BF32
BF2D | FE DF : cp $DF
BF2F | 20 04 : jr nz,$BF35
BF31 | AF : xor a // stop sound
BF32 | 32 00 DC : ld ($DC00),a // send sound code
BF35 | 18 CC : jr $BF03
-->
</script>
<script state="run">
<output format="----- sound test mode -----" line="10" align="center" />
<output format="left : decrease code -01" line="11" align="center" />
<output format="right : increase code +01" line="12" align="center" />
<output format="down : decrease code -10" line="13" align="center" />
<output format="up : increase code +10" line="14" align="center" />
<output format="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.mq@00D5 = 7582C24FCBC1103A</action>
<action>slot:cart:rom.mq@BF00 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@BF08 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@BF10 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@BF18 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@BF20 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@BF28 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@BF30 = 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>