sms/aliensyn.xml
Code: Select all
<!-- Alien Syndrome (Europe, USA, Brazil) -->
<mamecheat version="1">
<cheat desc="no hit (test)">
<comment>bosses are wounded by body attack</comment>
<script state="on">
<action>slot:cart:rom.mb@02122 = 23</action> <!-- background -->
<action>slot:cart:rom.mb@024C1 = 18</action> <!-- objects -->
<action>slot:cart:rom.mb@05624 = 18</action> <!-- boss -->
<action>slot:cart:rom.mb@05636 = 18</action> <!-- boss -->
<action>slot:cart:rom.mb@3DCD2 = 18</action> <!-- generator ($9cd2) -->
</script>
<script state="off">
<action>slot:cart:rom.mb@02122 = 0C</action>
<action>slot:cart:rom.mb@024C1 = 20</action>
<action>slot:cart:rom.mb@05624 = 38</action>
<action>slot:cart:rom.mb@05636 = 30</action>
<action>slot:cart:rom.mb@3DCD2 = 20</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>slot:cart:rom.mb@11E4 = 2F</action> <!-- P1 -->
<action>slot:cart:rom.mb@120F = 2F</action> <!-- P2 -->
</script>
<script state="off">
<action>slot:cart:rom.mb@11E4 = 0F</action>
<action>slot:cart:rom.mb@120F = 0F</action>
</script>
</cheat>
<cheat desc="walk through wall">
<script state="on">
<action>slot:cart:rom.mb@170C = 18</action>
</script>
<script state="off">
<action>slot:cart:rom.mb@170C = 20</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x02">02 </item>
<item value="0x04">03 </item>
<item value="0x06">04 </item>
<item value="0x08">05 (fast)</item>
</parameter>
<script state="on">
<action>slot:cart:rom.mw@1773 = 1C40 </action>
<action>slot:cart:rom.mq@1C40 = 77DD1C56CD417EDD</action>
<action>slot:cart:rom.mq@1C48 = DD1C56CD3F7EDD41</action>
<action>slot:cart:rom.mq@1C50 = C8A7C91A81CD3F77</action>
<action>slot:cart:rom.mq@1C58 = FFFFC944EDF0003E</action>
<!--
1C40 | DD 7E 41 : ld a,(ix+$41) // y position
1C43 | CD 56 1C : call $1C56
1C46 | DD 77 41 : ld (ix+$41),a
1C49 | DD 7E 3F : ld a,(ix+$3f) // x position
1C4C | CD 56 1C : call $1C56
1C4F | DD 77 3F : ld (ix+$3f),a
1C52 | CD 81 1A : call $1A81
1C55 | C9 : ret
1C56 | A7 : and a
1C57 | C8 : ret z
1C58 | 3E xx : ld a,$xx
1C5A | F0 : ret p
1C5B | ED 44 : neg
1C5D | C9 : ret
-->
</script>
<script state="change">
<action>slot:cart:rom.mb@1C59 = param</action>
</script>
<script state="off">
<action>slot:cart:rom.mw@1773 = 1A81 </action>
<action>slot:cart:rom.mq@1C40 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@1C48 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@1C50 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@1C58 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="timer speed">
<parameter>
<item value="0xff">01 (slow)</item>
<item value="0x80">02 </item>
<item value="0x40">03 </item>
<item value="0x20">04 </item>
<item value="0x01">05 (fast)</item>
</parameter>
<script state="change">
<action> maincpu.pb@C07C = 00 </action> <!-- initialize sub timer -->
<action>slot:cart:rom.mb@10F7 = param</action>
</script>
<script state="off">
<action> maincpu.pb@C07C = 00</action>
<action>slot:cart:rom.mb@10F7 = 3C</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="0x0128">FM </item>
</parameter>
<script state="change">
<action>slot:cart:rom.mw@04FA = param</action>
</script>
<script state="off">
<action>slot:cart:rom.mw@04FA = 0128</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- code 0x09 causes game freeze -->
<comment>set "skip rom check error" then reset the game (F3)</comment>
<script state="on">
<action>slot:cart:rom.mb@00245 = 00 </action> <!-- accept sound code -->
<action>slot:cart:rom.mb@1C2AA = 00 </action> <!-- stop some sfxs ($82aa) -->
<action>slot:cart:rom.mw@00518 = BD80 </action>
<action>slot:cart:rom.mq@0BD80 = 2847B8DCDBC10021</action>
<action>slot:cart:rom.mq@0BD88 = F7FE350120FBFEFA</action>
<action>slot:cart:rom.mq@0BD90 = 3E0420FDFE340120</action>
<action>slot:cart:rom.mq@0BD98 = 3E0520FEFE0618F0</action>
<action>slot:cart:rom.mq@0BDA0 = 0520EFFE78778610</action>
<action>slot:cart:rom.mq@0BDA8 = 20DFFE061880F67E</action>
<action>slot:cart:rom.mq@0BDB0 = CB18D00332FF3E05</action>
<!--
BD80 | 21 00 C1 : ld hl,$C100 // sound code address
BD83 | DB DC : in a,($DC) // read input
BD85 | B8 : cp b
BD86 | 47 : ld b,a
BD87 | 28 FA : jr z,$BD83
BD89 | FE FB : cp $FB
BD8B | 20 01 : jr nz,$BD8E
BD8D | 35 : dec (hl) // decrease code -01
BD8E | FE F7 : cp $F7
BD90 | 20 01 : jr nz,$BD93
BD92 | 34 : inc (hl) // increase code +01
BD93 | FE FD : cp $FD
BD95 | 20 04 : jr nz,$BD9B
BD97 | 3E F0 : ld a,$F0 // decrease code -10
BD99 | 18 06 : jr $BDA1
BD9B | FE FE : cp $FE
BD9D | 20 05 : jr nz,$BDA4
BD9F | 3E 10 : ld a,$10 // increase code +10
BDA1 | 86 : add a,(hl)
BDA2 | 77 : ld (hl),a
BDA3 | 78 : ld a,b
BDA4 | FE EF : cp $EF
BDA6 | 20 05 : jr nz,$BDAD
BDA8 | 7E : ld a,(hl) // play sound
BDA9 | F6 80 : or $80
BDAB | 18 06 : jr $BDB3
BDAD | FE DF : cp $DF
BDAF | 20 05 : jr nz,$BDB6
BDB1 | 3E FF : ld a,$FF // stop sound
BDB3 | 32 03 D0 : ld ($D003),a // send sound code
BDB6 | 18 CB : jr $BD83
-->
</script>
<script state="run">
<output format="----- alien syndrome 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.mb@00245 = 06 </action>
<action>slot:cart:rom.mb@1C2AA = 08 </action>
<action>slot:cart:rom.mw@00518 = 029F </action>
<action>slot:cart:rom.mq@0BD80 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@0BD88 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@0BD90 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@0BD98 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@0BDA0 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@0BDA8 = 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/aliensynj.xml
Code: Select all
<!-- Alien Syndrome (Japan) -->
<mamecheat version="1">
<cheat desc="no hit (test)">
<comment>bosses are wounded by body attack</comment>
<script state="on">
<action>slot:cart:rom.mb@0211D = 23</action> <!-- background -->
<action>slot:cart:rom.mb@024BC = 18</action> <!-- objects -->
<action>slot:cart:rom.mb@05628 = 18</action> <!-- boss -->
<action>slot:cart:rom.mb@0563A = 18</action> <!-- boss -->
<action>slot:cart:rom.mb@3DCD2 = 18</action> <!-- generator ($9cd2) -->
</script>
<script state="off">
<action>slot:cart:rom.mb@0211D = 0C</action>
<action>slot:cart:rom.mb@024BC = 20</action>
<action>slot:cart:rom.mb@05628 = 38</action>
<action>slot:cart:rom.mb@0563A = 30</action>
<action>slot:cart:rom.mb@3DCD2 = 20</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>slot:cart:rom.mb@11F2 = 2F</action> <!-- P1 -->
<action>slot:cart:rom.mb@121D = 2F</action> <!-- P2 -->
</script>
<script state="off">
<action>slot:cart:rom.mb@11F2 = 0F</action>
<action>slot:cart:rom.mb@121D = 0F</action>
</script>
</cheat>
<cheat desc="walk through wall">
<script state="on">
<action>slot:cart:rom.mb@171A = 18</action>
</script>
<script state="off">
<action>slot:cart:rom.mb@171A = 20</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x02">02 </item>
<item value="0x04">03 </item>
<item value="0x06">04 </item>
<item value="0x08">05 (fast)</item>
</parameter>
<script state="on">
<action>slot:cart:rom.mw@1781 = 1C40 </action>
<action>slot:cart:rom.mq@1C40 = 77DD1C56CD417EDD</action>
<action>slot:cart:rom.mq@1C48 = DD1C56CD3F7EDD41</action>
<action>slot:cart:rom.mq@1C50 = C8A7C91A7CCD3F77</action>
<action>slot:cart:rom.mq@1C58 = FFFFC944EDF0003E</action>
<!--
1C40 | DD 7E 41 : ld a,(ix+$41) // y position
1C43 | CD 56 1C : call $1C56
1C46 | DD 77 41 : ld (ix+$41),a
1C49 | DD 7E 3F : ld a,(ix+$3f) // x position
1C4C | CD 56 1C : call $1C56
1C4F | DD 77 3F : ld (ix+$3f),a
1C52 | CD 7C 1A : call $1A7C
1C55 | C9 : ret
1C56 | A7 : and a
1C57 | C8 : ret z
1C58 | 3E xx : ld a,$xx
1C5A | F0 : ret p
1C5B | ED 44 : neg
1C5D | C9 : ret
-->
</script>
<script state="change">
<action>slot:cart:rom.mb@1C59 = param</action>
</script>
<script state="off">
<action>slot:cart:rom.mw@1781 = 1A7C </action>
<action>slot:cart:rom.mq@1C40 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@1C48 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@1C50 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@1C58 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="timer speed">
<parameter>
<item value="0xff">01 (slow)</item>
<item value="0x80">02 </item>
<item value="0x40">03 </item>
<item value="0x20">04 </item>
<item value="0x01">05 (fast)</item>
</parameter>
<script state="change">
<action> maincpu.pb@C07C = 00 </action> <!-- initialize sub timer -->
<action>slot:cart:rom.mb@1105 = param</action>
</script>
<script state="off">
<action> maincpu.pb@C07C = 00</action>
<action>slot:cart:rom.mb@1105 = 3C</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="0x0128">FM </item>
</parameter>
<script state="change">
<action>slot:cart:rom.mw@04FA = param</action>
</script>
<script state="off">
<action>slot:cart:rom.mw@04FA = 0128</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- code 0x09 causes game freeze -->
<comment>set "skip rom check error" then reset the game (F3)</comment>
<script state="on">
<action>slot:cart:rom.mb@00245 = 00 </action> <!-- accept sound code -->
<action>slot:cart:rom.mb@1C2AA = 00 </action> <!-- stop some sfxs ($82aa) -->
<action>slot:cart:rom.mw@00518 = BD80 </action>
<action>slot:cart:rom.mq@0BD80 = 2847B8DCDBC10021</action>
<action>slot:cart:rom.mq@0BD88 = F7FE350120FBFEFA</action>
<action>slot:cart:rom.mq@0BD90 = 3E0420FDFE340120</action>
<action>slot:cart:rom.mq@0BD98 = 3E0520FEFE0618F0</action>
<action>slot:cart:rom.mq@0BDA0 = 0520EFFE78778610</action>
<action>slot:cart:rom.mq@0BDA8 = 20DFFE061880F67E</action>
<action>slot:cart:rom.mq@0BDB0 = CB18D00332FF3E05</action>
<!--
BD80 | 21 00 C1 : ld hl,$C100 // sound code address
BD83 | DB DC : in a,($DC) // read input
BD85 | B8 : cp b
BD86 | 47 : ld b,a
BD87 | 28 FA : jr z,$BD83
BD89 | FE FB : cp $FB
BD8B | 20 01 : jr nz,$BD8E
BD8D | 35 : dec (hl) // decrease code -01
BD8E | FE F7 : cp $F7
BD90 | 20 01 : jr nz,$BD93
BD92 | 34 : inc (hl) // increase code +01
BD93 | FE FD : cp $FD
BD95 | 20 04 : jr nz,$BD9B
BD97 | 3E F0 : ld a,$F0 // decrease code -10
BD99 | 18 06 : jr $BDA1
BD9B | FE FE : cp $FE
BD9D | 20 05 : jr nz,$BDA4
BD9F | 3E 10 : ld a,$10 // increase code +10
BDA1 | 86 : add a,(hl)
BDA2 | 77 : ld (hl),a
BDA3 | 78 : ld a,b
BDA4 | FE EF : cp $EF
BDA6 | 20 05 : jr nz,$BDAD
BDA8 | 7E : ld a,(hl) // play sound
BDA9 | F6 80 : or $80
BDAB | 18 06 : jr $BDB3
BDAD | FE DF : cp $DF
BDAF | 20 05 : jr nz,$BDB6
BDB1 | 3E FF : ld a,$FF // stop sound
BDB3 | 32 03 D0 : ld ($D003),a // send sound code
BDB6 | 18 CB : jr $BD83
-->
</script>
<script state="run">
<output format="----- alien syndrome 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.mb@00245 = 06 </action>
<action>slot:cart:rom.mb@1C2AA = 08 </action>
<action>slot:cart:rom.mw@00518 = 029F </action>
<action>slot:cart:rom.mq@0BD80 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@0BD88 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@0BD90 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@0BD98 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@0BDA0 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@0BDA8 = 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/aliensynp.xml
Code: Select all
<!-- Alien Syndrome (prototype) -->
<mamecheat version="1">
<cheat desc="no hit (test)">
<comment>bosses are wounded by body attack</comment>
<script state="on">
<action>slot:cart:rom.mb@020EF = 23</action> <!-- background -->
<action>slot:cart:rom.mb@0248E = 18</action> <!-- objects -->
<action>slot:cart:rom.mb@05628 = 18</action> <!-- boss -->
<action>slot:cart:rom.mb@0563A = 18</action> <!-- boss -->
<action>slot:cart:rom.mb@3DCD2 = 18</action> <!-- generator ($9cd2) -->
</script>
<script state="off">
<action>slot:cart:rom.mb@0211D = 0C</action>
<action>slot:cart:rom.mb@024BC = 20</action>
<action>slot:cart:rom.mb@05628 = 38</action>
<action>slot:cart:rom.mb@0563A = 30</action>
<action>slot:cart:rom.mb@3DCD2 = 20</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>slot:cart:rom.mb@11F2 = 1F</action> <!-- P1 -->
<action>slot:cart:rom.mb@121D = 1F</action> <!-- P2 -->
</script>
<script state="off">
<action>slot:cart:rom.mb@11F2 = 0F</action>
<action>slot:cart:rom.mb@121D = 0F</action>
</script>
</cheat>
<cheat desc="walk through wall">
<script state="on">
<action>slot:cart:rom.mb@16F6 = 18</action>
</script>
<script state="off">
<action>slot:cart:rom.mb@16F6 = 20</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x02">02 </item>
<item value="0x04">03 </item>
<item value="0x06">04 </item>
<item value="0x08">05 (fast)</item>
</parameter>
<script state="on">
<action>slot:cart:rom.mw@175D = 1C10 </action>
<action>slot:cart:rom.mq@1C10 = 77DD1C26CD417EDD</action>
<action>slot:cart:rom.mq@1C18 = DD1C26CD3F7EDD41</action>
<action>slot:cart:rom.mq@1C20 = C8A7C91A58CD3F77</action>
<action>slot:cart:rom.mq@1C28 = FFFFC944EDF0003E</action>
<!--
1C10 | DD 7E 41 : ld a,(ix+$41) // y position
1C13 | CD 26 1C : call $1C56
1C16 | DD 77 41 : ld (ix+$41),a
1C19 | DD 7E 3F : ld a,(ix+$3f) // x position
1C1C | CD 26 1C : call $1C56
1C1F | DD 77 3F : ld (ix+$3f),a
1C22 | CD 58 1A : call $1A58
1C25 | C9 : ret
1C26 | A7 : and a
1C27 | C8 : ret z
1C28 | 3E xx : ld a,$xx
1C2A | F0 : ret p
1C2B | ED 44 : neg
1C2D | C9 : ret
-->
</script>
<script state="change">
<action>slot:cart:rom.mb@1C29 = param</action>
</script>
<script state="off">
<action>slot:cart:rom.mw@175D = 1A58 </action>
<action>slot:cart:rom.mq@1C10 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@1C18 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@1C20 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@1C28 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="timer speed">
<parameter>
<item value="0xff">01 (slow)</item>
<item value="0x80">02 </item>
<item value="0x40">03 </item>
<item value="0x20">04 </item>
<item value="0x01">05 (fast)</item>
</parameter>
<script state="change">
<action> maincpu.pb@C07C = 00 </action> <!-- initialize sub timer -->
<action>slot:cart:rom.mb@1105 = param</action>
</script>
<script state="off">
<action> maincpu.pb@C07C = 00</action>
<action>slot:cart:rom.mb@1105 = 3C</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="0x0128">FM </item>
</parameter>
<script state="change">
<action>slot:cart:rom.mw@04FA = param</action>
</script>
<script state="off">
<action>slot:cart:rom.mw@04FA = 0128</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- code 0x09 causes game freeze -->
<comment>set "skip rom check error" then reset the game (F3)</comment>
<script state="on">
<action>slot:cart:rom.mb@00245 = 00 </action> <!-- accept sound code -->
<action>slot:cart:rom.mb@1C2AA = 00 </action> <!-- stop some sfxs ($82aa) -->
<action>slot:cart:rom.mw@00518 = BD80 </action>
<action>slot:cart:rom.mq@0BD80 = 2847B8DCDBC10021</action>
<action>slot:cart:rom.mq@0BD88 = F7FE350120FBFEFA</action>
<action>slot:cart:rom.mq@0BD90 = 3E0420FDFE340120</action>
<action>slot:cart:rom.mq@0BD98 = 3E0520FEFE0618F0</action>
<action>slot:cart:rom.mq@0BDA0 = 0520EFFE78778610</action>
<action>slot:cart:rom.mq@0BDA8 = 20DFFE061880F67E</action>
<action>slot:cart:rom.mq@0BDB0 = CB18D00332FF3E05</action>
<!--
BD80 | 21 00 C1 : ld hl,$C100 // sound code address
BD83 | DB DC : in a,($DC) // read input
BD85 | B8 : cp b
BD86 | 47 : ld b,a
BD87 | 28 FA : jr z,$BD83
BD89 | FE FB : cp $FB
BD8B | 20 01 : jr nz,$BD8E
BD8D | 35 : dec (hl) // decrease code -01
BD8E | FE F7 : cp $F7
BD90 | 20 01 : jr nz,$BD93
BD92 | 34 : inc (hl) // increase code +01
BD93 | FE FD : cp $FD
BD95 | 20 04 : jr nz,$BD9B
BD97 | 3E F0 : ld a,$F0 // decrease code -10
BD99 | 18 06 : jr $BDA1
BD9B | FE FE : cp $FE
BD9D | 20 05 : jr nz,$BDA4
BD9F | 3E 10 : ld a,$10 // increase code +10
BDA1 | 86 : add a,(hl)
BDA2 | 77 : ld (hl),a
BDA3 | 78 : ld a,b
BDA4 | FE EF : cp $EF
BDA6 | 20 05 : jr nz,$BDAD
BDA8 | 7E : ld a,(hl) // play sound
BDA9 | F6 80 : or $80
BDAB | 18 06 : jr $BDB3
BDAD | FE DF : cp $DF
BDAF | 20 05 : jr nz,$BDB6
BDB1 | 3E FF : ld a,$FF // stop sound
BDB3 | 32 03 D0 : ld ($D003),a // send sound code
BDB6 | 18 CB : jr $BD83
-->
</script>
<script state="run">
<output format="----- alien syndrome 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.mb@00245 = 06 </action>
<action>slot:cart:rom.mb@1C2AA = 08 </action>
<action>slot:cart:rom.mw@00518 = 029F </action>
<action>slot:cart:rom.mq@0BD80 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@0BD88 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@0BD90 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@0BD98 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@0BDA0 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@0BDA8 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc=" " />
<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" : Bosses are wounded by body attack so that this code is marked as test.
- "walk through wall" : The game is crashed when you go to out of screen.
- "sound device" : FM is enabled in smsj and smskrfm only. Always PSG in other sets.
- "sound test mode" : Code 0x09 causes game freeze.
- "skip rom check error" : sg1000m3 causes parsing xml error and no registration in cheat menu because of no user1 region. But no problem because sg1000m3 doesn't check ROM.