transbot.xml
Code: Select all
<!-- TransBot (Europe, USA, Brazil) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>slot:cart:rom.mb@1159 = C9</action> <!-- enemy -->
<action>slot:cart:rom.mb@11BC = C9</action> <!-- bullet -->
</script>
<script state="off">
<action>slot:cart:rom.mb@1159 = FE</action>
<action>slot:cart:rom.mb@11BC = C8</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>slot:cart:rom.mb@0D3A = 00</action>
</script>
<script state="off">
<action>slot:cart:rom.mb@0D3A = C0</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x0080">01 (slow)</item>
<item value="0x0100">02 </item>
<item value="0x0200">03 </item>
<item value="0x0300">04 </item>
<item value="0x0400">05 (fast)</item>
</parameter>
<script state="change">
<action>slot:cart:rom.mb@0CB7 = CF - ((param rshift 04) / 04)</action> <!-- dive into underground -->
<action>slot:cart:rom.mw@0D62 = param </action> <!-- up -->
<action>slot:cart:rom.mw@0D68 = param </action> <!-- down -->
<action>slot:cart:rom.mw@0D6E = param </action> <!-- left -->
<action>slot:cart:rom.mw@0D74 = param </action> <!-- right -->
</script>
<script state="off">
<action>slot:cart:rom.mb@0CB7 = CF </action>
<action>slot:cart:rom.mw@0D62 = 0100</action>
<action>slot:cart:rom.mw@0D68 = 0100</action>
<action>slot:cart:rom.mw@0D6E = 0200</action>
<action>slot:cart:rom.mw@0D74 = 0200</action>
</script>
</cheat>
<cheat desc="bullet speed">
<parameter>
<item value="0x0200">01 (slow)</item>
<item value="0x0400">02 </item>
<item value="0x0800">03 </item>
<item value="0x0c00">04 </item>
<item value="0x1000">05 (fast)</item>
</parameter>
<script state="change">
<action>slot:cart:rom.mw@0DB0 = param</action> <!-- A -->
<action>slot:cart:rom.mw@0DF0 = param</action> <!-- B -->
<action>slot:cart:rom.mw@0E2D = param</action> <!-- C -->
<action>slot:cart:rom.mw@0E6A = param</action> <!-- D -->
<action>slot:cart:rom.mw@0EB4 = param</action> <!-- E 1 -->
<action>slot:cart:rom.mw@0EEF = param</action> <!-- E 2 -->
<action>slot:cart:rom.mw@0F21 = param</action> <!-- E 3 -->
<action>slot:cart:rom.mw@0F78 = param</action> <!-- F 1 -->
<action>slot:cart:rom.mw@0FA6 = param</action> <!-- F 2 -->
</script>
<script state="off">
<action>slot:cart:rom.mw@0DB0 = 0480</action>
<action>slot:cart:rom.mw@0DF0 = 0600</action>
<action>slot:cart:rom.mw@0E2D = 0500</action>
<action>slot:cart:rom.mw@0E6A = 0800</action>
<action>slot:cart:rom.mw@0EB4 = 0459</action>
<action>slot:cart:rom.mw@0EEF = 0500</action>
<action>slot:cart:rom.mw@0F21 = 0459</action>
<action>slot:cart:rom.mw@0F78 = 0600</action>
<action>slot:cart:rom.mw@0FA6 = 0600</action>
</script>
</cheat>
<cheat desc="infinite weapon">
<script state="on">
<action>slot:cart:rom.mb@0C12 = 00</action>
</script>
<script state="off">
<action>slot:cart:rom.mb@0C12 = 03</action>
</script>
</cheat>
<cheat desc="roulette speed">
<parameter>
<item value="0x36">01 (slow)</item>
<item value="0x24">02 </item>
<item value="0x12">03 </item>
<item value="0x06">04 </item>
<item value="0x01">05 (fast)</item>
</parameter>
<script state="change">
<action>slot:cart:rom.mb@0B35 = param</action>
<action>slot:cart:rom.mb@0B3E = param</action>
</script>
<script state="off">
<action>slot:cart:rom.mb@0B35 = 06</action>
<action>slot:cart:rom.mb@0B3E = 0A</action>
</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@0120 = 2847B8DCDBC00021</action>
<action>slot:cart:rom.mq@0128 = F7FE350120FBFEFA</action>
<action>slot:cart:rom.mq@0130 = 3E0420FDFE340120</action>
<action>slot:cart:rom.mq@0138 = 3E0520FEFE0618F0</action>
<action>slot:cart:rom.mq@0140 = 0520EFFE78778610</action>
<action>slot:cart:rom.mq@0148 = 20DFFE051880F67E</action>
<action>slot:cart:rom.mq@0150 = FFCC18DE0032AF04</action>
<!--
0120 | 21 00 C0 : ld hl,$C000 // sound code address
0123 | DB DC : in a,($DC) // read input
0125 | B8 : cp b
0126 | 47 : ld b,a
0127 | 28 FA : jr z,$0123
0129 | FE FB : cp $FB
012B | 20 01 : jr nz,$012E
012D | 35 : dec (hl) // decrease code -01
012E | FE F7 : cp $F7
0130 | 20 01 : jr nz,$0133
0132 | 34 : inc (hl) // increase code +01
0133 | FE FD : cp $FD
0135 | 20 04 : jr nz,$013B
0137 | 3E F0 : ld a,$F0 // decrease code -10
0139 | 18 06 : jr $0141
013B | FE FE : cp $FE
013D | 20 05 : jr nz,$0144
013F | 3E 10 : ld a,$10 // increase code +10
0141 | 86 : add a,(hl)
0142 | 77 : ld (hl),a
0143 | 78 : ld a,b
0144 | FE EF : cp $EF
0146 | 20 05 : jr nz,$014D
0148 | 7E : ld a,(hl) // play sound
0149 | F6 80 : or $80
014B | 18 05 : jr $0152
014D | FE DF : cp $DF
014F | 20 04 : jr nz,$0155
0151 | AF : xor a // stop sound
0152 | 32 00 DE : ld ($DE00),a // send sound code
0155 | 18 CC : jr $0123
-->
</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@C000</argument>
</output>
</script>
<script state="off">
<action>slot:cart:rom.mq@0120 = 813A017E21024FC3</action>
<action>slot:cart:rom.mq@0128 = 3A01B0210328A7C1</action>
<action>slot:cart:rom.mq@0130 = 7E1900165F87C10E</action>
<action>slot:cart:rom.mq@0138 = E522287ECB6F6623</action>
<action>slot:cart:rom.mq@0140 = D021E5015521E1DD</action>
<action>slot:cart:rom.mq@0148 = 19190016025EDD2F</action>
<action>slot:cart:rom.mq@0150 = 00CBDDE96F66237E</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>
transbotc.xml
Code: Select all
<!-- TransBot (Europe, USA, Brazil, Sega Card) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>mycard:cart:rom.mb@1159 = C9</action> <!-- enemy -->
<action>mycard:cart:rom.mb@11BC = C9</action> <!-- bullet -->
</script>
<script state="off">
<action>mycard:cart:rom.mb@1159 = FE</action>
<action>mycard:cart:rom.mb@11BC = C8</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>mycard:cart:rom.mb@0D3A = 00</action>
</script>
<script state="off">
<action>mycard:cart:rom.mb@0D3A = C0</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x0080">01 (slow)</item>
<item value="0x0100">02 </item>
<item value="0x0200">03 </item>
<item value="0x0300">04 </item>
<item value="0x0400">05 (fast)</item>
</parameter>
<script state="change">
<action>mycard:cart:rom.mb@0CB7 = CF - ((param rshift 04) / 04)</action> <!-- dive into underground -->
<action>mycard:cart:rom.mw@0D62 = param </action> <!-- up -->
<action>mycard:cart:rom.mw@0D68 = param </action> <!-- down -->
<action>mycard:cart:rom.mw@0D6E = param </action> <!-- left -->
<action>mycard:cart:rom.mw@0D74 = param </action> <!-- right -->
</script>
<script state="off">
<action>mycard:cart:rom.mb@0CB7 = CF </action>
<action>mycard:cart:rom.mw@0D62 = 0100</action>
<action>mycard:cart:rom.mw@0D68 = 0100</action>
<action>mycard:cart:rom.mw@0D6E = 0200</action>
<action>mycard:cart:rom.mw@0D74 = 0200</action>
</script>
</cheat>
<cheat desc="bullet speed">
<parameter>
<item value="0x0200">01 (slow)</item>
<item value="0x0400">02 </item>
<item value="0x0800">03 </item>
<item value="0x0c00">04 </item>
<item value="0x1000">05 (fast)</item>
</parameter>
<script state="change">
<action>mycard:cart:rom.mw@0DB0 = param</action> <!-- A -->
<action>mycard:cart:rom.mw@0DF0 = param</action> <!-- B -->
<action>mycard:cart:rom.mw@0E2D = param</action> <!-- C -->
<action>mycard:cart:rom.mw@0E6A = param</action> <!-- D -->
<action>mycard:cart:rom.mw@0EB4 = param</action> <!-- E 1 -->
<action>mycard:cart:rom.mw@0EEF = param</action> <!-- E 2 -->
<action>mycard:cart:rom.mw@0F21 = param</action> <!-- E 3 -->
<action>mycard:cart:rom.mw@0F78 = param</action> <!-- F 1 -->
<action>mycard:cart:rom.mw@0FA6 = param</action> <!-- F 2 -->
</script>
<script state="off">
<action>mycard:cart:rom.mw@0DB0 = 0480</action>
<action>mycard:cart:rom.mw@0DF0 = 0600</action>
<action>mycard:cart:rom.mw@0E2D = 0500</action>
<action>mycard:cart:rom.mw@0E6A = 0800</action>
<action>mycard:cart:rom.mw@0EB4 = 0459</action>
<action>mycard:cart:rom.mw@0EEF = 0500</action>
<action>mycard:cart:rom.mw@0F21 = 0459</action>
<action>mycard:cart:rom.mw@0F78 = 0600</action>
<action>mycard:cart:rom.mw@0FA6 = 0600</action>
</script>
</cheat>
<cheat desc="infinite weapon">
<script state="on">
<action>mycard:cart:rom.mb@0C12 = 00</action>
</script>
<script state="off">
<action>mycard:cart:rom.mb@0C12 = 03</action>
</script>
</cheat>
<cheat desc="roulette speed">
<parameter>
<item value="0x36">01 (slow)</item>
<item value="0x24">02 </item>
<item value="0x12">03 </item>
<item value="0x06">04 </item>
<item value="0x01">05 (fast)</item>
</parameter>
<script state="change">
<action>mycard:cart:rom.mb@0B35 = param</action>
<action>mycard:cart:rom.mb@0B3E = param</action>
</script>
<script state="off">
<action>mycard:cart:rom.mb@0B35 = 06</action>
<action>mycard:cart:rom.mb@0B3E = 0A</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>mycard:cart:rom.mq@0120 = 2847B8DCDBC00021</action>
<action>mycard:cart:rom.mq@0128 = F7FE350120FBFEFA</action>
<action>mycard:cart:rom.mq@0130 = 3E0420FDFE340120</action>
<action>mycard:cart:rom.mq@0138 = 3E0520FEFE0618F0</action>
<action>mycard:cart:rom.mq@0140 = 0520EFFE78778610</action>
<action>mycard:cart:rom.mq@0148 = 20DFFE051880F67E</action>
<action>mycard:cart:rom.mq@0150 = FFCC18DE0032AF04</action>
<!--
0120 | 21 00 C0 : ld hl,$C000 // sound code address
0123 | DB DC : in a,($DC) // read input
0125 | B8 : cp b
0126 | 47 : ld b,a
0127 | 28 FA : jr z,$0123
0129 | FE FB : cp $FB
012B | 20 01 : jr nz,$012E
012D | 35 : dec (hl) // decrease code -01
012E | FE F7 : cp $F7
0130 | 20 01 : jr nz,$0133
0132 | 34 : inc (hl) // increase code +01
0133 | FE FD : cp $FD
0135 | 20 04 : jr nz,$013B
0137 | 3E F0 : ld a,$F0 // decrease code -10
0139 | 18 06 : jr $0141
013B | FE FE : cp $FE
013D | 20 05 : jr nz,$0144
013F | 3E 10 : ld a,$10 // increase code +10
0141 | 86 : add a,(hl)
0142 | 77 : ld (hl),a
0143 | 78 : ld a,b
0144 | FE EF : cp $EF
0146 | 20 05 : jr nz,$014D
0148 | 7E : ld a,(hl) // play sound
0149 | F6 80 : or $80
014B | 18 05 : jr $0152
014D | FE DF : cp $DF
014F | 20 04 : jr nz,$0155
0151 | AF : xor a // stop sound
0152 | 32 00 DE : ld ($DE00),a // send sound code
0155 | 18 CC : jr $0123
-->
</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@C000</argument>
</output>
</script>
<script state="off">
<action>mycard:cart:rom.mq@0120 = 813A017E21024FC3</action>
<action>mycard:cart:rom.mq@0128 = 3A01B0210328A7C1</action>
<action>mycard:cart:rom.mq@0130 = 7E1900165F87C10E</action>
<action>mycard:cart:rom.mq@0138 = E522287ECB6F6623</action>
<action>mycard:cart:rom.mq@0140 = D021E5015521E1DD</action>
<action>mycard:cart:rom.mq@0148 = 19190016025EDD2F</action>
<action>mycard:cart:rom.mq@0150 = 00CBDDE96F66237E</action>
</script>
</cheat>
</mamecheat>
transbotp.xml
Code: Select all
<!-- TransBot (USA, prototype) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>slot:cart:rom.mb@111F = C9</action> <!-- enemy -->
<action>slot:cart:rom.mb@1182 = C9</action> <!-- bullet -->
</script>
<script state="off">
<action>slot:cart:rom.mb@10EE = FE</action>
<action>slot:cart:rom.mb@1182 = C8</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>slot:cart:rom.mb@0D00 = 00</action>
</script>
<script state="off">
<action>slot:cart:rom.mb@0D00 = C0</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x0080">01 (slow)</item>
<item value="0x0100">02 </item>
<item value="0x0200">03 </item>
<item value="0x0300">04 </item>
<item value="0x0400">05 (fast)</item>
</parameter>
<script state="change">
<action>slot:cart:rom.mb@0C7D = CF - ((param rshift 04) / 04)</action> <!-- dive into underground -->
<action>slot:cart:rom.mw@0D28 = param </action> <!-- up -->
<action>slot:cart:rom.mw@0D2E = param </action> <!-- down -->
<action>slot:cart:rom.mw@0D34 = param </action> <!-- left -->
<action>slot:cart:rom.mw@0D3A = param </action> <!-- right -->
</script>
<script state="off">
<action>slot:cart:rom.mb@0C7D = CF </action>
<action>slot:cart:rom.mw@0D28 = 0100</action>
<action>slot:cart:rom.mw@0D2E = 0100</action>
<action>slot:cart:rom.mw@0D34 = 0200</action>
<action>slot:cart:rom.mw@0D3A = 0200</action>
</script>
</cheat>
<cheat desc="bullet speed">
<parameter>
<item value="0x0200">01 (slow)</item>
<item value="0x0400">02 </item>
<item value="0x0800">03 </item>
<item value="0x0c00">04 </item>
<item value="0x1000">05 (fast)</item>
</parameter>
<script state="change">
<action>slot:cart:rom.mw@0D76 = param</action> <!-- A -->
<action>slot:cart:rom.mw@0DB6 = param</action> <!-- B -->
<action>slot:cart:rom.mw@0DF3 = param</action> <!-- C -->
<action>slot:cart:rom.mw@0E30 = param</action> <!-- D -->
<action>slot:cart:rom.mw@0E7A = param</action> <!-- E 1 -->
<action>slot:cart:rom.mw@0EB5 = param</action> <!-- E 2 -->
<action>slot:cart:rom.mw@0EE7 = param</action> <!-- E 3 -->
<action>slot:cart:rom.mw@0F3E = param</action> <!-- F 1 -->
<action>slot:cart:rom.mw@0F6C = param</action> <!-- F 2 -->
</script>
<script state="off">
<action>slot:cart:rom.mw@0D76 = 0480</action>
<action>slot:cart:rom.mw@0DB6 = 0600</action>
<action>slot:cart:rom.mw@0DF3 = 0500</action>
<action>slot:cart:rom.mw@0E30 = 0800</action>
<action>slot:cart:rom.mw@0E7A = 0459</action>
<action>slot:cart:rom.mw@0EB5 = 0500</action>
<action>slot:cart:rom.mw@0EE7 = 0459</action>
<action>slot:cart:rom.mw@0F3E = 0600</action>
<action>slot:cart:rom.mw@0F6C = 0600</action>
</script>
</cheat>
<cheat desc="infinite weapon">
<script state="on">
<action>slot:cart:rom.mb@0BD8 = 00</action>
</script>
<script state="off">
<action>slot:cart:rom.mb@0BD8 = 03</action>
</script>
</cheat>
<cheat desc="roulette speed">
<parameter>
<item value="0x36">01 (slow)</item>
<item value="0x24">02 </item>
<item value="0x12">03 </item>
<item value="0x06">04 </item>
<item value="0x01">05 (fast)</item>
</parameter>
<script state="change">
<action>slot:cart:rom.mb@0AFB = param</action>
<action>slot:cart:rom.mb@0B04 = param</action>
</script>
<script state="off">
<action>slot:cart:rom.mb@0AFB = 06</action>
<action>slot:cart:rom.mb@0B04 = 0A</action>
</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@0120 = 2847B8DCDBC00021</action>
<action>slot:cart:rom.mq@0128 = F7FE350120FBFEFA</action>
<action>slot:cart:rom.mq@0130 = 3E0420FDFE340120</action>
<action>slot:cart:rom.mq@0138 = 3E0520FEFE0618F0</action>
<action>slot:cart:rom.mq@0140 = 0520EFFE78778610</action>
<action>slot:cart:rom.mq@0148 = 20DFFE051880F67E</action>
<action>slot:cart:rom.mq@0150 = FFCC18DE0032AF04</action>
<!--
0120 | 21 00 C0 : ld hl,$C000 // sound code address
0123 | DB DC : in a,($DC) // read input
0125 | B8 : cp b
0126 | 47 : ld b,a
0127 | 28 FA : jr z,$0123
0129 | FE FB : cp $FB
012B | 20 01 : jr nz,$012E
012D | 35 : dec (hl) // decrease code -01
012E | FE F7 : cp $F7
0130 | 20 01 : jr nz,$0133
0132 | 34 : inc (hl) // increase code +01
0133 | FE FD : cp $FD
0135 | 20 04 : jr nz,$013B
0137 | 3E F0 : ld a,$F0 // decrease code -10
0139 | 18 06 : jr $0141
013B | FE FE : cp $FE
013D | 20 05 : jr nz,$0144
013F | 3E 10 : ld a,$10 // increase code +10
0141 | 86 : add a,(hl)
0142 | 77 : ld (hl),a
0143 | 78 : ld a,b
0144 | FE EF : cp $EF
0146 | 20 05 : jr nz,$014D
0148 | 7E : ld a,(hl) // play sound
0149 | F6 80 : or $80
014B | 18 05 : jr $0152
014D | FE DF : cp $DF
014F | 20 04 : jr nz,$0155
0151 | AF : xor a // stop sound
0152 | 32 00 DE : ld ($DE00),a // send sound code
0155 | 18 CC : jr $0123
-->
</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@C000</argument>
</output>
</script>
<script state="off">
<action>slot:cart:rom.mq@0120 = 813A017E21024FC3</action>
<action>slot:cart:rom.mq@0128 = 3A01B0210328A7C1</action>
<action>slot:cart:rom.mq@0130 = 7E1900165F87C10E</action>
<action>slot:cart:rom.mq@0138 = E522287ECB6F6623</action>
<action>slot:cart:rom.mq@0140 = 9621E5015521E1DD</action>
<action>slot:cart:rom.mq@0148 = 19190016025EDD2F</action>
<action>slot:cart:rom.mq@0150 = 00CBDDE96F66237E</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>
astrofl.xml
Code: Select all
<!-- Astro Flash (Japan, MyCard) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>mycard:cart:rom.mb@10EE = C9</action> <!-- enemy -->
<action>mycard:cart:rom.mb@1151 = C9</action> <!-- bullet -->
</script>
<script state="off">
<action>mycard:cart:rom.mb@10EE = FE</action>
<action>mycard:cart:rom.mb@1151 = C8</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>mycard:cart:rom.mb@0CDD = 00</action>
</script>
<script state="off">
<action>mycard:cart:rom.mb@0CDD = C0</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x0080">01 (slow)</item>
<item value="0x0100">02 </item>
<item value="0x0200">03 </item>
<item value="0x0300">04 </item>
<item value="0x0400">05 (fast)</item>
</parameter>
<script state="change">
<action>mycard:cart:rom.mb@0C5A = CF - ((param rshift 04) / 04)</action> <!-- dive into underground -->
<action>mycard:cart:rom.mw@0D05 = param </action> <!-- up -->
<action>mycard:cart:rom.mw@0D0B = param </action> <!-- down -->
<action>mycard:cart:rom.mw@0D11 = param </action> <!-- left -->
<action>mycard:cart:rom.mw@0D17 = param </action> <!-- right -->
</script>
<script state="off">
<action>mycard:cart:rom.mb@0C5A = CF </action>
<action>mycard:cart:rom.mw@0D05 = 0100</action>
<action>mycard:cart:rom.mw@0D0B = 0100</action>
<action>mycard:cart:rom.mw@0D11 = 0200</action>
<action>mycard:cart:rom.mw@0D17 = 0200</action>
</script>
</cheat>
<cheat desc="bullet speed">
<parameter>
<item value="0x0200">01 (slow)</item>
<item value="0x0400">02 </item>
<item value="0x0800">03 </item>
<item value="0x0c00">04 </item>
<item value="0x1000">05 (fast)</item>
</parameter>
<script state="change">
<action>mycard:cart:rom.mw@0D53 = param</action> <!-- A -->
<action>mycard:cart:rom.mw@0D93 = param</action> <!-- B -->
<action>mycard:cart:rom.mw@0DD0 = param</action> <!-- C -->
<action>mycard:cart:rom.mw@0E0D = param</action> <!-- D -->
<action>mycard:cart:rom.mw@0E57 = param</action> <!-- E 1 -->
<action>mycard:cart:rom.mw@0E92 = param</action> <!-- E 2 -->
<action>mycard:cart:rom.mw@0EC4 = param</action> <!-- E 3 -->
<action>mycard:cart:rom.mw@0F1B = param</action> <!-- F 1 -->
<action>mycard:cart:rom.mw@0F49 = param</action> <!-- F 2 -->
</script>
<script state="off">
<action>mycard:cart:rom.mw@0D53 = 0480</action>
<action>mycard:cart:rom.mw@0D93 = 0600</action>
<action>mycard:cart:rom.mw@0DD0 = 0500</action>
<action>mycard:cart:rom.mw@0E0D = 0800</action>
<action>mycard:cart:rom.mw@0E57 = 0459</action>
<action>mycard:cart:rom.mw@0E92 = 0500</action>
<action>mycard:cart:rom.mw@0EC4 = 0459</action>
<action>mycard:cart:rom.mw@0F1B = 0600</action>
<action>mycard:cart:rom.mw@0F49 = 0600</action>
</script>
</cheat>
<cheat desc="infinite weapon">
<script state="on">
<action>mycard:cart:rom.mb@0BB5 = 00</action>
</script>
<script state="off">
<action>mycard:cart:rom.mb@0BB5 = 03</action>
</script>
</cheat>
<cheat desc="roulette speed">
<parameter>
<item value="0x36">01 (slow)</item>
<item value="0x24">02 </item>
<item value="0x12">03 </item>
<item value="0x06">04 </item>
<item value="0x01">05 (fast)</item>
</parameter>
<script state="change">
<action>mycard:cart:rom.mb@0AD8 = param</action>
<action>mycard:cart:rom.mb@0AE1 = param</action>
</script>
<script state="off">
<action>mycard:cart:rom.mb@0AD8 = 06</action>
<action>mycard:cart:rom.mb@0AE1 = 0A</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>mycard:cart:rom.mq@0106 = 2847B8DCDBC00021</action>
<action>mycard:cart:rom.mq@010E = F7FE350120FBFEFA</action>
<action>mycard:cart:rom.mq@0116 = 3E0420FDFE340120</action>
<action>mycard:cart:rom.mq@011E = 3E0520FEFE0618F0</action>
<action>mycard:cart:rom.mq@0126 = 0520EFFE78778610</action>
<action>mycard:cart:rom.mq@012E = 20DFFE051880F67E</action>
<action>mycard:cart:rom.mq@0136 = FFCC18DE0032AF04</action>
<!--
0106 | 21 00 C0 : ld hl,$C000 // sound code address
0109 | DB DC : in a,($DC) // read input
010B | B8 : cp b
010C | 47 : ld b,a
010D | 28 FA : jr z,$0109
010F | FE FB : cp $FB
0111 | 20 01 : jr nz,$0114
0113 | 35 : dec (hl) // decrease code -01
0114 | FE F7 : cp $F7
0116 | 20 01 : jr nz,$0119
0118 | 34 : inc (hl) // increase code +01
0119 | FE FD : cp $FD
011B | 20 04 : jr nz,$0121
011D | 3E F0 : ld a,$F0 // decrease code -10
011F | 18 06 : jr $0127
0121 | FE FE : cp $FE
0123 | 20 05 : jr nz,$012A
0125 | 3E 10 : ld a,$10 // increase code +10
0127 | 86 : add a,(hl)
0128 | 77 : ld (hl),a
0129 | 78 : ld a,b
012A | FE EF : cp $EF
012C | 20 05 : jr nz,$0133
012E | 7E : ld a,(hl) // play sound
012F | F6 80 : or $80
0131 | 18 05 : jr $0138
0133 | FE DF : cp $DF
0135 | 20 04 : jr nz,$013B
0137 | AF : xor a // stop sound
0138 | 32 00 DE : ld ($DE00),a // send sound code
013B | 18 CC : jr $0109
-->
</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@C000</argument>
</output>
</script>
<script state="off">
<action>mycard:cart:rom.mq@0106 = 813A0164210235C3</action>
<action>mycard:cart:rom.mq@010E = 3A0196210328A7C1</action>
<action>mycard:cart:rom.mq@0116 = 7E1900165F87C10E</action>
<action>mycard:cart:rom.mq@011E = E522287ECB6F6623</action>
<action>mycard:cart:rom.mq@0126 = 6D21E5013B21E1DD</action>
<action>mycard:cart:rom.mq@012E = 19190016025EDD2F</action>
<action>mycard:cart:rom.mq@0136 = 00CBDDE96F66237E</action>
</script>
</cheat>
</mamecheat>
astrofl1.xml
Code: Select all
<!-- Astro Flash (Japan, pirate) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>slot:cart:rom.mb@10EE = C9</action> <!-- enemy -->
<action>slot:cart:rom.mb@1151 = C9</action> <!-- bullet -->
</script>
<script state="off">
<action>slot:cart:rom.mb@10EE = FE</action>
<action>slot:cart:rom.mb@1151 = C8</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>slot:cart:rom.mb@0CDD = 00</action>
</script>
<script state="off">
<action>slot:cart:rom.mb@0CDD = C0</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x0080">01 (slow)</item>
<item value="0x0100">02 </item>
<item value="0x0200">03 </item>
<item value="0x0300">04 </item>
<item value="0x0400">05 (fast)</item>
</parameter>
<script state="change">
<action>slot:cart:rom.mb@0C5A = CF - ((param rshift 04) / 04)</action> <!-- dive into underground -->
<action>slot:cart:rom.mw@0D05 = param </action> <!-- up -->
<action>slot:cart:rom.mw@0D0B = param </action> <!-- down -->
<action>slot:cart:rom.mw@0D11 = param </action> <!-- left -->
<action>slot:cart:rom.mw@0D17 = param </action> <!-- right -->
</script>
<script state="off">
<action>slot:cart:rom.mb@0C5A = CF </action>
<action>slot:cart:rom.mw@0D05 = 0100</action>
<action>slot:cart:rom.mw@0D0B = 0100</action>
<action>slot:cart:rom.mw@0D11 = 0200</action>
<action>slot:cart:rom.mw@0D17 = 0200</action>
</script>
</cheat>
<cheat desc="bullet speed">
<parameter>
<item value="0x0200">01 (slow)</item>
<item value="0x0400">02 </item>
<item value="0x0800">03 </item>
<item value="0x0c00">04 </item>
<item value="0x1000">05 (fast)</item>
</parameter>
<script state="change">
<action>slot:cart:rom.mw@0D53 = param</action> <!-- A -->
<action>slot:cart:rom.mw@0D93 = param</action> <!-- B -->
<action>slot:cart:rom.mw@0DD0 = param</action> <!-- C -->
<action>slot:cart:rom.mw@0E0D = param</action> <!-- D -->
<action>slot:cart:rom.mw@0E57 = param</action> <!-- E 1 -->
<action>slot:cart:rom.mw@0E92 = param</action> <!-- E 2 -->
<action>slot:cart:rom.mw@0EC4 = param</action> <!-- E 3 -->
<action>slot:cart:rom.mw@0F1B = param</action> <!-- F 1 -->
<action>slot:cart:rom.mw@0F49 = param</action> <!-- F 2 -->
</script>
<script state="off">
<action>slot:cart:rom.mw@0D53 = 0480</action>
<action>slot:cart:rom.mw@0D93 = 0600</action>
<action>slot:cart:rom.mw@0DD0 = 0500</action>
<action>slot:cart:rom.mw@0E0D = 0800</action>
<action>slot:cart:rom.mw@0E57 = 0459</action>
<action>slot:cart:rom.mw@0E92 = 0500</action>
<action>slot:cart:rom.mw@0EC4 = 0459</action>
<action>slot:cart:rom.mw@0F1B = 0600</action>
<action>slot:cart:rom.mw@0F49 = 0600</action>
</script>
</cheat>
<cheat desc="infinite weapon">
<script state="on">
<action>slot:cart:rom.mb@0BB5 = 00</action>
</script>
<script state="off">
<action>slot:cart:rom.mb@0BB5 = 03</action>
</script>
</cheat>
<cheat desc="roulette speed">
<parameter>
<item value="0x36">01 (slow)</item>
<item value="0x24">02 </item>
<item value="0x12">03 </item>
<item value="0x06">04 </item>
<item value="0x01">05 (fast)</item>
</parameter>
<script state="change">
<action>slot:cart:rom.mb@0AD8 = param</action>
<action>slot:cart:rom.mb@0AE1 = param</action>
</script>
<script state="off">
<action>slot:cart:rom.mb@0AD8 = 06</action>
<action>slot:cart:rom.mb@0AE1 = 0A</action>
</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@0106 = 2847B8DCDBC00021</action>
<action>slot:cart:rom.mq@010E = F7FE350120FBFEFA</action>
<action>slot:cart:rom.mq@0116 = 3E0420FDFE340120</action>
<action>slot:cart:rom.mq@011E = 3E0520FEFE0618F0</action>
<action>slot:cart:rom.mq@0126 = 0520EFFE78778610</action>
<action>slot:cart:rom.mq@012E = 20DFFE051880F67E</action>
<action>slot:cart:rom.mq@0136 = FFCC18DE0032AF04</action>
<!--
0106 | 21 00 C0 : ld hl,$C000 // sound code address
0109 | DB DC : in a,($DC) // read input
010B | B8 : cp b
010C | 47 : ld b,a
010D | 28 FA : jr z,$0109
010F | FE FB : cp $FB
0111 | 20 01 : jr nz,$0114
0113 | 35 : dec (hl) // decrease code -01
0114 | FE F7 : cp $F7
0116 | 20 01 : jr nz,$0119
0118 | 34 : inc (hl) // increase code +01
0119 | FE FD : cp $FD
011B | 20 04 : jr nz,$0121
011D | 3E F0 : ld a,$F0 // decrease code -10
011F | 18 06 : jr $0127
0121 | FE FE : cp $FE
0123 | 20 05 : jr nz,$012A
0125 | 3E 10 : ld a,$10 // increase code +10
0127 | 86 : add a,(hl)
0128 | 77 : ld (hl),a
0129 | 78 : ld a,b
012A | FE EF : cp $EF
012C | 20 05 : jr nz,$0133
012E | 7E : ld a,(hl) // play sound
012F | F6 80 : or $80
0131 | 18 05 : jr $0138
0133 | FE DF : cp $DF
0135 | 20 04 : jr nz,$013B
0137 | AF : xor a // stop sound
0138 | 32 00 DE : ld ($DE00),a // send sound code
013B | 18 CC : jr $0109
-->
</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@C000</argument>
</output>
</script>
<script state="off">
<action>slot:cart:rom.mq@0106 = 813A0164210235C3</action>
<action>slot:cart:rom.mq@010E = 3A0196210328A7C1</action>
<action>slot:cart:rom.mq@0116 = 7E1900165F87C10E</action>
<action>slot:cart:rom.mq@011E = E522287ECB6F6623</action>
<action>slot:cart:rom.mq@0126 = 6D21E5013B21E1DD</action>
<action>slot:cart:rom.mq@012E = 19190016025EDD2F</action>
<action>slot:cart:rom.mq@0136 = 00CBDDE96F66237E</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>
- "player speed" : Fixed stuck the game when you dive into underground.
- "roulette speed" : Fixed not working in some cases.
- "sound test mode" : Rewritten routine.