[djgirl] Disco Boy/DJ Girl

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: 850
Joined: Tue Dec 01, 2020 1:24 pm

[djgirl] Disco Boy/DJ Girl

Post 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>
jman
Posts: 850
Joined: Tue Dec 01, 2020 1:24 pm

[discoboy]+ Disco Boy/DJ Girl

Post 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>
Post Reply