Page 1 of 1

[djgirl] Disco Boy/DJ Girl

Posted: Thu Feb 09, 2023 10:20 am
by jman
djgirl is clone of discoboy and will be added in 0.252.

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <!-- enemy -->
        <action>maincpu.mw@29d6 =             70c0</action> <!-- P1 -->
        <action>maincpu.mw@29e9 =             70c0</action> <!-- P2 -->
        <action>maincpu.mq@70c0 = fe042804fe2f7edd</action>
        <action>maincpu.mq@70c8 = 683a59fe7d113003</action>
        <action>maincpu.mq@70d0 = 67cbf0693a0328f0</action>
        <action>maincpu.mq@70d8 = c933a5cdc9af0220</action>
        <!--
        70c0 | dd 7e 2f : ld   a,(ix+$2f) // check enemy or item
        70c3 | fe 04    : cp   $04
        70c5 | 28 04    : jr   z,$70CB
        70c7 | fe 03    : cp   $03
        70c9 | 30 11    : jr   nc,$70DC
        70cb | 7d       : ld   a,l        // check P1 or P2
        70cc | fe 59    : cp   $59
        70ce | 3a 68 f0 : ld   a,($F068)  // check P1 roll
        70d1 | 28 03    : jr   z,$70D6
        70d3 | 3a 69 f0 : ld   a,($F069)  // check P2 roll
        70d6 | cb 67    : bit  4,a
        70d8 | 20 02    : jr   nz,$70DC
        70da | af       : xor  a
        70db | c9       : ret
        70dc | cd a5 33 : call $33A5      // call collision check
        70df | c9       : ret
        -->
        <!-- bullet -->
        <action>maincpu.mb@31ad = 00</action> <!-- P1 -->
        <action>maincpu.mb@31be = 00</action> <!-- P2 -->
    </script>
    <script state="off">
        <action>maincpu.mw@29d6 =             33a5</action>
        <action>maincpu.mw@29e9 =             33a5</action>
        <action>maincpu.mq@70c0 = ffffffffffffffff</action>
        <action>maincpu.mq@70c8 = ffffffffffffffff</action>
        <action>maincpu.mq@70d0 = ffffffffffffffff</action>
        <action>maincpu.mq@70d8 = ffffffffffffffff</action>
        <action>maincpu.mb@31ad =               1c</action>
        <action>maincpu.mb@31be =               38</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mw@3ed5 =             70e0</action> <!-- P1 -->
        <action>maincpu.mw@3f29 =             70e0</action> <!-- P2 -->
        <action>maincpu.mq@70e0 = 3a0328f92b3a7fcb</action>
        <action>maincpu.mq@70e8 = c9afc0375fcbf92c</action>
        <!--
        70e0 | cb 7f    : bit 7,a
        70e2 | 3a 2b f9 : ld  a,($F92B) // P1
        70e5 | 28 03    : jr  z,$70EA
        70e7 | 3a 2c f9 : ld  a,($F92C) // P2
        70ea | cb 5f    : bit 3,a
        70ec | 37       : scf
        70ed | c0       : ret nz
        70ee | af       : xor a
        70ef | c9       : ret
        -->
    </script>
    <script state="off">
        <action>maincpu.mw@3ed5 =             509a</action>
        <action>maincpu.mw@3f29 =             509a</action>
        <action>maincpu.mq@70e0 = ffffffffffffffff</action>
        <action>maincpu.mq@70e8 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter>
        <item value="0x0001">01 (slow)</item>
        <item value="0x0002">02       </item>
        <item value="0x0004">03       </item>
        <item value="0x0006">04       </item>
        <item value="0x0008">05 (fast)</item>
    </parameter>
    <script state="on">
        <action>maincpu.md@347d =         0070f0cd</action> <!-- P1 up -->
        <action>maincpu.md@3497 =         0070f5cd</action> <!-- P1 down -->
        <action>maincpu.md@35fd =         0070fdcd</action> <!-- P2 up -->
        <action>maincpu.md@3617 =         007102cd</action> <!-- P2 down -->
        <action>maincpu.mq@70f0 = 0000010318000001</action>
        <action>maincpu.mq@70f8 = 000001c909f0322a</action>
        <action>maincpu.mq@7100 = f0362a0000010318</action>
        <action>maincpu.mq@7108 = ffffffffffffc909</action>
        <!--
        70f0 | 01 xx xx : ld  bc,$xxxx   // P1 up
        70f3 | 18 03    : jr  $70F8
        70f5 | 01 xx xx : ld  bc,$xxxx   // P1 down
        70f8 | 2a 32 f0 : ld  hl,($F032)
        70fb | 09       : add hl,bc
        70fc | c9       : ret
        70fd | 01 xx xx : ld  bc,$xxxx   // P2 up
        7100 | 18 03    : jr  $7105
        7102 | 01 xx xx : ld  bc,$xxxx   // P2 down
        7105 | 2a 36 f0 : ld  hl,($F036)
        7108 | 09       : add hl,bc
        7109 | c9       : ret
        -->
    </script>
    <script state="change">
        <action>maincpu.mb@3ba2 =  param</action> <!-- P1 right -->
        <action>maincpu.mb@3bad = -param</action> <!-- P1 left -->
        <action>maincpu.mb@3ea4 =  param</action> <!-- P2 right -->
        <action>maincpu.mb@3eaf = -param</action> <!-- P2 left -->
        <action>maincpu.mw@70f1 =  param</action>
        <action>maincpu.mw@70f6 = -param</action>
        <action>maincpu.mw@70fe =  param</action>
        <action>maincpu.mw@7103 = -param</action>
    </script>
    <script state="off">
        <action>maincpu.md@347d =         23f0322a</action>
        <action>maincpu.md@3497 =         2bf0322a</action>
        <action>maincpu.md@35fd =         23f0362a</action>
        <action>maincpu.md@3617 =         2bf0362a</action>
        <action>maincpu.mq@70f0 = ffffffffffffffff</action>
        <action>maincpu.mq@70f8 = ffffffffffffffff</action>
        <action>maincpu.mq@7100 = ffffffffffffffff</action>
        <action>maincpu.mq@7108 = ffffffffffffffff</action>
        <action>maincpu.mb@3ba2 =               02</action>
        <action>maincpu.mb@3bad =               fe</action>
        <action>maincpu.mb@3ea4 =               02</action>
        <action>maincpu.mb@3eaf =               fe</action>
    </script>
