[sqix] Super Qix

This forum is for posting M.A.M.E. Work In Progress "Arcade"cheats that are not quite ready for the prime time. If the cheats are buggy or the cheat descriptions are non-standard then please post them here. Help maybe given but there are no guarantees and they will only be added to the cheat file when the cheat file maintainer is happy with them.
Post Reply
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[sqix] Super Qix

Post by jman »

Code: Select all

<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="sound test mode">
    <comment>set ram/rom check skip then reset the game (F3)</comment>
    <script state="on">
        <action>maincpu.mb@009f =               00</action> <!-- ignore disable input flag -->
        <action>maincpu.mb@07fd =               00</action> <!-- igonre disable sound flag -->
        <action>maincpu.mw@08a1 =             7b80</action>
        <action>maincpu.mq@7b80 = 22d57b8311800021</action>
        <action>maincpu.mq@7b88 = c86fbdf8003ae200</action>
        <action>maincpu.mq@7b90 = 20f7fe250120fbfe</action>
        <action>maincpu.mq@7b98 = 187c0320effe2401</action>
        <action>maincpu.mq@7ba0 = f70032afc0dffe04</action>
        <action>maincpu.mq@7ba8 = ffffffffffffffc9</action>
        <!--
        7b80 | 21 00 80 : ld   hl,$8000   // initialize sound and input values
        7b83 | 11 83 7b : ld   de,$7b83
        7b86 | d5       : push de
        7b87 | 22 00 e2 : ld   ($e200),hl
        7b8a | 3a 00 f8 : ld   a,($f800)  // read input
        7b8d | bd       : cp   l
        7b8e | 6f       : ld   l,a
        7b8f | c8       : ret  z
        7b90 | fe fb    : cp   $fb
        7b92 | 20 01    : jr   nz,$7b95
        7b94 | 25       : dec  h          // decrease code
        7b95 | fe f7    : cp   $f7
        7b97 | 20 01    : jr   nz,$7b9a
        7b99 | 24       : inc  h          // increase code
        7b9a | fe ef    : cp   $ef
        7b9c | 20 03    : jr   nz,$7ba1
        7b9e | 7c       : ld   a,h        // play sound
        7b9f | 18 04    : jr   $7ba5
        7ba1 | fe df    : cp   $df
        7ba3 | c0       : ret  nz
        7ba4 | af       : xor  a          // stop sound
        7ba5 | 32 00 f7 : ld   ($f700),a  // send sound code
        7ba8 | c9       : ret
        -->
    </script>
    <script state="run">
        <output format="----- super qix sound test mode -----"  line="10" align="center" />
        <output format="left : decrease code"                   line="11" align="center" />
        <output format="right : increase code"                  line="12" align="center" />
        <output format="button 1 : play sound"                  line="13" align="center" />
        <output format="button 2 : stop sound"                  line="14" align="center" />
        <output format="----------------------------"           line="15" align="center" />
        <output format="&lt;&lt; sound code %2.2X &gt;&gt;"     line="17" align="center">
            <argument>maincpu.pb@e201</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>
    </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>
The follwing code requires more test.

Code: Select all

