aerialas.xml
Code: Select all
<!-- Aerial Assault (Europe, Brazil) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>slot:cart:rom.mb@36EB = C9</action> <!-- background -->
<action>slot:cart:rom.mb@BB8C = C9</action> <!-- object -->
</script>
<script state="off">
<action>slot:cart:rom.mb@36EB = 3E</action>
<action>slot:cart:rom.mb@BB8C = C8</action>
</script>
</cheat>
<cheat desc="auto fire - shot">
<script state="on">
<action>slot:cart:rom.mb@378B = 00</action>
</script>
<script state="off">
<action>slot:cart:rom.mb@378B = 0A</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter min="0x01" max="0x05" step="0x01" />
<script state="on">
<action>slot:cart:rom.md@331B = FE7DF0CD </action> <!-- x position -->
<action>slot:cart:rom.md@332C = FE7DF6CD </action> <!-- y position -->
<action>slot:cart:rom.mq@7DF0 = DD470418007EDD47</action>
<action>slot:cart:rom.mq@7DF8 = 003E08284FA7017E</action>
<action>slot:cart:rom.mq@7E00 = 81784F44ED7E05F2</action>
<action>slot:cart:rom.mq@7E08 = FFFFFFFFFFFFFFC9</action>
<!--
7DF0 | 47 : ld b,a // x position
7DF1 | DD 7E 00 : ld a,(ix+$00)
7DF4 | 18 04 : jr $7DFA
7DF6 | 47 : ld b,a // y position
7DF7 | DD 7E 01 : ld a,(ix+$01)
7DFA | A7 : and a // common routine
7DFB | 4F : ld c,a
7DFC | 28 08 : jr z,$7E06
7DFE | 3E xx : ld a,$xx
7E00 | F2 05 7E : jp p,$7E05
7E03 | ED 44 : neg
7E05 | 4F : ld c,a
7E06 | 78 : ld a,b
7E07 | 81 : add a,c
7E08 | C9 : ret
-->
</script>
<script state="change">
<action>slot:cart:rom.mb@7DFF = param</action>
</script>
<script state="off">
<action>slot:cart:rom.md@331B = FE0086DD </action>
<action>slot:cart:rom.md@332C = FE0186DD </action>
<action>slot:cart:rom.mq@7DF0 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7DF8 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7E00 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7E08 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="bullet speed">
<parameter min="0x01" max="0x05" step="0x01" />
<script state="on">
<action>slot:cart:rom.mw@28BD = 7E10 </action> <!-- level 1 -->
<action>slot:cart:rom.mw@2B0D = 7E10 </action> <!-- level 2 -->
<action>slot:cart:rom.mw@2D15 = 7E10 </action> <!-- level 3 -->
<action>slot:cart:rom.mw@2F94 = 7E10 </action> <!-- level 4 -->
<action>slot:cart:rom.mw@3219 = 7E10 </action> <!-- level 5 -->
<action>slot:cart:rom.mq@7E10 = 10C13AB2CDC50006</action>
<action>slot:cart:rom.mq@7E18 = FFFFFFFFFFFFC9F9</action>
<!--
7E10 | 06 xx : ld b,$xx
7E12 | C5 : push bc
7E13 | CD B2 3A : call $3AB2
7E16 | C1 : pop bc
7E17 | 10 F9 : djnz $7E12
7E19 | C9 : ret
-->
</script>
<script state="change">
<action>slot:cart:rom.mb@7E11 = param</action>
</script>
<script state="off">
<action>slot:cart:rom.mw@28BD = 3AB2 </action>
<action>slot:cart:rom.mw@2B0D = 3AB2 </action>
<action>slot:cart:rom.mw@2D15 = 3AB2 </action>
<action>slot:cart:rom.mw@2F94 = 3AB2 </action>
<action>slot:cart:rom.mw@3219 = 3AB2 </action>
<action>slot:cart:rom.mq@7E10 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7E18 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="weapon - shot">
<parameter>
<item value="0x00">normal shot</item>
<item value="0x01">3-way </item>
<item value="0x02">8-way </item>
<item value="0x03">laser </item>
<item value="0x04">wave </item>
<item value="0x05">missile </item>
<item value="0x06">explosion </item>
<item value="0x07">6-way </item>
<item value="0x08">direction </item>
</parameter>
<script state="on">
<action>slot:cart:rom.md@379A = CD00003E</action>
<action>slot:cart:rom.md@3AB5 = CD00003E</action>
</script>
<script state="change">
<action>slot:cart:rom.mb@379B = param</action>
<action>slot:cart:rom.mb@3AB6 = param</action>
</script>
<script state="off">
<action>slot:cart:rom.md@379A = CDC1353A</action>
<action>slot:cart:rom.md@3AB5 = CDC1353A</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- you can't stop sfx by sound stop button -->
<comment>set "skip rom check error" then reset the game (F3)</comment>
<script state="on">
<action>slot:cart:rom.mb@010B = CD </action> <!-- accept sound code -->
<action>slot:cart:rom.md@0081 = 217E20C3 </action>
<action>slot:cart:rom.mq@7E20 = 47B8DCDBC10021FB</action>
<action>slot:cart:rom.mq@7E28 = FE350120FBFEFA28</action>
<action>slot:cart:rom.mq@7E30 = 0420FDFE340120F7</action>
<action>slot:cart:rom.mq@7E38 = 0520FEFE0618F03E</action>
<action>slot:cart:rom.mq@7E40 = 20EFFE787786103E</action>
<action>slot:cart:rom.mq@7E48 = DFFE061880F67E05</action>
<action>slot:cart:rom.mq@7E50 = 18D00432FF3E0520</action>
<action>slot:cart:rom.mq@7E58 = FFFFFFFFFFFFFFCB</action>
<!--
7E20 | FB : ei // enable interrupt
7E21 | 21 00 C1 : ld hl,$C100 // sound code address
7E24 | DB DC : in a,($DC) // read input
7E26 | B8 : cp b
7E27 | 47 : ld b,a
7E28 | 28 FA : jr z,$7E24
7E2A | FE FB : cp $FB
7E2C | 20 01 : jr nz,$7E2F
7E2E | 35 : dec (hl) // decrease code -01
7E2F | FE F7 : cp $F7
7E31 | 20 01 : jr nz,$7E34
7E33 | 34 : inc (hl) // increase code +01
7E34 | FE FD : cp $FD
7E36 | 20 04 : jr nz,$7E3C
7E38 | 3E F0 : ld a,$F0 // decrease code -10
7E3A | 18 06 : jr $7E42
7E3C | FE FE : cp $FE
7E3E | 20 05 : jr nz,$7E45
7E40 | 3E 10 : ld a,$10 // increase code +10
7E42 | 86 : add a,(hl)
7E43 | 77 : ld (hl),a
7E44 | 78 : ld a,b
7E45 | FE EF : cp $EF
7E47 | 20 05 : jr nz,$7E4E
7E49 | 7E : ld a,(hl) // play sound
7E4A | F6 80 : or $80
7E4C | 18 06 : jr $7E54
7E4E | FE DF : cp $DF
7E50 | 20 05 : jr nz,$7E57
7E52 | 3E FF : ld a,$FF // stop sound
7E54 | 32 04 D0 : ld ($D004),a // send sound code
7E57 | 18 CB : jr $7E24
-->
</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.mb@010B = C4 </action>
<action>slot:cart:rom.md@0081 = 21C2003A </action>
<action>slot:cart:rom.mq@7E20 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7E28 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7E30 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7E38 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7E40 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7E48 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7E50 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7E58 = 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>
aerialasu.xml
Code: Select all
<!-- Aerial Assault (USA) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>slot:cart:rom.mb@3703 = C9</action> <!-- background -->
<action>slot:cart:rom.mb@BB8C = C9</action> <!-- object -->
</script>
<script state="off">
<action>slot:cart:rom.mb@3703 = 3E</action>
<action>slot:cart:rom.mb@BB8C = C8</action>
</script>
</cheat>
<cheat desc="auto fire - shot">
<script state="on">
<action>slot:cart:rom.mb@37A3 = 00</action>
</script>
<script state="off">
<action>slot:cart:rom.mb@37A3 = 0A</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter min="0x01" max="0x05" step="0x01" />
<script state="on">
<action>slot:cart:rom.md@331B = FE7E20CD </action> <!-- x position -->
<action>slot:cart:rom.md@332C = FE7E26CD </action> <!-- y position -->
<action>slot:cart:rom.mq@7E20 = DD470418007EDD47</action>
<action>slot:cart:rom.mq@7E28 = 003E08284FA7017E</action>
<action>slot:cart:rom.mq@7E30 = 81784F44ED7E35F2</action>
<action>slot:cart:rom.mq@7E38 = FFFFFFFFFFFFFFC9</action>
<!--
7E20 | 47 : ld b,a // x position
7E21 | DD 7E 00 : ld a,(ix+$00)
7E24 | 18 04 : jr $7E2A
7E26 | 47 : ld b,a // y position
7E27 | DD 7E 01 : ld a,(ix+$01)
7E2A | A7 : and a // common routine
7E2B | 4F : ld c,a
7E2C | 28 08 : jr z,$7E36
7E2E | 3E xx : ld a,$xx
7E30 | F2 35 7E : jp p,$7E35
7E33 | ED 44 : neg
7E35 | 4F : ld c,a
7E36 | 78 : ld a,b
7E37 | 81 : add a,c
7E38 | C9 : ret
-->
</script>
<script state="change">
<action>slot:cart:rom.mb@7E2F = param</action>
</script>
<script state="off">
<action>slot:cart:rom.md@331B = FE0086DD </action>
<action>slot:cart:rom.md@332C = FE0186DD </action>
<action>slot:cart:rom.mq@7E20 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7E28 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7E30 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7E38 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="bullet speed">
<parameter min="0x01" max="0x05" step="0x01" />
<script state="on">
<action>slot:cart:rom.mw@28BD = 7E40 </action> <!-- level 1 -->
<action>slot:cart:rom.mw@2B0D = 7E40 </action> <!-- level 2 -->
<action>slot:cart:rom.mw@2D15 = 7E40 </action> <!-- level 3 -->
<action>slot:cart:rom.mw@2F94 = 7E40 </action> <!-- level 4 -->
<action>slot:cart:rom.mw@3219 = 7E40 </action> <!-- level 5 -->
<action>slot:cart:rom.mq@7E40 = 10C13ACACDC50006</action>
<action>slot:cart:rom.mq@7E48 = FFFFFFFFFFFFC9F9</action>
<!--
7E40 | 06 xx : ld b,$xx
7E42 | C5 : push bc
7E43 | CD CA 3A : call $3ACA
7E46 | C1 : pop bc
7E47 | 10 F9 : djnz $7E42
7E49 | C9 : ret
-->
</script>
<script state="change">
<action>slot:cart:rom.mb@7E41 = param</action>
</script>
<script state="off">
<action>slot:cart:rom.mw@28BD = 3ACA </action>
<action>slot:cart:rom.mw@2B0D = 3ACA </action>
<action>slot:cart:rom.mw@2D15 = 3ACA </action>
<action>slot:cart:rom.mw@2F94 = 3ACA </action>
<action>slot:cart:rom.mw@3219 = 3ACA </action>
<action>slot:cart:rom.mq@7E40 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7E48 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="weapon - shot">
<parameter>
<item value="0x00">normal shot</item>
<item value="0x01">3-way </item>
<item value="0x02">8-way </item>
<item value="0x03">laser </item>
<item value="0x04">wave </item>
<item value="0x05">missile </item>
<item value="0x06">explosion </item>
<item value="0x07">6-way </item>
<item value="0x08">direction </item>
</parameter>
<script state="on">
<action>slot:cart:rom.md@37B2 = CD00003E</action>
<action>slot:cart:rom.md@3ACD = CD00003E</action>
</script>
<script state="change">
<action>slot:cart:rom.mb@37B3 = param</action>
<action>slot:cart:rom.mb@3ACE = param</action>
</script>
<script state="off">
<action>slot:cart:rom.md@37B2 = CDC1353A</action>
<action>slot:cart:rom.md@3ACD = CDC1353A</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- you can't stop sfx by sound stop button -->
<comment>set "skip rom check error" then reset the game (F3)</comment>
<script state="on">
<action>slot:cart:rom.mb@010B = CD </action> <!-- accept sound code -->
<action>slot:cart:rom.md@0081 = 217E50C3 </action>
<action>slot:cart:rom.mq@7E50 = 47B8DCDBC10021FB</action>
<action>slot:cart:rom.mq@7E58 = FE350120FBFEFA28</action>
<action>slot:cart:rom.mq@7E60 = 0420FDFE340120F7</action>
<action>slot:cart:rom.mq@7E68 = 0520FEFE0618F03E</action>
<action>slot:cart:rom.mq@7E70 = 20EFFE787786103E</action>
<action>slot:cart:rom.mq@7E78 = DFFE061880F67E05</action>
<action>slot:cart:rom.mq@7E80 = 18D00432FF3E0520</action>
<action>slot:cart:rom.mq@7E88 = FFFFFFFFFFFFFFCB</action>
<!--
7E50 | FB : ei // enable interrupt
7E51 | 21 00 C1 : ld hl,$C100 // sound code address
7E54 | DB DC : in a,($DC) // read input
7E56 | B8 : cp b
7E57 | 47 : ld b,a
7E58 | 28 FA : jr z,$7E54
7E5A | FE FB : cp $FB
7E5C | 20 01 : jr nz,$7E5F
7E5E | 35 : dec (hl) // decrease code -01
7E5F | FE F7 : cp $F7
7E61 | 20 01 : jr nz,$7E64
7E63 | 34 : inc (hl) // increase code +01
7E64 | FE FD : cp $FD
7E66 | 20 04 : jr nz,$7E6C
7E68 | 3E F0 : ld a,$F0 // decrease code -10
7E6A | 18 06 : jr $7E72
7E6C | FE FE : cp $FE
7E6E | 20 05 : jr nz,$7E75
7E70 | 3E 10 : ld a,$10 // increase code +10
7E72 | 86 : add a,(hl)
7E73 | 77 : ld (hl),a
7E74 | 78 : ld a,b
7E75 | FE EF : cp $EF
7E77 | 20 05 : jr nz,$7E7E
7E79 | 7E : ld a,(hl) // play sound
7E7A | F6 80 : or $80
7E7C | 18 06 : jr $7E84
7E7E | FE DF : cp $DF
7E80 | 20 05 : jr nz,$7E87
7E82 | 3E FF : ld a,$FF // stop sound
7E84 | 32 04 D0 : ld ($D004),a // send sound code
7E87 | 18 CB : jr $7E54
-->
</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.mb@010B = C4 </action>
<action>slot:cart:rom.md@0081 = 21C2003A </action>
<action>slot:cart:rom.mq@7E50 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7E58 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7E60 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7E68 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7E70 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7E78 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7E80 = FFFFFFFFFFFFFFFF</action>
<action>slot:cart:rom.mq@7E88 = 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>
- "weapon - shot" : Added new.
- "sound test mode" : Rewritten routine.