</cheat>

<cheat desc="fixed gun direction">
    <script state="on">
        <!-- P1 -->
        <action>maincpu.mw@3efc = 00af</action>
        <action>maincpu.mw@3f06 = 0006</action>
        <action>maincpu.mw@3f0a = 0006</action>
        <!-- P2 -->
        <action>maincpu.mw@3f50 = 00af</action>
        <action>maincpu.mw@3f5a = 0006</action>
        <action>maincpu.mw@3f5e = 0006</action>
    </script>
    <script state="off">
        <action>maincpu.mw@3efc = 3fcb</action>
        <action>maincpu.mw@3f06 = 0106</action>
        <action>maincpu.mw@3f0a = 0206</action>
        <action>maincpu.mw@3f50 = 3fcb</action>
        <action>maincpu.mw@3f5a = 0106</action>
        <action>maincpu.mw@3f5e = 0206</action>
    </script>
</cheat>

<cheat desc="sound test mode">
    <!-- you can't stop some sfxs (code 0x80 or later) by sound stop button -->
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action>maincpu.mw@5463 =             7110</action>
        <action>maincpu.mq@7110 = 2847b802dbe10021</action>
        <action>maincpu.mq@7118 = effe350120dffefa</action>
        <action>maincpu.mq@7120 = 3e0420bffe340120</action>
        <action>maincpu.mq@7128 = 3e05207ffe0618f0</action>
        <action>maincpu.mq@7130 = 0320f7fe78778610</action>
        <action>maincpu.mq@7138 = 3e0420fbfe06187e</action>
        <action>maincpu.mq@7140 = ffffffce1803d33f</action>
        <!--
        7110 | 21 00 e1 : ld  hl,$E100 // sound code address
        7113 | db 02    : in  a,($02)  // read input
        7115 | b8       : cp  b
        7116 | 47       : ld  b,a
        7117 | 28 fa    : jr  z,$7113
        7119 | fe df    : cp  $DF
        711b | 20 01    : jr  nz,$711E
        711d | 35       : dec (hl)     // decrease code -01
        711e | fe ef    : cp  $EF
        7120 | 20 01    : jr  nz,$7123
        7122 | 34       : inc (hl)     // increase code +01
        7123 | fe bf    : cp  $BF
        7125 | 20 04    : jr  nz,$712B
        7127 | 3e f0    : ld  a,$F0    // decrease code -10
        7129 | 18 06    : jr  $7131
        712b | fe 7f    : cp  $7F
        712d | 20 05    : jr  nz,$7134
        712f | 3e 10    : ld  a,$10    // increase code +10
        7131 | 86       : add a,(hl)
        7132 | 77       : ld  (hl),a
        7133 | 78       : ld  a,b
        7134 | fe f7    : cp  $F7
        7136 | 20 03    : jr  nz,$713B
        7138 | 7e       : ld  a,(hl)   // play sound
        7139 | 18 06    : jr  $7141
        713b | fe fb    : cp  $FB
        713d | 20 04    : jr  nz,$7143
        713f | 3e 3f    : ld  a,$3F    // stop sound
        7141 | d3 03    : out ($03),a  // send sound code
        7143 | 18 ce    : jr  $7113
        -->
    </script>
    <script state="run">
        <output format="----- dj girl 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@e100</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mw@5463 =             4bb8</action>
        <action>maincpu.mq@7110 = ffffffffffffffff</action>
        <action>maincpu.mq@7118 = ffffffffffffffff</action>
        <action>maincpu.mq@7120 = ffffffffffffffff</action>
        <action>maincpu.mq@7128 = ffffffffffffffff</action>
        <action>maincpu.mq@7130 = ffffffffffffffff</action>
        <action>maincpu.mq@7138 = ffffffffffffffff</action>
        <action>maincpu.mq@7140 = ffffffffffffffff</action>
    </script>
