sms/satell7.xml
Code: Select all
<!-- Satellite 7 (Japan, MyCard) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>mycard:cart:rom.mb@2990 = C9</action> <!-- enemy (soft type) -->
<action>mycard:cart:rom.mb@29A0 = C9</action> <!-- enemy (hard type) -->
<action>mycard:cart:rom.mb@29BE = C9</action> <!-- boss -->
</script>
<script state="off">
<action>mycard:cart:rom.mb@2990 = FD</action>
<action>mycard:cart:rom.mb@29A0 = FD</action>
<action>mycard:cart:rom.mb@29BE = FD</action>
</script>
</cheat>
<cheat desc="auto fire - shot">
<script state="on">
<action>mycard:cart:rom.mb@237D = 00</action>
</script>
<script state="off">
<action>mycard:cart:rom.mb@237D = C0</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x0080">01 (slow)</item>
<item value="0x0180">02 </item>
<item value="0x0280">03 </item>
<item value="0x0380">04 </item>
<item value="0x0480">05 (fast)</item>
</parameter>
<script state="change">
<action>mycard:cart:rom.mw@0D3C = -param</action> <!-- up level 1 -->
<action>mycard:cart:rom.mw@0D46 = -param</action> <!-- up level 2 -->
<action>mycard:cart:rom.mw@0D52 = param</action> <!-- down level 1 -->
<action>mycard:cart:rom.mw@0D5C = param</action> <!-- down level 2 -->
<action>mycard:cart:rom.mw@0D68 = -param</action> <!-- left level 1 -->
<action>mycard:cart:rom.mw@0D72 = -param</action> <!-- left level 2 -->
<action>mycard:cart:rom.mw@0D7E = param</action> <!-- right level 1 -->
<action>mycard:cart:rom.mw@0D88 = param</action> <!-- right level 2 -->
</script>
<script state="off">
<action>mycard:cart:rom.mw@0D3C = FF00</action>
<action>mycard:cart:rom.mw@0D46 = FE40</action>
<action>mycard:cart:rom.mw@0D52 = 0100</action>
<action>mycard:cart:rom.mw@0D5C = 01A0</action>
<action>mycard:cart:rom.mw@0D68 = FF00</action>
<action>mycard:cart:rom.mw@0D72 = FE40</action>
<action>mycard:cart:rom.mw@0D7E = 0100</action>
<action>mycard:cart:rom.mw@0D88 = 01A0</action>
</script>
</cheat>
<cheat desc="bullet speed - shot">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x05">02 </item>
<item value="0x0a">03 </item>
<item value="0x0f">04 </item>
<item value="0x14">05 (fast)</item>
</parameter>
<script state="change">
<action>mycard:cart:rom.mb@23E1 = -param</action>
</script>
<script state="off">
<action>mycard:cart:rom.mb@23E1 = FB</action>
</script>
</cheat>
<cheat desc="fast bomb">
<script state="on">
<action>mycard:cart:rom.mw@2428 = 7EA0 </action>
<action>mycard:cart:rom.mq@7EA0 = 3E0E77FD0D77FDAF</action>
<action>mycard:cart:rom.mq@7EA8 = D6067EDD1377FD22</action>
<action>mycard:cart:rom.mq@7EB0 = C92456CD0677FD2E</action>
<!--
7EA0 | AF : xor a
7EA1 | FD 77 0D : ld (iy+$0d),a
7EA4 | FD 77 0E : ld (iy+$0e),a
7EA7 | 3E 22 : ld a,$22
7EA9 | FD 77 13 : ld (iy+$13),a
7EAC | DD 7E 06 : ld a,(ix+$06)
7EAF | D6 2E : sub $2E
7EB1 | FD 77 06 : ld (iy+$06),a
7EB4 | CD 56 24 : call $2456
7EB7 | C9 : ret
-->
</script>
<script state="off">
<action>mycard:cart:rom.mw@2428 = 2456 </action>
<action>mycard:cart:rom.mq@7EA0 = FFFFFFFFFFFFFFFF</action>
<action>mycard:cart:rom.mq@7EA8 = FFFFFFFFFFFFFFFF</action>
<action>mycard:cart:rom.mq@7EB0 = FFFFFFFFFFFFFFFF</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.md@010C = B77EC0C3 </action>
<action>mycard:cart:rom.mq@7EC0 = 2847B8DCDBC00021</action>
<action>mycard:cart:rom.mq@7EC8 = F7FE350120FBFEFA</action>
<action>mycard:cart:rom.mq@7ED0 = 3E0420FDFE340120</action>
<action>mycard:cart:rom.mq@7ED8 = 3E0520FEFE0618F0</action>
<action>mycard:cart:rom.mq@7EE0 = 0520EFFE78778610</action>
<action>mycard:cart:rom.mq@7EE8 = 20DFFE051880F67E</action>
<action>mycard:cart:rom.mq@7EF0 = FFCC18CD0032AF04</action>
<!--
7EC0 | 21 00 C0 : ld hl,$C000 // sound code address
7EC3 | DB DC : in a,($DC) // read input
7EC5 | B8 : cp b
7EC6 | 47 : ld b,a
7EC7 | 28 FA : jr z,$7EC3
7EC9 | FE FB : cp $FB
7ECB | 20 01 : jr nz,$7ECE
7ECD | 35 : dec (hl) // decrease code -01
7ECE | FE F7 : cp $F7
7ED0 | 20 01 : jr nz,$7ED3
7ED2 | 34 : inc (hl) // increase code +01
7ED3 | FE FD : cp $FD
7ED5 | 20 04 : jr nz,$7EDB
7ED7 | 3E F0 : ld a,$F0 // decrease code -10
7ED9 | 18 06 : jr $7EE1
7EDB | FE FE : cp $FE
7EDD | 20 05 : jr nz,$7EE4
7EDF | 3E 10 : ld a,$10 // increase code +10
7EE1 | 86 : add a,(hl)
7EE2 | 77 : ld (hl),a
7EE3 | 78 : ld a,b
7EE4 | FE EF : cp $EF
7EE6 | 20 05 : jr nz,$7EED
7EE8 | 7E : ld a,(hl) // play sound
7EE9 | F6 80 : or $80
7EEB | 18 05 : jr $7EF2
7EED | FE DF : cp $DF
7EEF | 20 04 : jr nz,$7EF5
7EF1 | AF : xor a // stop sound
7EF2 | 32 00 CD : ld ($CD00),a // send sound code
7EF5 | 18 CC : jr $7EC3
-->
</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.md@010C = B7C1073A </action>
<action>mycard:cart:rom.mq@7EC0 = FFFFFFFFFFFFFFFF</action>
<action>mycard:cart:rom.mq@7EC8 = FFFFFFFFFFFFFFFF</action>
<action>mycard:cart:rom.mq@7ED0 = FFFFFFFFFFFFFFFF</action>
<action>mycard:cart:rom.mq@7ED8 = FFFFFFFFFFFFFFFF</action>
<action>mycard:cart:rom.mq@7EE0 = FFFFFFFFFFFFFFFF</action>
<action>mycard:cart:rom.mq@7EE8 = FFFFFFFFFFFFFFFF</action>
<action>mycard:cart:rom.mq@7EF0 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
</mamecheat>
sms/satell7a.xml
Code: Select all
<!-- Satellite 7 (Japan, pirate?) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>slot:cart:rom.mb@2990 = C9</action> <!-- enemy (soft type) -->
<action>slot:cart:rom.mb@29A0 = C9</action> <!-- enemy (hard type) -->
<action>slot:cart:rom.mb@29BE = C9</action> <!-- boss -->
</script>
<script state="off">
<action>slot:cart:rom.mb@2990 = FD</action>
<action>slot:cart:rom.mb@29A0 = FD</action>
<action>slot:cart:rom.mb@29BE = FD</action>
</script>
</cheat>
<cheat desc="auto fire - shot">
<script state="on">
<action>slot:cart:rom.mb@237D = 00</action>
</script>
<script state="off">
<action>slot:cart:rom.mb@237D = C0</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x0080">01 (slow)</item>
<item value="0x0180">02 </item>
<item value="0x0280">03 </item>
<item value="0x0380">04 </item>
<item value="0x0480">05 (fast)</item>
</parameter>
<script state="change">
<action>slot:cart:rom.mw@0D3C = -param</action> <!-- up level 1 -->
<action>slot:cart:rom.mw@0D46 = -param</action> <!-- up level 2 -->
<action>slot:cart:rom.mw@0D52 = param</action> <!-- down level 1 -->
<action>slot:cart:rom.mw@0D5C = param</action> <!-- down level 2 -->
<action>slot:cart:rom.mw@0D68 = -param</action> <!-- left level 1 -->
<action>slot:cart:rom.mw@0D72 = -param</action> <!-- left level 2 -->
<action>slot:cart:rom.mw@0D7E = param</action> <!-- right level 1 -->
<action>slot:cart:rom.mw@0D88 = param</action> <!-- right level 2 -->
</script>
<script state="off">
<action>slot:cart:rom.mw@0D3C = FF00</action>
<action>slot:cart:rom.mw@0D46 = FE40</action>
<action>slot:cart:rom.mw@0D52 = 0100</action>
<action>slot:cart:rom.mw@0D5C = 01A0</action>
<action>slot:cart:rom.mw@0D68 = FF00</action>
<action>slot:cart:rom.mw@0D72 = FE40</action>
<action>slot:cart:rom.mw@0D7E = 0100</action>
<action>slot:cart:rom.mw@0D88 = 01A0</action>
</script>
</cheat>
<cheat desc="bullet speed - shot">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x05">02 </item>
<item value="0x0a">03 </item>
<item value="0x0f">04 </item>
<item value="0x14">05 (fast)</item>
</parameter>
<script state="change">
<action>slot:cart:rom.mb@23E1 = -param</action>
</script>
<script state="off">
<action>slot:cart:rom.mb@23E1 = FB</action>
</script>
</cheat>
<cheat desc="fast bomb">
<script state="on">
<action>slot:cart:rom.mw@2428 = 7EA0 </action>
<action>slot:cart:rom.mq@7EA0 = 3E0E77FD0D77FDAF</action>
<action>slot:cart:rom.mq@7EA8 = D6067EDD1377FD22</action>
<action>slot:cart:rom.mq@7EB0 = C92456CD0677FD2E</action>
<!--
7EA0 | AF : xor a
7EA1 | FD 77 0D : ld (iy+$0d),a
7EA4 | FD 77 0E : ld (iy+$0e),a
7EA7 | 3E 22 : ld a,$22
7EA9 | FD 77 13 : ld (iy+$13),a
7EAC | DD 7E 06 : ld a,(ix+$06)
7EAF | D6 2E : sub $2E
7EB1 | FD 77 06 : ld (iy+$06),a
7EB4 | CD 56 24 : call $2456
7EB7 | C9 : ret
-->
</script>
<script state="off">
<action>slot:cart:rom.mw@2428 = 2456 </action>
<action>slot:cart:rom.mq@7EA0 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7EA8 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7EB0 = FFFFFFFFFFFFFFFF</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.md@010C = B77EC0C3 </action>
<action>slot:cart:rom.mq@7EC0 = 2847B8DCDBC00021</action>
<action>slot:cart:rom.mq@7EC8 = F7FE350120FBFEFA</action>
<action>slot:cart:rom.mq@7ED0 = 3E0420FDFE340120</action>
<action>slot:cart:rom.mq@7ED8 = 3E0520FEFE0618F0</action>
<action>slot:cart:rom.mq@7EE0 = 0520EFFE78778610</action>
<action>slot:cart:rom.mq@7EE8 = 20DFFE051880F67E</action>
<action>slot:cart:rom.mq@7EF0 = FFCC18CD0032AF04</action>
<!--
7EC0 | 21 00 C0 : ld hl,$C000 // sound code address
7EC3 | DB DC : in a,($DC) // read input
7EC5 | B8 : cp b
7EC6 | 47 : ld b,a
7EC7 | 28 FA : jr z,$7EC3
7EC9 | FE FB : cp $FB
7ECB | 20 01 : jr nz,$7ECE
7ECD | 35 : dec (hl) // decrease code -01
7ECE | FE F7 : cp $F7
7ED0 | 20 01 : jr nz,$7ED3
7ED2 | 34 : inc (hl) // increase code +01
7ED3 | FE FD : cp $FD
7ED5 | 20 04 : jr nz,$7EDB
7ED7 | 3E F0 : ld a,$F0 // decrease code -10
7ED9 | 18 06 : jr $7EE1
7EDB | FE FE : cp $FE
7EDD | 20 05 : jr nz,$7EE4
7EDF | 3E 10 : ld a,$10 // increase code +10
7EE1 | 86 : add a,(hl)
7EE2 | 77 : ld (hl),a
7EE3 | 78 : ld a,b
7EE4 | FE EF : cp $EF
7EE6 | 20 05 : jr nz,$7EED
7EE8 | 7E : ld a,(hl) // play sound
7EE9 | F6 80 : or $80
7EEB | 18 05 : jr $7EF2
7EED | FE DF : cp $DF
7EEF | 20 04 : jr nz,$7EF5
7EF1 | AF : xor a // stop sound
7EF2 | 32 00 CD : ld ($CD00),a // send sound code
7EF5 | 18 CC : jr $7EC3
-->
</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.md@010C = B7C1073A </action>
<action>slot:cart:rom.mq@7EC0 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7EC8 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7ED0 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7ED8 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7EE0 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7EE8 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7EF0 = 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>
satell7 works in sg1000m3, smsj and sms1krfm only. If satell7a returns "software error", set "skip rom check error" code then reset the game (F3).