<cheat desc="move free on drawing area">
    <script state="on">
        <action>maincpu.mb@105b3 =               00</action> <!-- common ($85b3) -->
        <action>maincpu.md@105bd =         e67bb0c3</action> <!-- up ($85bd) -->
        <action>maincpu.md@105eb =         577bc2c3</action> <!-- down ($85eb) -->
        <action>maincpu.md@1061a =         e67bd6c3</action> <!-- left ($861a) -->
        <action>maincpu.md@10646 =         e67becc3</action> <!-- right ($8646) -->
        <action>maincpu.mq@07bb0 = 30e0fe0a28a778ed</action>
        <action>maincpu.mq@07bb8 = c385c0c378ed0c06</action>
        <action>maincpu.mq@07bc0 = 0b28a778ed0d85db</action>
        <action>maincpu.mq@07bc8 = 0328eefe0728e0fe</action>
        <action>maincpu.mq@07bd0 = cb05860ac385eec3</action>
        <action>maincpu.mq@07bd8 = e0fe0b28a778edf9</action>
        <action>maincpu.mq@07be0 = 1dc378edb9cb0728</action>
        <action>maincpu.mq@07be8 = 78edf9cb8637c386</action>
        <action>maincpu.mq@07bf0 = 040828e0fe0c28a7</action>
        <action>maincpu.mq@07bf8 = c38649c378edb9cb</action>
        <action>maincpu.mq@07c00 = ffffffffffff8664</action>
        <!--
        7bb0 | ed 78    : in  a,(c)    // up
        7bb2 | a7       : and a
        7bb3 | 28 0a    : jr  z,$7bbf
        7bb5 | fe e0    : cp  $e0
        7bb7 | 30 06    : jr  nc,$7bbf
        7bb9 | 0c       : inc c
        7bba | ed 78    : in  a,(c)
        7bbc | c3 c0 85 : jp  $85c0
        7bbf | c3 db 85 : jp  $85db
        7bc2 | 0d       : dec c         // down
        7bc3 | ed 78    : in  a,(c)
        7bc5 | a7       : and a
        7bc6 | 28 0b    : jr  z,$7bd3
        7bc8 | fe e0    : cp  $e0
        7bca | 28 07    : jr  z,$7bd3
        7bcc | fe ee    : cp  $ee
        7bce | 28 03    : jr  z,$7bd3
        7bd0 | c3 ee 85 : jp  $85ee
        7bd3 | c3 0a 86 : jp  $860a
        7bd6 | 05       : dec b         // left
        7bd7 | cb f9    : set 7,c
        7bd9 | ed 78    : in  a,(c)
        7bdb | a7       : and a
        7bdc | 28 0b    : jr  z,$7be9
        7bde | fe e0    : cp  $e0
        7be0 | 28 07    : jr  z,$7be9
        7be2 | cb b9    : res 7,c
        7be4 | ed 78    : in  a,(c)
        7be6 | c3 1d 86 : jp  $861d
        7be9 | c3 37 86 : jp  $8637
        7bec | cb f9    : set 7,c       // right
        7bee | ed 78    : in  a,(c)
        7bf0 | a7       : and a
        7bf1 | 28 0c    : jr  z,$7bff
        7bf3 | fe e0    : cp  $e0
        7bf5 | 28 08    : jr  z,$7bff
        7bf7 | 04       : inc b
        7bf8 | cb b9    : res 7,c
        7bfa | ed 78    : in  a,(c)
        7bfc | c3 49 86 : jp  $8649
        7bff | c3 64 86 : jp  $8664
        -->
    </script>
    <script state="off">
        <action>maincpu.mb@105b3 =               00</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>
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[sqix] Super Qix (update)

Post by jman »

Code: Select all

<cheat desc="sound test mode">
    <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
    <script state="on">
        <action>maincpu.mb@009f =               00</action> <!-- ignore disable input flag -->
        <action>maincpu.mb@07fd =               00</action> <!-- igonre disable sound flag -->
        <action>maincpu.mw@08a1 =             7b80</action>
        <action>maincpu.mq@7b80 = 47b8f8003ae20021</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 e2 : ld  hl,$E200  // 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="&lt;&lt; sound code %2.2X &gt;&gt;"    line="19" align="center"  >
            <argument>maincpu.pb@e200</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>
"sound test mode" : rewrite routine. add up/down key (code ±10).
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[sqix]+ Super Qix

Post by jman »

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 &quot;skip ram/rom check&quot; 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="&lt;&lt; sound code %02X &gt;&gt;"     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 &quot;skip ram/rom check&quot; 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="&lt;&lt; sound code %02X &gt;&gt;"     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 &quot;skip ram/rom check&quot; 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="&lt;&lt; sound code %02X &gt;&gt;"     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 &quot;skip ram/rom check&quot; 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="&lt;&lt; sound code %02X &gt;&gt;"     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>
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[sqix]+ Super Qix

Post by jman »

sqixb1.xml

Code: Select all

<!-- Super Qix (bootleg of V1.0, 8031 MCU) -->
<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 &quot;skip ram/rom check&quot; 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="&lt;&lt; sound code %02X &gt;&gt;"     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>
sqixb2.xml

Code: Select all

<!-- Super Qix (bootleg, No MCU) -->
<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 &quot;skip ram/rom check&quot; 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 = FE350120BBFEF928</action>
            <action>maincpu.mq@17010 = 0420BDFE340120B7</action>
            <action>maincpu.mq@17018 = 0520BEFE0618F03E</action>
            <action>maincpu.mq@17020 = 20AFFE787786103E</action>
            <action>maincpu.mq@17028 = 9FFE051880F67E05</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 BB    : cp   $BB
            B00C | 20 01    : jr   nz,$B00F
            B00E | 35       : dec  (hl)      // decrease code -01
            B00F | FE B7    : cp   $B7
            B011 | 20 01    : jr   nz,$B014
            B013 | 34       : inc  (hl)      // increase code +10
            B014 | FE BD    : cp   $BD
            B016 | 20 04    : jr   nz,$B01C
            B018 | 3E F0    : ld   a,$F0     // decrease code -10
            B01A | 18 06    : jr   $B022
            B01C | FE BE    : cp   $BE
            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 AF    : cp   $AF
            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 9F    : cp   $9F
            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="&lt;&lt; sound code %02X &gt;&gt;"     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>
Post Reply