</cheat>

[discoboy]+ Disco Boy/DJ Girl

Posted: Thu Mar 14, 2024 1:47 pm
by jman
discoboy.xml

Code: Select all

<!-- Disco Boy -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <!-- enemy -->
            <action>maincpu.mw@21AD = 66C0            </action> <!-- P1 -->
            <action>maincpu.mw@21BD = 66C0            </action> <!-- P2 -->
            <action>maincpu.mq@66C0 = FE042804FE2F7EDD</action>
            <action>maincpu.mq@66C8 = 683A59FE7D113003</action>
            <action>maincpu.mq@66D0 = 67CBF0693A0328F0</action>
            <action>maincpu.mq@66D8 = C92B48CDC9AF0220</action>
            <!--
            66C0 | DD 7E 2F : ld   a,(ix+$2f) // enemy or item
            66C3 | FE 04    : cp   $04
            66C5 | 28 04    : jr   z,$66CB
            66C7 | FE 03    : cp   $03
            66C9 | 30 11    : jr   nc,$66DC
            66CB | 7D       : ld   a,l        // P1 or P2
            66CC | FE 59    : cp   $59
            66CE | 3A 68 F0 : ld   a,($F068)  // P1 roll
            66D1 | 28 03    : jr   z,$66D6
            66D3 | 3A 69 F0 : ld   a,($F069)  // P2 roll
            66D6 | CB 67    : bit  4,a
            66D8 | 20 02    : jr   nz,$66DC
            66DA | AF       : xor  a
            66DB | C9       : ret
            66DC | CD 48 2B : call $2B48      // call collision check
            66DF | C9       : ret
            -->
            <!-- bullet -->
            <action>maincpu.mb@28F3 = 00</action> <!-- P1 -->
            <action>maincpu.mb@2904 = 00</action> <!-- P2 -->
        </script>
        <script state="off">
            <action>maincpu.mw@21AD = 2B48            </action>
            <action>maincpu.mw@21BD = 2B48            </action>
            <action>maincpu.mq@66C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@66C8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@66D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@66D8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mb@28F3 = 1C              </action>
            <action>maincpu.mb@2904 = 33              </action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mw@36D1 = 66E0            </action> <!-- P1 -->
            <action>maincpu.mw@372D = 66E0            </action> <!-- P2 -->
            <action>maincpu.mq@66E0 = 3A0328F0023A7FCB</action>
            <action>maincpu.mq@66E8 = C9AFC0375FCBF003</action>
            <!--
            66E0 | CB 7F    : bit  7,a
            66E2 | 3A 02 F0 : ld   a,($F002) // P1
            66E5 | 28 03    : jr   z,$66EA
            66E7 | 3A 03 F0 : ld   a,($F003) // P2
            66EA | CB 5F    : bit  3,a
            66EC | 37       : scf
            66ED | C0       : ret  nz
            66EE | AF       : xor  a
            66EF | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.mw@36D1 = 46CF            </action>
            <action>maincpu.mw@372D = 46CF            </action>
            <action>maincpu.mq@66E0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@66E8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0001">01 (slow)</item>
            <item value="0x0002">02       </item>
            <item value="0x0004">03       </item>
            <item value="0x0006">04       </item>
            <item value="0x0008">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@2C43 = 0066F0CD        </action> <!-- P1 up -->
            <action>maincpu.md@2C5D = 0066F5CD        </action> <!-- P1 down -->
            <action>maincpu.md@2DE6 = 0066FDCD        </action> <!-- P2 up -->
            <action>maincpu.md@2E00 = 006702CD        </action> <!-- P2 down -->
            <action>maincpu.mq@66F0 = 0000010318000001</action>
            <action>maincpu.mq@66F8 = 000001C909F0322A</action>
            <action>maincpu.mq@6700 = F0362A0000010318</action>
            <action>maincpu.mq@6708 = FFFFFFFFFFFFC909</action>
            <!--
            66F0 | 01 xx xx : ld   bc,$xxxx   // P1 up
            66F3 | 18 03    : jr   $66F8
            66F5 | 01 xx xx : ld   bc,$xxxx   // P1 down
            66F8 | 2A 32 F0 : ld   hl,($F032)
            66FB | 09       : add  hl,bc
            66FC | C9       : ret
            66FD | 01 xx xx : ld   bc,$xxxx   // P2 up
            6700 | 18 03    : jr   $6705
            6702 | 01 xx xx : ld   bc,$xxxx   // P2 down
            6705 | 2A 36 F0 : ld   hl,($F036)
            6708 | 09       : add  hl,bc
            6709 | C9       : ret
            -->
            <action>maincpu.md@339C = F26710CD        </action> <!-- P1 left/right -->
            <action>maincpu.md@369D = F26715CD        </action> <!-- P2 left/right -->
            <action>maincpu.mq@6710 = F03E3A0318F03B3A</action>
            <action>maincpu.mq@6718 = FFFFFF00C9671C21</action>
            <!--
            6710 | 3A 3B F0 : ld   a,($F03B)
            6713 | 18 03    : jr   $6718
            6715 | 3A 3E F0 : ld   a,($F03E)
            6718 | 21 1C 67 : ld   hl,$671C
            671B | C9       : ret
            671C | xx       : value for speed
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@66F1 =  param</action>
            <action>maincpu.mw@66F6 = -param</action>
            <action>maincpu.mw@66FE =  param</action>
            <action>maincpu.mw@6703 = -param</action>
            <action>maincpu.mb@671C =  param</action>
        </script>
        <script state="off">
            <action>maincpu.md@2C43 = 23F0322A        </action>
            <action>maincpu.md@2C5D = 2BF0322A        </action>
            <action>maincpu.md@2DE6 = 23F0362A        </action>
            <action>maincpu.md@2E00 = 2BF0362A        </action>
            <action>maincpu.mq@66F0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@66F8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@6700 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@6708 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.md@339C = F2F0383A        </action>
            <action>maincpu.md@369D = F2F03B3A        </action>
            <action>maincpu.mq@6710 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@6718 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="fixed gun direction">
        <script state="on">
            <!-- P1 -->
            <action>maincpu.mw@3702 = 00AF</action>
            <action>maincpu.mw@3709 = 0006</action>
            <action>maincpu.mw@370E = 0006</action>
            <!-- P2 -->
            <action>maincpu.mw@375E = 00AF</action>
            <action>maincpu.mw@3765 = 0006</action>
            <action>maincpu.mw@376A = 0006</action>
        </script>
        <script state="off">
            <action>maincpu.mw@3702 = 3FCB</action>
            <action>maincpu.mw@3709 = 0106</action>
            <action>maincpu.mw@370E = 0206</action>
            <action>maincpu.mw@375E = 3FCB</action>
            <action>maincpu.mw@3765 = 0106</action>
            <action>maincpu.mw@376A = 0206</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <!-- you can't stop some sfxs (code 0x80 or later) by sound stop button -->
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mw@07E6 = 6720            </action>
            <action>maincpu.mq@6720 = 2847B802DBE00021</action>
            <action>maincpu.mq@6728 = EFFE350120DFFEFA</action>
            <action>maincpu.mq@6730 = 3E0420BFFE340120</action>
            <action>maincpu.mq@6738 = 3E05207FFE0618F0</action>
            <action>maincpu.mq@6740 = 0320F7FE78778610</action>
            <action>maincpu.mq@6748 = 3E0420FBFE06187E</action>
            <action>maincpu.mq@6750 = FFFFFFCE1803D33F</action>
            <!--
            6720 | 21 00 E0 : ld   hl,$E000 // sound code address
            6723 | DB 02    : in   a,($02)  // read input
            6725 | B8       : cp   b
            6726 | 47       : ld   b,a
            6727 | 28 FA    : jr   z,$6723
            6729 | FE DF    : cp   $DF
            672B | 20 01    : jr   nz,$672E
            672D | 35       : dec  (hl)     // decrease code -01
            672E | FE EF    : cp   $EF
            6730 | 20 01    : jr   nz,$6733
            6732 | 34       : inc  (hl)     // increase code +01
            6733 | FE BF    : cp   $BF
            6735 | 20 04    : jr   nz,$673B
            6737 | 3E F0    : ld   a,$F0    // decrease code -10
            6739 | 18 06    : jr   $6741
            673B | FE 7F    : cp   $7F
            673D | 20 05    : jr   nz,$6744
            673F | 3E 10    : ld   a,$10    // increase code +10
            6741 | 86       : add  a,(hl)
            6742 | 77       : ld   (hl),a
            6743 | 78       : ld   a,b
            6744 | FE F7    : cp   $F7
            6746 | 20 03    : jr   nz,$674B
            6748 | 7E       : ld   a,(hl)   // play sound
            6749 | 18 06    : jr   $6751
            674B | FE FB    : cp   $FB
            674D | 20 04    : jr   nz,$6753
            674F | 3E 3F    : ld   a,$3F    // stop sound
            6751 | D3 03    : out  ($03),a  // send sound code
            6753 | 18 CE    : jr   $6723
            -->
        </script>
        <script state="run">
            <output format="----- disco boy 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@E000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@07E6 = 0804            </action>
            <action>maincpu.mq@6720 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@6728 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@6730 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@6738 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@6740 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@6748 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@6750 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
