sqix.xml
Code: Select all
<!-- Super Qix (World/Japan, V1.2) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mw@06598 = 1A18</action> <!-- small enemy -->
<action>maincpu.mb@137CA = 3A </action> <!-- big enemy ($b7ca) -->
</script>
<script state="off">
<action>maincpu.mw@06598 = FDAF</action>
<action>maincpu.mb@137CA = 32 </action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x08">01 (slow)</item>
<item value="0x04">02 </item>
<item value="0x02">03 </item>
<item value="0x01">04 </item>
<item value="0x00">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@10899 = param</action> <!-- ($8899) -->
<action>maincpu.mb@1089C = param</action> <!-- ($889c) -->
<action>maincpu.mb@1089F = param</action> <!-- ($889f) -->
</script>
<script state="off">
<action>maincpu.mb@10899 = 01</action>
<action>maincpu.mb@1089C = 02</action>
<action>maincpu.mb@1089F = 03</action>
</script>
</cheat>
<cheat desc="move free on drawing area (test)">
<script state="on">
<action>maincpu.mb@105B3 = 00 </action> <!-- common ($85b3) -->
<action>maincpu.md@105BD = E67BC0C3 </action> <!-- up ($85bd) -->
<action>maincpu.md@105EB = 577BD2C3 </action> <!-- down ($85eb) -->
<action>maincpu.md@1061A = E67BE6C3 </action> <!-- left ($861a) -->
<action>maincpu.md@10646 = E67BFCC3 </action> <!-- right ($8646) -->
<action>maincpu.mq@07BC0 = 30E0FE0A28A778ED</action>
<action>maincpu.mq@07BC8 = C385C0C378ED0C06</action>
<action>maincpu.mq@07BD0 = 0B28A778ED0D85DB</action>
<action>maincpu.mq@07BD8 = 0328EEFE0728E0FE</action>
<action>maincpu.mq@07BE0 = CB05860AC385EEC3</action>
<action>maincpu.mq@07BE8 = E0FE0B28A778EDF9</action>
<action>maincpu.mq@07BF0 = 1DC378EDB9CB0728</action>
<action>maincpu.mq@07BF8 = 78EDF9CB8637C386</action>
<action>maincpu.mq@07C00 = 040828E0FE0C28A7</action>
<action>maincpu.mq@07C08 = C38649C378EDB9CB</action>
<action>maincpu.mq@07C10 = FFFFFFFFFFFF8664</action>
<!--
7BC0 | ED 78 : in a,(c) // up
7BC2 | A7 : and a
7BC3 | 28 0A : jr z,$7BCF
7BC5 | FE E0 : cp $E0
7BC7 | 30 06 : jr nc,$7BCF
7BC9 | 0C : inc c
7BCA | ED 78 : in a,(c)
7BCC | C3 C0 85 : jp $85C0
7BCF | C3 DB 85 : jp $85DB
7BD2 | 0D : dec c // down
7BD3 | ED 78 : in a,(c)
7BD5 | A7 : and a
7BD6 | 28 0B : jr z,$7BE3
7BD8 | FE E0 : cp $E0
7BDA | 28 07 : jr z,$7BE3
7BDC | FE EE : cp $EE
7BDE | 28 03 : jr z,$7BE3
7BE0 | C3 EE 85 : jp $85EE
7BE3 | C3 0A 86 : jp $860A
7BE6 | 05 : dec b // left
7BE7 | CB F9 : set 7,c
7BE9 | ED 78 : in a,(c)
7BEB | A7 : and a
7BEC | 28 0B : jr z,$7BF9
7BEE | FE E0 : cp $E0
7BF0 | 28 07 : jr z,$7BF9
7BF2 | CB B9 : res 7,c
7BF4 | ED 78 : in a,(c)
7BF6 | C3 1D 86 : jp $861D
7BF9 | C3 37 86 : jp $8637
7BFC | CB F9 : set 7,c // right
7BFE | ED 78 : in a,(c)
7C00 | A7 : and a
7C01 | 28 0C : jr z,$7C0F
7C03 | FE E0 : cp $E0
7C05 | 28 08 : jr z,$7C0F
7C07 | 04 : inc b
7C08 | CB B9 : res 7,c
7C0A | ED 78 : in a,(c)
7C0C | C3 49 86 : jp $8649
7C0F | C3 64 86 : jp $8664
-->
</script>
<script state="off">
<action>maincpu.mb@105B3 = D8 </action>
<action>maincpu.md@105BD = E678ED0C </action>
<action>maincpu.md@105EB = 5778ED0D </action>
<action>maincpu.md@1061A = E678ED05 </action>
<action>maincpu.md@10646 = E678ED04 </action>
<action>maincpu.mq@07BB0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@07BB8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@07BC0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@07BC8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@07BD0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@07BD8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@07BE0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@07BE8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@07BF0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@07BF8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@07C00 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>set "skip ram/rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mb@009F = 00 </action> <!-- enable input check -->
<action>maincpu.mb@07FD = 00 </action> <!-- enable sound check -->
<action>maincpu.mw@08A1 = 7B80 </action>
<action>maincpu.mq@7B80 = 47B8F8003AF00021</action>
<action>maincpu.mq@7B88 = FE350120FBFEF928</action>
<action>maincpu.mq@7B90 = 0420FDFE340120F7</action>
<action>maincpu.mq@7B98 = 0520FEFE0618F03E</action>
<action>maincpu.mq@7BA0 = 20EFFE787786103E</action>
<action>maincpu.mq@7BA8 = DFFE051880F67E05</action>
<action>maincpu.mq@7BB0 = CB18F70032AF0420</action>
<!--
7B80 | 21 00 F0 : ld hl,$F000 // sound code address
7B83 | 3A 00 F8 : ld a,($F800) // read input
7B86 | B8 : cp b
7B87 | 47 : ld b,a
7B88 | 28 F9 : jr z,$7B83
7B8A | FE FB : cp $FB
7B8C | 20 01 : jr nz,$7B8F
7B8E | 35 : dec (hl) // decrease code -01
7B8F | FE F7 : cp $F7
7B91 | 20 01 : jr nz,$7B94
7B93 | 34 : inc (hl) // increase code +01
7B94 | FE FD : cp $FD
7B96 | 20 04 : jr nz,$7B9C
7B98 | 3E F0 : ld a,$F0 // decrease code -10
7B9A | 18 06 : jr $7BA2
7B9C | FE FE : cp $FE
7B9E | 20 05 : jr nz,$7BA5
7BA0 | 3E 10 : ld a,$10 // increase code +10
7BA2 | 86 : add a,(hl)
7BA3 | 77 : ld (hl),a
7BA4 | 78 : ld a,b
7BA5 | FE EF : cp $EF
7BA7 | 20 05 : jr nz,$7BAE
7BA9 | 7E : ld a,(hl) // play sound
7BAA | F6 80 : or $80
7BAC | 18 05 : jr $7BB3
7BAE | FE DF : cp $DF
7BB0 | 20 04 : jr nz,$7BB6
7BB2 | AF : xor a // stop sound
7BB3 | 32 00 F7 : ld ($F700),a // send sound code
7BB6 | 18 CB : jr $7B83
-->
</script>
<script state="run">
<output format="----- super qix 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@F000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mb@009F = 29 </action>
<action>maincpu.mb@07FD = 23 </action>
<action>maincpu.mw@08A1 = 1000 </action>
<action>maincpu.mq@7B80 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7B88 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7B90 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7B98 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7BA0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7BA8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7BB0 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.mw@0861 = 0866</action>
</script>
<script state="off">
<action>maincpu.mw@0861 = 5000</action>
</script>
</cheat>
</mamecheat>
sqixr1.xml
Code: Select all
<!-- Super Qix (World/Japan, V1.1) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mw@06598 = 1A18</action> <!-- small enemy -->
<action>maincpu.mb@137CA = 3A </action> <!-- big enemy ($b7ca) -->
</script>
<script state="off">
<action>maincpu.mw@06598 = FDAF</action>
<action>maincpu.mb@137CA = 32 </action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x08">01 (slow)</item>
<item value="0x04">02 </item>
<item value="0x02">03 </item>
<item value="0x01">04 </item>
<item value="0x00">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@10899 = param</action> <!-- ($8899) -->
<action>maincpu.mb@1089C = param</action> <!-- ($889c) -->
<action>maincpu.mb@1089F = param</action> <!-- ($889f) -->
</script>
<script state="off">
<action>maincpu.mb@10899 = 01</action>
<action>maincpu.mb@1089C = 02</action>
<action>maincpu.mb@1089F = 03</action>
</script>
</cheat>
<cheat desc="move free on drawing area (test)">
<script state="on">
<action>maincpu.mb@105B3 = 00 </action> <!-- common ($85b3) -->
<action>maincpu.md@105BD = E6FE00C3</action> <!-- up ($85bd) -->
<action>maincpu.md@105EB = 57FE12C3</action> <!-- down ($85eb) -->
<action>maincpu.md@1061A = E6FE26C3</action> <!-- left ($861a) -->
<action>maincpu.md@10646 = E6FE3CC3</action> <!-- right ($8646) -->
</script>
<script state="run">
<action>maincpu.pq@FE00 = 30E0FE0A28A778ED</action>
<action>maincpu.pq@FE08 = C385C0C378ED0C06</action>
<action>maincpu.pq@FE10 = 0B28A778ED0D85DB</action>
<action>maincpu.pq@FE18 = 0328EEFE0728E0FE</action>
<action>maincpu.pq@FE20 = CB05860AC385EEC3</action>
<action>maincpu.pq@FE28 = E0FE0B28A778EDF9</action>
<action>maincpu.pq@FE30 = 1DC378EDB9CB0728</action>
<action>maincpu.pq@FE38 = 78EDF9CB8637C386</action>
<action>maincpu.pq@FE40 = 040828E0FE0C28A7</action>
<action>maincpu.pq@FE48 = C38649C378EDB9CB</action>
<action>maincpu.pq@FE50 = 0000000000008664</action>
<!--
FE00 | ED 78 : in a,(c) // up
FE02 | A7 : and a
FE03 | 28 0A : jr z,$FE0F
FE05 | FE E0 : cp $E0
FE07 | 30 06 : jr nc,$FE0F
FE09 | 0C : inc c
FE0A | ED 78 : in a,(c)
FE0C | C3 C0 85 : jp $85C0
FE0F | C3 DB 85 : jp $85DB
FE12 | 0D : dec c // down
FE13 | ED 78 : in a,(c)
FE15 | A7 : and a
FE16 | 28 0B : jr z,$FE23
FE18 | FE E0 : cp $E0
FE1A | 28 07 : jr z,$FE23
FE1C | FE EE : cp $EE
FE1E | 28 03 : jr z,$FE23
FE20 | C3 EE 85 : jp $85EE
FE23 | C3 0A 86 : jp $860A
FE26 | 05 : dec b // left
FE27 | CB F9 : set 7,c
FE29 | ED 78 : in a,(c)
FE2B | A7 : and a
FE2C | 28 0B : jr z,$FE39
FE2E | FE E0 : cp $E0
FE30 | 28 07 : jr z,$FE39
FE32 | CB B9 : res 7,c
FE34 | ED 78 : in a,(c)
FE36 | C3 1D 86 : jp $861D
FE39 | C3 37 86 : jp $8637
FE3C | CB F9 : set 7,c // right
FE3E | ED 78 : in a,(c)
FE40 | A7 : and a
FE41 | 28 0C : jr z,$FE4F
FE43 | FE E0 : cp $E0
FE45 | 28 08 : jr z,$FE4F
FE47 | 04 : inc b
FE48 | CB B9 : res 7,c
FE4A | ED 78 : in a,(c)
FE4C | C3 49 86 : jp $8649
FE4F | C3 64 86 : jp $8664
-->
</script>
<script state="off">
<action>maincpu.mb@105B3 = D8 </action>
<action>maincpu.md@105BD = E678ED0C </action>
<action>maincpu.md@105EB = 5778ED0D </action>
<action>maincpu.md@1061A = E678ED05 </action>
<action>maincpu.md@10646 = E678ED04 </action>
<action>maincpu.pq@0FE00 = 0000000000000000</action>
<action>maincpu.pq@0FE08 = 0000000000000000</action>
<action>maincpu.pq@0FE10 = 0000000000000000</action>
<action>maincpu.pq@0FE18 = 0000000000000000</action>
<action>maincpu.pq@0FE20 = 0000000000000000</action>
<action>maincpu.pq@0FE28 = 0000000000000000</action>
<action>maincpu.pq@0FE30 = 0000000000000000</action>
<action>maincpu.pq@0FE38 = 0000000000000000</action>
<action>maincpu.pq@0FE40 = 0000000000000000</action>
<action>maincpu.pq@0FE48 = 0000000000000000</action>
<action>maincpu.pq@0FE50 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>set "skip ram/rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mb@0009F = 00 </action> <!-- enable input check -->
<action>maincpu.mb@007F6 = 00 </action> <!-- enable sound check -->
<action>maincpu.mb@00879 = 18 </action> <!-- back up nmi and bank -->
<action>maincpu.mq@01000 = C379ED041001183E</action>
<action>maincpu.mq@01008 = 000000000000B000</action>
<action>maincpu.mq@17000 = 47B8F8003AF00021</action>
<action>maincpu.mq@17008 = FE350120FBFEF928</action>
<action>maincpu.mq@17010 = 0420FDFE340120F7</action>
<action>maincpu.mq@17018 = 0520FEFE0618F03E</action>
<action>maincpu.mq@17020 = 20EFFE787786103E</action>
<action>maincpu.mq@17028 = DFFE051880F67E05</action>
<action>maincpu.mq@17030 = CB18F70032AF0420</action>
<!--
1000 | 3E 18 : ld a,$18 // set nmi (0x08) and bank (0x10)
1002 | 01 10 04 : ld bc,$0410
1005 | ED 79 : out (c),a
1007 | C3 00 B0 : jp $B000
================================
B000 | 21 00 F0 : ld hl,$F000 // sound code address
B003 | 3A 00 F8 : ld a,($F800) // read input
B006 | B8 : cp b
B007 | 47 : ld b,a
B008 | 28 F9 : jr z,$B003
B00A | FE FB : cp $FB
B00C | 20 01 : jr nz,$B00F
B00E | 35 : dec (hl) // decrease code -01
B00F | FE F7 : cp $F7
B011 | 20 01 : jr nz,$B014
B013 | 34 : inc (hl) // increase code +10
B014 | FE FD : cp $FD
B016 | 20 04 : jr nz,$B01C
B018 | 3E F0 : ld a,$F0 // decrease code -10
B01A | 18 06 : jr $B022
B01C | FE FE : cp $FE
B01E | 20 05 : jr nz,$B025
B020 | 3E 10 : ld a,$10 // increase code -10
B022 | 86 : add a,(hl)
B023 | 77 : ld (hl),a
B024 | 78 : ld a,b
B025 | FE EF : cp $EF
B027 | 20 05 : jr nz,$B02E
B029 | 7E : ld a,(hl) // play sound
B02A | F6 80 : or $80
B02C | 18 05 : jr $B033
B02E | FE DF : cp $DF
B030 | 20 04 : jr nz,$B036
B032 | AF : xor a // stop sound
B033 | 32 00 F7 : ld ($F700),a // send sound code
B036 | 18 CB : jr $B003
-->
</script>
<script state="run">
<output format="----- super qix 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@F000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mb@0009F = 29 </action>
<action>maincpu.mb@007F6 = 23 </action>
<action>maincpu.mb@00879 = 08 </action>
<action>maincpu.mq@01000 = 1014CA00FEF8AC3A</action>
<action>maincpu.mq@01008 = CA02FE131CCA01FE</action>
<action>maincpu.mq@17000 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@17008 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@17010 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@17018 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@17020 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@17028 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@17030 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.mw@085A = 085F</action>
</script>
<script state="off">
<action>maincpu.mw@085A = 5000</action>
</script>
</cheat>
</mamecheat>
sqixr0.xml
Code: Select all
<!-- Super Qix (World/Japan, V1.0) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mw@06598 = 1A18</action> <!-- small enemy -->
<action>maincpu.mb@137CA = 3A </action> <!-- big enemy ($b7ca) -->
</script>
<script state="off">
<action>maincpu.mw@06598 = FDAF</action>
<action>maincpu.mb@137CA = 32 </action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x08">01 (slow)</item>
<item value="0x04">02 </item>
<item value="0x02">03 </item>
<item value="0x01">04 </item>
<item value="0x00">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@10899 = param</action> <!-- ($8899) -->
<action>maincpu.mb@1089C = param</action> <!-- ($889c) -->
<action>maincpu.mb@1089F = param</action> <!-- ($889f) -->
</script>
<script state="off">
<action>maincpu.mb@10899 = 01</action>
<action>maincpu.mb@1089C = 02</action>
<action>maincpu.mb@1089F = 03</action>
</script>
</cheat>
<cheat desc="move free on drawing area (test)">
<script state="on">
<action>maincpu.mb@105B3 = 00 </action> <!-- common ($85b3) -->
<action>maincpu.md@105BD = E6FE00C3</action> <!-- up ($85bd) -->
<action>maincpu.md@105EB = 57FE12C3</action> <!-- down ($85eb) -->
<action>maincpu.md@1061A = E6FE26C3</action> <!-- left ($861a) -->
<action>maincpu.md@10646 = E6FE3CC3</action> <!-- right ($8646) -->
</script>
<script state="run">
<action>maincpu.pq@FE00 = 30E0FE0A28A778ED</action>
<action>maincpu.pq@FE08 = C385C0C378ED0C06</action>
<action>maincpu.pq@FE10 = 0B28A778ED0D85DB</action>
<action>maincpu.pq@FE18 = 0328EEFE0728E0FE</action>
<action>maincpu.pq@FE20 = CB05860AC385EEC3</action>
<action>maincpu.pq@FE28 = E0FE0B28A778EDF9</action>
<action>maincpu.pq@FE30 = 1DC378EDB9CB0728</action>
<action>maincpu.pq@FE38 = 78EDF9CB8637C386</action>
<action>maincpu.pq@FE40 = 040828E0FE0C28A7</action>
<action>maincpu.pq@FE48 = C38649C378EDB9CB</action>
<action>maincpu.pq@FE50 = 0000000000008664</action>
<!--
FE00 | ED 78 : in a,(c) // up
FE02 | A7 : and a
FE03 | 28 0A : jr z,$FE0F
FE05 | FE E0 : cp $E0
FE07 | 30 06 : jr nc,$FE0F
FE09 | 0C : inc c
FE0A | ED 78 : in a,(c)
FE0C | C3 C0 85 : jp $85C0
FE0F | C3 DB 85 : jp $85DB
FE12 | 0D : dec c // down
FE13 | ED 78 : in a,(c)
FE15 | A7 : and a
FE16 | 28 0B : jr z,$FE23
FE18 | FE E0 : cp $E0
FE1A | 28 07 : jr z,$FE23
FE1C | FE EE : cp $EE
FE1E | 28 03 : jr z,$FE23
FE20 | C3 EE 85 : jp $85EE
FE23 | C3 0A 86 : jp $860A
FE26 | 05 : dec b // left
FE27 | CB F9 : set 7,c
FE29 | ED 78 : in a,(c)
FE2B | A7 : and a
FE2C | 28 0B : jr z,$FE39
FE2E | FE E0 : cp $E0
FE30 | 28 07 : jr z,$FE39
FE32 | CB B9 : res 7,c
FE34 | ED 78 : in a,(c)
FE36 | C3 1D 86 : jp $861D
FE39 | C3 37 86 : jp $8637
FE3C | CB F9 : set 7,c // right
FE3E | ED 78 : in a,(c)
FE40 | A7 : and a
FE41 | 28 0C : jr z,$FE4F
FE43 | FE E0 : cp $E0
FE45 | 28 08 : jr z,$FE4F
FE47 | 04 : inc b
FE48 | CB B9 : res 7,c
FE4A | ED 78 : in a,(c)
FE4C | C3 49 86 : jp $8649
FE4F | C3 64 86 : jp $8664
-->
</script>
<script state="off">
<action>maincpu.mb@105B3 = D8 </action>
<action>maincpu.md@105BD = E678ED0C </action>
<action>maincpu.md@105EB = 5778ED0D </action>
<action>maincpu.md@1061A = E678ED05 </action>
<action>maincpu.md@10646 = E678ED04 </action>
<action>maincpu.pq@0FE00 = 0000000000000000</action>
<action>maincpu.pq@0FE08 = 0000000000000000</action>
<action>maincpu.pq@0FE10 = 0000000000000000</action>
<action>maincpu.pq@0FE18 = 0000000000000000</action>
<action>maincpu.pq@0FE20 = 0000000000000000</action>
<action>maincpu.pq@0FE28 = 0000000000000000</action>
<action>maincpu.pq@0FE30 = 0000000000000000</action>
<action>maincpu.pq@0FE38 = 0000000000000000</action>
<action>maincpu.pq@0FE40 = 0000000000000000</action>
<action>maincpu.pq@0FE48 = 0000000000000000</action>
<action>maincpu.pq@0FE50 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>set "skip ram/rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mb@0009F = 00 </action> <!-- enable input check -->
<action>maincpu.mb@007F8 = 00 </action> <!-- enable sound check -->
<action>maincpu.mb@0087B = 18 </action> <!-- back up nmi and bank -->
<action>maincpu.mq@01000 = C379ED041001183E</action>
<action>maincpu.mq@01008 = 000000000000B000</action>
<action>maincpu.mq@17000 = 47B8F8003AF00021</action>
<action>maincpu.mq@17008 = FE350120FBFEF928</action>
<action>maincpu.mq@17010 = 0420FDFE340120F7</action>
<action>maincpu.mq@17018 = 0520FEFE0618F03E</action>
<action>maincpu.mq@17020 = 20EFFE787786103E</action>
<action>maincpu.mq@17028 = DFFE051880F67E05</action>
<action>maincpu.mq@17030 = CB18F70032AF0420</action>
<!--
1000 | 3E 18 : ld a,$18 // set nmi (0x08) and bank (0x10)
1002 | 01 10 04 : ld bc,$0410
1005 | ED 79 : out (c),a
1007 | C3 00 B0 : jp $B000
================================
B000 | 21 00 F0 : ld hl,$F000 // sound code address
B003 | 3A 00 F8 : ld a,($F800) // read input
B006 | B8 : cp b
B007 | 47 : ld b,a
B008 | 28 F9 : jr z,$B003
B00A | FE FB : cp $FB
B00C | 20 01 : jr nz,$B00F
B00E | 35 : dec (hl) // decrease code -01
B00F | FE F7 : cp $F7
B011 | 20 01 : jr nz,$B014
B013 | 34 : inc (hl) // increase code +10
B014 | FE FD : cp $FD
B016 | 20 04 : jr nz,$B01C
B018 | 3E F0 : ld a,$F0 // decrease code -10
B01A | 18 06 : jr $B022
B01C | FE FE : cp $FE
B01E | 20 05 : jr nz,$B025
B020 | 3E 10 : ld a,$10 // increase code -10
B022 | 86 : add a,(hl)
B023 | 77 : ld (hl),a
B024 | 78 : ld a,b
B025 | FE EF : cp $EF
B027 | 20 05 : jr nz,$B02E
B029 | 7E : ld a,(hl) // play sound
B02A | F6 80 : or $80
B02C | 18 05 : jr $B033
B02E | FE DF : cp $DF
B030 | 20 04 : jr nz,$B036
B032 | AF : xor a // stop sound
B033 | 32 00 F7 : ld ($F700),a // send sound code
B036 | 18 CB : jr $B003
-->
</script>
<script state="run">
<output format="----- super qix 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@F000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mb@0009F = 29 </action>
<action>maincpu.mb@007F8 = 23 </action>
<action>maincpu.mb@0087B = 08 </action>
<action>maincpu.mq@01000 = 1014CA00FEF8AC3A</action>
<action>maincpu.mq@01008 = CA02FE131CCA01FE</action>
<action>maincpu.mq@17000 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@17008 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@17010 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@17018 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@17020 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@17028 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@17030 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.mw@085C = 085E</action>
</script>
<script state="off">
<action>maincpu.mw@085C = 5000</action>
</script>
</cheat>
</mamecheat>
sqixu.xml
Code: Select all
<!-- Super Qix (World/Japan, V1.2) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mw@06598 = 1A18</action> <!-- small enemy -->
<action>maincpu.mb@1363D = 3A </action> <!-- big enemy ($b) -->
</script>
<script state="off">
<action>maincpu.mw@06598 = FDAF</action>
<action>maincpu.mb@1363D = 32 </action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x08">01 (slow)</item>
<item value="0x04">02 </item>
<item value="0x02">03 </item>
<item value="0x01">04 </item>
<item value="0x00">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@10899 = param</action> <!-- ($8899) -->
<action>maincpu.mb@1089C = param</action> <!-- ($889c) -->
<action>maincpu.mb@1089F = param</action> <!-- ($889f) -->
</script>
<script state="off">
<action>maincpu.mb@10899 = 01</action>
<action>maincpu.mb@1089C = 02</action>
<action>maincpu.mb@1089F = 03</action>
</script>
</cheat>
<cheat desc="move free on drawing area (buggy)">
<!-- you can't draw line -->
<script state="on">
<action>maincpu.mb@10222 = 00 </action> <!-- common ($8222) -->
<action>maincpu.mb@105B3 = 00 </action> <!-- common ($85b3) -->
<action>maincpu.md@105BD = E67BC0C3 </action> <!-- up ($85bd) -->
<action>maincpu.md@105EB = 577BD2C3 </action> <!-- down ($85eb) -->
<action>maincpu.md@1061A = E67BE6C3 </action> <!-- left ($861a) -->
<action>maincpu.md@10646 = E67BFCC3 </action> <!-- right ($8646) -->
<action>maincpu.mq@07BC0 = 30E0FE0A28A778ED</action>
<action>maincpu.mq@07BC8 = C385C0C378ED0C06</action>
<action>maincpu.mq@07BD0 = 0B28A778ED0D85DB</action>
<action>maincpu.mq@07BD8 = 0328EEFE0728E0FE</action>
<action>maincpu.mq@07BE0 = CB05860AC385EEC3</action>
<action>maincpu.mq@07BE8 = E0FE0B28A778EDF9</action>
<action>maincpu.mq@07BF0 = 1DC378EDB9CB0728</action>
<action>maincpu.mq@07BF8 = 78EDF9CB8637C386</action>
<action>maincpu.mq@07C00 = 040828E0FE0C28A7</action>
<action>maincpu.mq@07C08 = C38649C378EDB9CB</action>
<action>maincpu.mq@07C10 = FFFFFFFFFFFF8664</action>
<!--
7BC0 | ED 78 : in a,(c) // up
7BC2 | A7 : and a
7BC3 | 28 0A : jr z,$7BCF
7BC5 | FE E0 : cp $E0
7BC7 | 30 06 : jr nc,$7BCF
7BC9 | 0C : inc c
7BCA | ED 78 : in a,(c)
7BCC | C3 C0 85 : jp $85C0
7BCF | C3 DB 85 : jp $85DB
7BD2 | 0D : dec c // down
7BD3 | ED 78 : in a,(c)
7BD5 | A7 : and a
7BD6 | 28 0B : jr z,$7BE3
7BD8 | FE E0 : cp $E0
7BDA | 28 07 : jr z,$7BE3
7BDC | FE EE : cp $EE
7BDE | 28 03 : jr z,$7BE3
7BE0 | C3 EE 85 : jp $85EE
7BE3 | C3 0A 86 : jp $860A
7BE6 | 05 : dec b // left
7BE7 | CB F9 : set 7,c
7BE9 | ED 78 : in a,(c)
7BEB | A7 : and a
7BEC | 28 0B : jr z,$7BF9
7BEE | FE E0 : cp $E0
7BF0 | 28 07 : jr z,$7BF9
7BF2 | CB B9 : res 7,c
7BF4 | ED 78 : in a,(c)
7BF6 | C3 1D 86 : jp $861D
7BF9 | C3 37 86 : jp $8637
7BFC | CB F9 : set 7,c // right
7BFE | ED 78 : in a,(c)
7C00 | A7 : and a
7C01 | 28 0C : jr z,$7C0F
7C03 | FE E0 : cp $E0
7C05 | 28 08 : jr z,$7C0F
7C07 | 04 : inc b
7C08 | CB B9 : res 7,c
7C0A | ED 78 : in a,(c)
7C0C | C3 49 86 : jp $8649
7C0F | C3 64 86 : jp $8664
-->
</script>
<script state="off">
<action>maincpu.mb@10222 = 30 </action>
<action>maincpu.mb@105B3 = D8 </action>
<action>maincpu.md@105BD = E678ED0C </action>
<action>maincpu.md@105EB = 5778ED0D </action>
<action>maincpu.md@1061A = E678ED05 </action>
<action>maincpu.md@10646 = E678ED04 </action>
<action>maincpu.mq@07BB0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@07BB8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@07BC0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@07BC8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@07BD0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@07BD8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@07BE0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@07BE8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@07BF0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@07BF8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@07C00 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>set "skip ram/rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mb@009F = 00 </action> <!-- enable input check -->
<action>maincpu.mb@00AD = 5E </action> <!-- normalize input -->
<action>maincpu.mb@080A = 00 </action> <!-- enable sound check -->
<action>maincpu.mw@08AE = 7B80 </action>
<action>maincpu.mq@7B80 = 47B8F8003AF00021</action>
<action>maincpu.mq@7B88 = FE350120FBFEF928</action>
<action>maincpu.mq@7B90 = 0420FDFE340120F7</action>
<action>maincpu.mq@7B98 = 0520FEFE0618F03E</action>
<action>maincpu.mq@7BA0 = 20EFFE787786103E</action>
<action>maincpu.mq@7BA8 = DFFE051880F67E05</action>
<action>maincpu.mq@7BB0 = CB18F70032AF0420</action>
<!--
7B80 | 21 00 F0 : ld hl,$F000 // sound code address
7B83 | 3A 00 F8 : ld a,($F800) // read input
7B86 | B8 : cp b
7B87 | 47 : ld b,a
7B88 | 28 F9 : jr z,$7B83
7B8A | FE FB : cp $FB
7B8C | 20 01 : jr nz,$7B8F
7B8E | 35 : dec (hl) // decrease code -01
7B8F | FE F7 : cp $F7
7B91 | 20 01 : jr nz,$7B94
7B93 | 34 : inc (hl) // increase code +01
7B94 | FE FD : cp $FD
7B96 | 20 04 : jr nz,$7B9C
7B98 | 3E F0 : ld a,$F0 // decrease code -10
7B9A | 18 06 : jr $7BA2
7B9C | FE FE : cp $FE
7B9E | 20 05 : jr nz,$7BA5
7BA0 | 3E 10 : ld a,$10 // increase code +10
7BA2 | 86 : add a,(hl)
7BA3 | 77 : ld (hl),a
7BA4 | 78 : ld a,b
7BA5 | FE EF : cp $EF
7BA7 | 20 05 : jr nz,$7BAE
7BA9 | 7E : ld a,(hl) // play sound
7BAA | F6 80 : or $80
7BAC | 18 05 : jr $7BB3
7BAE | FE DF : cp $DF
7BB0 | 20 04 : jr nz,$7BB6
7BB2 | AF : xor a // stop sound
7BB3 | 32 00 F7 : ld ($F700),a // send sound code
7BB6 | 18 CB : jr $7B83
-->
</script>
<script state="run">
<output format="----- super qix 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@F000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mb@009F = 2F </action>
<action>maincpu.mb@00AD = 5F </action>
<action>maincpu.mb@080A = 23 </action>
<action>maincpu.mw@08AE = 1000 </action>
<action>maincpu.mq@7B80 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7B88 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7B90 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7B98 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7BA0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7BA8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@7BB0 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.mw@086E = 0870</action>
</script>
<script state="off">
<action>maincpu.mw@086E = 5000</action>
</script>
</cheat>
</mamecheat>