discoboyp.xml

Code: Select all

<!-- Disco Boy (Promat license) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <!-- enemy -->
            <action>maincpu.mw@2A0B = 7100            </action> <!-- P1 -->
            <action>maincpu.mw@2A1E = 7100            </action> <!-- P2 -->
            <action>maincpu.mq@7100 = FE042804FE2F7EDD</action>
            <action>maincpu.mq@7108 = 683A59FE7D113003</action>
            <action>maincpu.mq@7110 = 67CBF0693A0328F0</action>
            <action>maincpu.mq@7118 = C933DACDC9AF0220</action>
            <!--
            7100 | DD 7E 2F : ld   a,(ix+$2f) // enemy or item
            7103 | FE 04    : cp   $04
            7105 | 28 04    : jr   z,$710B
            7107 | FE 03    : cp   $03
            7109 | 30 11    : jr   nc,$711C
            710B | 7D       : ld   a,l        // P1 or P2
            710C | FE 59    : cp   $59
            710E | 3A 68 F0 : ld   a,($F068)  // P1 roll
            7111 | 28 03    : jr   z,$7116
            7113 | 3A 69 F0 : ld   a,($F069)  // P2 roll
            7116 | CB 67    : bit  4,a
            7118 | 20 02    : jr   nz,$711C
            711A | AF       : xor  a
            711B | C9       : ret
            711C | CD DA 33 : call $33DA      // call collision check
            711F | C9       : ret
            -->
            <!-- bullet -->
            <action>maincpu.mb@31E2 = 00</action> <!-- P1 -->
            <action>maincpu.mb@31F3 = 00</action> <!-- P2 -->
        </script>
        <script state="off">
            <action>maincpu.mw@2A0B = 33DA            </action>
            <action>maincpu.mw@2A1E = 33DA            </action>
            <action>maincpu.mq@7100 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7108 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7110 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7118 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mb@31E2 = 1C              </action>
            <action>maincpu.mb@31F3 = 38              </action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mw@3F0A = 7120            </action> <!-- P1 -->
            <action>maincpu.mw@3F5E = 7120            </action> <!-- P2 -->
            <action>maincpu.mq@7120 = 3A0328F92B3A7FCB</action>
            <action>maincpu.mq@7128 = C9AFC0375FCBF92C</action>
            <!--
            7120 | CB 7F    : bit  7,a
            7122 | 3A 2B F9 : ld   a,($F92B) // P1
            7125 | 28 03    : jr   z,$712A
            7127 | 3A 2C F9 : ld   a,($F92C) // P2
            712A | CB 5F    : bit  3,a
            712C | 37       : scf
            712D | C0       : ret  nz
            712E | AF       : xor  a
            712F | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.mw@3F0A = 50D8            </action>
            <action>maincpu.mw@3F5E = 50D8            </action>
            <action>maincpu.mq@7120 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7128 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0001">01 (slow)</item>
            <item value="0x0002">02       </item>
            <item value="0x0004">03       </item>
            <item value="0x0006">04       </item>
            <item value="0x0008">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@34B2 = 007130CD        </action> <!-- P1 up -->
            <action>maincpu.md@34CC = 007135CD        </action> <!-- P1 down -->
            <action>maincpu.md@3632 = 00713DCD        </action> <!-- P2 up -->
            <action>maincpu.md@364C = 007142CD        </action> <!-- P2 down -->
            <action>maincpu.mq@7130 = 0000010318000001</action>
            <action>maincpu.mq@7138 = 000001C909F0322A</action>
            <action>maincpu.mq@7140 = F0362A0000010318</action>
            <action>maincpu.mq@7148 = FFFFFFFFFFFFC909</action>
            <!--
            7130 | 01 xx xx : ld   bc,$xxxx   // P1 up
            7133 | 18 03    : jr   $7138
            7135 | 01 xx xx : ld   bc,$xxxx   // P1 down
            7138 | 2A 32 F0 : ld   hl,($F032)
            713B | 09       : add  hl,bc
            713C | C9       : ret
            713D | 01 xx xx : ld   bc,$xxxx   // P2 up
            7140 | 18 03    : jr   $7145
            7142 | 01 xx xx : ld   bc,$xxxx   // P2 down
            7145 | 2A 36 F0 : ld   hl,($F036)
            7148 | 09       : add  hl,bc
            7149 | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@3BD7 =  param</action> <!-- P1 right -->
            <action>maincpu.mb@3BE2 = -param</action> <!-- P1 left -->
            <action>maincpu.mb@3ED9 =  param</action> <!-- P2 right -->
            <action>maincpu.mb@3EE4 = -param</action> <!-- P2 left -->
            <action>maincpu.mw@7131 =  param</action>
            <action>maincpu.mw@7136 = -param</action>
            <action>maincpu.mw@713E =  param</action>
            <action>maincpu.mw@7143 = -param</action>
        </script>
        <script state="off">
            <action>maincpu.md@34B2 = 23F0322A        </action>
            <action>maincpu.md@34CC = 2BF0322A        </action>
            <action>maincpu.md@3632 = 23F0362A        </action>
            <action>maincpu.md@364C = 2BF0362A        </action>
            <action>maincpu.mq@7130 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7138 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7140 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7148 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mb@3BD7 = 02              </action>
            <action>maincpu.mb@3BE2 = FE              </action>
            <action>maincpu.mb@3ED9 = 02              </action>
            <action>maincpu.mb@3EE4 = FE              </action>
        </script>
    </cheat>

    <cheat desc="fixed gun direction">
        <script state="on">
            <!-- P1 -->
            <action>maincpu.mw@3F31 = 00AF</action>
            <action>maincpu.mw@3F3B = 0006</action>
            <action>maincpu.mw@3F3F = 0006</action>
            <!-- P2 -->
            <action>maincpu.mw@3F85 = 00AF</action>
            <action>maincpu.mw@3F8F = 0006</action>
            <action>maincpu.mw@3F93 = 0006</action>
        </script>
        <script state="off">
            <action>maincpu.mw@3F31 = 3FCB</action>
            <action>maincpu.mw@3F3B = 0106</action>
            <action>maincpu.mw@3F3F = 0206</action>
            <action>maincpu.mw@3F85 = 3FCB</action>
            <action>maincpu.mw@3F8F = 0106</action>
            <action>maincpu.mw@3F93 = 0206</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <!-- you can't stop some sfxs (code 0x80 or later) by sound stop button -->
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mw@54A1 = 7150            </action>
            <action>maincpu.mq@7150 = 2847B802DBE00021</action>
            <action>maincpu.mq@7158 = EFFE350120DFFEFA</action>
            <action>maincpu.mq@7160 = 3E0420BFFE340120</action>
            <action>maincpu.mq@7168 = 3E05207FFE0618F0</action>
            <action>maincpu.mq@7170 = 0320F7FE78778610</action>
            <action>maincpu.mq@7178 = 3E0420FBFE06187E</action>
            <action>maincpu.mq@7180 = FFFFFFCE1803D33F</action>
            <!--
            7150 | 21 00 E0 : ld   hl,$E000 // sound code address
            7153 | DB 02    : in   a,($02)  // read input
            7155 | B8       : cp   b
            7156 | 47       : ld   b,a
            7157 | 28 FA    : jr   z,$7153
            7159 | FE DF    : cp   $DF
            715B | 20 01    : jr   nz,$715E
            715D | 35       : dec  (hl)     // decrease code -01
            715E | FE EF    : cp   $EF
            7160 | 20 01    : jr   nz,$7163
            7162 | 34       : inc  (hl)     // increase code +01
            7163 | FE BF    : cp   $BF
            7165 | 20 04    : jr   nz,$716B
            7167 | 3E F0    : ld   a,$F0    // decrease code -10
            7169 | 18 06    : jr   $7171
            716B | FE 7F    : cp   $7F
            716D | 20 05    : jr   nz,$7174
            716F | 3E 10    : ld   a,$10    // increase code +10
            7171 | 86       : add  a,(hl)
            7172 | 77       : ld   (hl),a
            7173 | 78       : ld   a,b
            7174 | FE F7    : cp   $F7
            7176 | 20 03    : jr   nz,$717B
            7178 | 7E       : ld   a,(hl)   // play sound
            7179 | 18 06    : jr   $7181
            717B | FE FB    : cp   $FB
            717D | 20 04    : jr   nz,$7183
            717F | 3E 3F    : ld   a,$3F    // stop sound
            7181 | D3 03    : out  ($03),a  // send sound code
            7183 | 18 CE    : jr   $7153
            -->
        </script>
        <script state="run">
            <output format="----- disco boy 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@E000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@54A1 = 4BF6            </action>
            <action>maincpu.mq@7150 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7158 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7160 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7168 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7170 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7178 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7180 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
djgirl.xml

Code: Select all

<!-- DJ Girl (Promat license) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <!-- enemy -->
            <action>maincpu.mw@29D6 = 70C0            </action> <!-- P1 -->
            <action>maincpu.mw@29E9 = 70C0            </action> <!-- P2 -->
            <action>maincpu.mq@70C0 = FE042804FE2F7EDD</action>
            <action>maincpu.mq@70C8 = 683A59FE7D113003</action>
            <action>maincpu.mq@70D0 = 67CBF0693A0328F0</action>
            <action>maincpu.mq@70D8 = C933A5CDC9AF0220</action>
            <!--
            70C0 | DD 7E 2F : ld   a,(ix+$2f) // enemy or item
            70C3 | FE 04    : cp   $04
            70C5 | 28 04    : jr   z,$70CB
            70C7 | FE 03    : cp   $03
            70C9 | 30 11    : jr   nc,$70DC
            70CB | 7D       : ld   a,l        // P1 or P2
            70CC | FE 59    : cp   $59
            70CE | 3A 68 F0 : ld   a,($F068)  // P1 roll
            70D1 | 28 03    : jr   z,$70D6
            70D3 | 3A 69 F0 : ld   a,($F069)  // P2 roll
            70D6 | CB 67    : bit  4,a
            70D8 | 20 02    : jr   nz,$70DC
            70DA | AF       : xor  a
            70DB | C9       : ret
            70DC | CD A5 33 : call $33A5      // call collision check
            70DF | C9       : ret
            -->
            <!-- bullet -->
            <action>maincpu.mb@31AD = 00</action> <!-- P1 -->
            <action>maincpu.mb@31BE = 00</action> <!-- P2 -->
        </script>
        <script state="off">
            <action>maincpu.mw@29D6 = 33A5            </action>
            <action>maincpu.mw@29E9 = 33A5            </action>
            <action>maincpu.mq@70C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@70C8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@70D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@70D8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mb@31AD = 1C              </action>
            <action>maincpu.mb@31BE = 38              </action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mw@3ED5 = 70E0            </action> <!-- P1 -->
            <action>maincpu.mw@3F29 = 70E0            </action> <!-- P2 -->
            <action>maincpu.mq@70E0 = 3A0328F92B3A7FCB</action>
            <action>maincpu.mq@70E8 = C9AFC0375FCBF92C</action>
            <!--
            70E0 | CB 7F    : bit  7,a
            70E2 | 3A 2B F9 : ld   a,($F92B) // P1
            70E5 | 28 03    : jr   z,$70EA
            70E7 | 3A 2C F9 : ld   a,($F92C) // P2
            70EA | CB 5F    : bit  3,a
            70EC | 37       : scf
            70ED | C0       : ret  nz
            70EE | AF       : xor  a
            70EF | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.mw@3ED5 = 509A            </action>
            <action>maincpu.mw@3F29 = 509A            </action>
            <action>maincpu.mq@70E0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@70E8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0001">01 (slow)</item>
            <item value="0x0002">02       </item>
            <item value="0x0004">03       </item>
            <item value="0x0006">04       </item>
            <item value="0x0008">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@347D = 0070F0CD        </action> <!-- P1 up -->
            <action>maincpu.md@3497 = 0070F5CD        </action> <!-- P1 down -->
            <action>maincpu.md@35FD = 0070FDCD        </action> <!-- P2 up -->
            <action>maincpu.md@3617 = 007102CD        </action> <!-- P2 down -->
            <action>maincpu.mq@70F0 = 0000010318000001</action>
            <action>maincpu.mq@70F8 = 000001C909F0322A</action>
            <action>maincpu.mq@7100 = F0362A0000010318</action>
            <action>maincpu.mq@7108 = FFFFFFFFFFFFC909</action>
            <!--
            70F0 | 01 xx xx : ld   bc,$xxxx   // P1 up
            70F3 | 18 03    : jr   $70F8
            70F5 | 01 xx xx : ld   bc,$xxxx   // P1 down
            70F8 | 2A 32 F0 : ld   hl,($F032)
            70FB | 09       : add  hl,bc
            70FC | C9       : ret
            70FD | 01 xx xx : ld   bc,$xxxx   // P2 up
            7100 | 18 03    : jr   $7105
            7102 | 01 xx xx : ld   bc,$xxxx   // P2 down
            7105 | 2A 36 F0 : ld   hl,($F036)
            7108 | 09       : add  hl,bc
            7109 | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@3BA2 =  param</action> <!-- P1 right -->
            <action>maincpu.mb@3BAD = -param</action> <!-- P1 left -->
            <action>maincpu.mb@3EA4 =  param</action> <!-- P2 right -->
            <action>maincpu.mb@3EAF = -param</action> <!-- P2 left -->
            <action>maincpu.mw@70F1 =  param</action>
            <action>maincpu.mw@70F6 = -param</action>
            <action>maincpu.mw@70FE =  param</action>
            <action>maincpu.mw@7103 = -param</action>
        </script>
        <script state="off">
            <action>maincpu.md@347D = 23F0322A        </action>
            <action>maincpu.md@3497 = 2BF0322A        </action>
            <action>maincpu.md@35FD = 23F0362A        </action>
            <action>maincpu.md@3617 = 2BF0362A        </action>
            <action>maincpu.mq@70F0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@70F8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7100 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7108 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mb@3BA2 = 02              </action>
            <action>maincpu.mb@3BAD = FE              </action>
            <action>maincpu.mb@3EA4 = 02              </action>
            <action>maincpu.mb@3EAF = FE              </action>
        </script>
    </cheat>

    <cheat desc="fixed gun direction">
        <script state="on">
            <!-- P1 -->
            <action>maincpu.mw@3EFC = 00AF</action>
            <action>maincpu.mw@3F06 = 0006</action>
            <action>maincpu.mw@3F0A = 0006</action>
            <!-- P2 -->
            <action>maincpu.mw@3F50 = 00AF</action>
            <action>maincpu.mw@3F5A = 0006</action>
            <action>maincpu.mw@3F5E = 0006</action>
        </script>
        <script state="off">
            <action>maincpu.mw@3EFC = 3FCB</action>
            <action>maincpu.mw@3F06 = 0106</action>
            <action>maincpu.mw@3F0A = 0206</action>
            <action>maincpu.mw@3F50 = 3FCB</action>
            <action>maincpu.mw@3F5A = 0106</action>
            <action>maincpu.mw@3F5E = 0206</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <!-- you can't stop some sfxs (code 0x80 or later) by sound stop button -->
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mw@5463 = 7110            </action>
            <action>maincpu.mq@7110 = 2847B802DBE00021</action>
            <action>maincpu.mq@7118 = EFFE350120DFFEFA</action>
            <action>maincpu.mq@7120 = 3E0420BFFE340120</action>
            <action>maincpu.mq@7128 = 3E05207FFE0618F0</action>
            <action>maincpu.mq@7130 = 0320F7FE78778610</action>
            <action>maincpu.mq@7138 = 3E0420FBFE06187E</action>
            <action>maincpu.mq@7140 = FFFFFFCE1803D33F</action>
            <!--
            7110 | 21 00 E0 : ld   hl,$E000 // sound code address
            7113 | DB 02    : in   a,($02)  // read input
            7115 | B8       : cp   b
            7116 | 47       : ld   b,a
            7117 | 28 FA    : jr   z,$7113
            7119 | FE DF    : cp   $DF
            711B | 20 01    : jr   nz,$711E
            711D | 35       : dec  (hl)     // decrease code -01
            711E | FE EF    : cp   $EF
            7120 | 20 01    : jr   nz,$7123
            7122 | 34       : inc  (hl)     // increase code +01
            7123 | FE BF    : cp   $BF
            7125 | 20 04    : jr   nz,$712B
            7127 | 3E F0    : ld   a,$F0    // decrease code -10
            7129 | 18 06    : jr   $7131
            712B | FE 7F    : cp   $7F
            712D | 20 05    : jr   nz,$7134
            712F | 3E 10    : ld   a,$10    // increase code +10
            7131 | 86       : add  a,(hl)
            7132 | 77       : ld   (hl),a
            7133 | 78       : ld   a,b
            7134 | FE F7    : cp   $F7
            7136 | 20 03    : jr   nz,$713B
            7138 | 7E       : ld   a,(hl)   // play sound
            7139 | 18 06    : jr   $7141
            713B | FE FB    : cp   $FB
            713D | 20 04    : jr   nz,$7143
            713F | 3E 3F    : ld   a,$3F    // stop sound
            7141 | D3 03    : out  ($03),a  // send sound code
            7143 | 18 CE    : jr   $7113
            -->
        </script>
        <script state="run">
            <output format="----- dj girl 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@E000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@5463 = 4BB8            </action>
            <action>maincpu.mq@7110 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7118 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7120 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7128 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7130 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7138 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7140 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>