[route16d] Route 16

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

[route16d] Route 16

Post by jman »

route16d is added in 0.236.

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>cpu1.mb@1477 = 00</action> <!-- enemy -->
        <!-- bomb -->
        <action>cpu1.md@1380 =         a72f70c3</action>
        <action>cpu1.mq@2f70 = 83c340dd3ac079cb</action>
        <action>cpu1.mq@2f78 = ffffffffffffff13</action>
        <!--
        2f70 | cb 79    : bit 7,c
        2f72 | c0       : ret nz
        2f73 | 3a dd 40 : ld  a,($40dd)
        2f76 | c3 83 13 : jp  $1383
        -->
    </script>
    <script state="off">
        <action>cpu1.mb@1477 =               ff</action>
        <action>cpu1.md@1380 =         a740dd3a</action>
        <action>cpu1.mq@2f70 = ffffffffffffffff</action>
        <action>cpu1.mq@2f78 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter>
        <item value="0x08">01 (slow)</item>
        <item value="0x06">02       </item>
        <item value="0x04">03       </item>
        <item value="0x02">04       </item>
        <item value="0x00">05 (fast)</item>
    </parameter>
    <script state="change">
        <action>cpu1.mb@0d88 = param</action>
        <action>cpu1.mb@0da2 = param</action>
        <action>cpu1.mb@0db1 = param</action>
        <action>cpu1.mb@0dc0 = param</action>
    </script>
    <script state="off">
        <action>cpu1.mb@0d88 = 03</action>
        <action>cpu1.mb@0da2 = 02</action>
        <action>cpu1.mb@0db1 = 04</action>
        <action>cpu1.mb@0dc0 = 02</action>
    </script>
</cheat>

<cheat desc="enemy speed">
    <parameter>
        <item value="0x08">01 (slow)</item>
        <item value="0x06">02       </item>
        <item value="0x04">03       </item>
        <item value="0x02">04       </item>
        <item value="0x00">05 (fast)</item>
    </parameter>
    <script state="change">
        <action>cpu1.mb@0c19 = param</action>
        <action>cpu1.mb@0c79 = param</action>
        <action>cpu1.mb@0d4d = param</action>
    </script>
    <script state="off">
        <action>cpu1.mb@0c19 = 03</action>
        <action>cpu1.mb@0c79 = 02</action>
        <action>cpu1.mb@0d4d = 04</action>
    </script>
</cheat>
The following codes are test. These have some problems.

Code: Select all

<cheat desc="move manually (test)">
    <script state="on">
        <action>cpu1.mw@0de5 =             2f80</action>
        <action>cpu1.mq@2f80 = cd03280fe650003a</action>
        <action>cpu1.mq@2f88 = ffffffffffc90e01</action>
        <!--
        2f80 | 3a 00 50 : ld   a,($5000)
        2f83 | e6 0f    : and  $0f
        2f85 | 28 03    : jr   z,$2f8a
        2f87 | cd 01 0e : call $0e01
        2f8a | c9       : ret
        -->
    </script>
    <script state="off">
        <action>cpu1.mw@0de5 =             0e01</action>
        <action>cpu1.mq@2f80 = ffffffffffffffff</action>
        <action>cpu1.mq@2f88 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="walk through wall (test)">
    <script state="on">
        <action>cpu1.md@0e51 =         002f90c3</action>
        <action>cpu1.mq@2f90 = 180220a77de1e5dd</action>
        <action>cpu1.mq@2f98 = 55c30e24c241cb05</action>
        <action>cpu1.mq@2fa0 = ffffffffffffff0e</action>
        <!--
        2f90 | dd e5    : push ix
        2f92 | e1       : pop  hl
        2f93 | 7d       : ld   a,l
        2f94 | a7       : and  a
        2f95 | 20 02    : jr   nz,$2f99
        2f97 | 18 05    : jr   $2f9e
        2f99 | cb 41    : bit  0,c
        2f9b | c2 24 0e : jp   nz,$0e24
        2f9e | c3 55 0e : jp   $0e55
        -->
    </script>
    <script state="off">
        <action>cpu1.md@0e51 =         cf2041cb</action>
        <action>cpu1.mq@2f90 = ffffffffffffffff</action>
        <action>cpu1.mq@2f98 = ffffffffffffffff</action>
        <action>cpu1.mq@2fa0 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="sound test mode (test)">
    <comment>reset the game to enter sound test mode</comment>
    <script state="on">
        <action>cpu1.mq@0133 = 47b850003a401021</action>
        <action>cpu1.mq@013b = fe35012002fef628</action>
        <action>cpu1.mq@0143 = 062010fe34012001</action>
        <action>cpu1.mq@014b = 04fe0918015ccd7e</action>
        <action>cpu1.mq@0153 = 18c12a13cdc50520</action>
        <action>cpu1.mq@015b = 418011417021f5d7</action>
        <action>cpu1.mq@0163 = 3809fef11277aff5</action>
        <action>cpu1.mq@016b = cb02203deb09d603</action>
        <action>cpu1.mq@0173 = 203dcecb02203dc6</action>
        <action>cpu1.mq@017b = decb02203dd6cb02</action>
        <action>cpu1.mq@0183 = 02203de6cb02203d</action>
        <action>cpu1.mq@018b = 3df6cb02203deecb</action>
        <action>cpu1.mq@0193 = 3e20c9f1fecb0220</action>
        <!--
        0133 | 21 10 40 : ld   hl,$4010  // sound code address
        0136 | 3a 00 50 : ld   a,($5000) // read input
        0139 | b8       : cp   b
        013a | 47       : ld   b,a
        013b | 28 f6    : jr   z,$0133
        013d | fe 02    : cp   $02
        013f | 20 01    : jr   nz,$0142
        0141 | 35       : dec  (hl)      // decrease code
        0142 | fe 01    : cp   $01
        0144 | 20 01    : jr   nz,$0147
        0146 | 34       : inc  (hl)      // increase code
        0147 | fe 10    : cp   $10
        0149 | 20 06    : jr   nz,$0151
        014b | 7e       : ld   a,(hl)    // play sound
        014c | cd 5c 01 : call $015c
        014f | 18 09    : jr   $015a
        0151 | fe 04    : cp   $04
        0153 | 20 05    : jr   nz,$015a
        0155 | c5       : push bc
        0156 | cd 13 2a : call $2a13     // stop sound
        0159 | c1       : pop  bc
        015a | 18 d7    : jr   $0133
        015c | f5       : push af        // sound code set routine
        015d | 21 70 41 : ld   hl,$4170
        0160 | 11 80 41 : ld   de,$4180
        0163 | f5       : push af
        0164 | af       : xor  a
        0165 | 77       : ld   (hl),a
        0166 | 12       : ld   (de),a
        0167 | f1       : pop  af
        0168 | fe 09    : cp   $09
        016a | 38 03    : jr   c,$016f
        016c | d6 09    : sub  $09
        016e | eb       : ex   de,hl
        016f | 3d       : dec  a
        0170 | 20 02    : jr   nz,$0174
        0172 | cb c6    : set  0,(hl)
        0174 | 3d       : dec  a
        0175 | 20 02    : jr   nz,$0179
        0177 | cb ce    : set  1,(hl)
        0179 | 3d       : dec  a
        017a | 20 02    : jr   nz,$017e
        017c | cb d6    : set  2,(hl)
        017e | 3d       : dec  a
        017f | 20 02    : jr   nz,$0183
        0181 | cb de    : set  3,(hl)
        0183 | 3d       : dec  a
        0184 | 20 02    : jr   nz,$0188
        0186 | cb e6    : set  4,(hl)
        0188 | 3d       : dec  a
        0189 | 20 02    : jr   nz,$018d
        018b | cb ee    : set  5,(hl)
        018d | 3d       : dec  a
        018e | 20 02    : jr   nz,$0192
        0190 | cb f6    : set  6,(hl)
        0192 | 3d       : dec  a
        0193 | 20 02    : jr   nz,$0197
        0195 | cb fe    : set  7,(hl)
        0197 | f1       : pop  af
        0198 | c9       : ret
        -->
    </script>
    <script state="run">
        <output format="----- route 16 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="up : 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>cpu1.pb@4010</argument>
        </output>
    </script>
    <script state="off">
        <action>cpu1.mq@0133 = 253af3430632ff3e</action>
        <action>cpu1.mq@013b = b0403f3a47afcb40</action>
        <action>cpu1.mq@0143 = affb500032402532</action>
        <action>cpu1.mq@014b = c2a740203a406132</action>
        <action>cpu1.mq@0153 = 06fecb406121021d</action>
        <action>cpu1.mq@015b = 01cd0512cd180e1f</action>
        <action>cpu1.mq@0163 = 0512cd1f0e000623</action>
        <action>cpu1.mq@016b = 2fcdc220a740203a</action>
        <action>cpu1.mq@0173 = 50cdfecb40612105</action>
        <action>cpu1.mq@017b = cd04facd0557cd05</action>
        <action>cpu1.mq@0183 = 0a18cd0ad4cd0748</action>
        <action>cpu1.mq@018b = d9cd05d1cd0a9acd</action>
        <action>cpu1.mq@0193 = 3e209dcd0a2bcd05</action>
    </script>
</cheat>
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[route16]+ Route 16

Post by jman »

route16.xml

Code: Select all

<!-- Route 16 (Sun Electronics, set 1) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <!-- enemy -->
            <action>cpu1.mb@1473 = 00</action>
            <!-- bomb -->
            <action>cpu1.md@137C = A72F60CD        </action>
            <action>cpu1.mq@2F60 = C9E1C840DD3A79CB</action>
            <!--
            2F60 | CB 79    : bit  7,c
            2F62 | 3A DD 40 : ld   a,($40DD)
            2F65 | C8       : ret  z
            2F66 | E1       : pop  hl
            2F67 | C9       : ret
            -->
        </script>
        <script state="off">
            <action>cpu1.mb@1473 = FF              </action>
            <action>cpu1.md@137C = A740DD3A        </action>
            <action>cpu1.mq@2F60 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="walk through wall (test)">
        <!-- erase wall -->
        <script state="on">
            <action>cpu1.md@0E4D = 002F70C3        </action>
            <action>cpu1.mq@2F70 = C241CB0528A77DDD</action>
            <action>cpu1.mq@2F78 = FFFFFF0E51C30E20</action>
            <!--
            2F70 | DD 7D    : ld   a,ixl
            2F72 | A7       : and  a
            2F73 | 28 05    : jr   z,$2F7A
            2F75 | CB 41    : bit  0,c
            2F77 | C2 20 0E : jp   nz,$0E20
            2F7A | C3 51 0E : jp   $0E51
            -->
        </script>
        <script state="off">
            <action>cpu1.md@0E4D = CF2041CB        </action>
            <action>cpu1.mq@2F70 = FFFFFFFFFFFFFFFF</action>
            <action>cpu1.mq@2F78 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x08">01 (slow)</item>
            <item value="0x06">02       </item>
            <item value="0x04">03       </item>
            <item value="0x02">04       </item>
            <item value="0x00">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>cpu1.mb@0D84 = param</action>
            <action>cpu1.mb@0D9E = param</action>
            <action>cpu1.mb@0DAD = param</action>
            <action>cpu1.mb@0DBC = param</action>
        </script>
        <script state="off">
            <action>cpu1.mb@0D84 = 03</action>
            <action>cpu1.mb@0D9E = 02</action>
            <action>cpu1.mb@0DAD = 04</action>
            <action>cpu1.mb@0DBC = 02</action>
        </script>
    </cheat>

    <cheat desc="enemy speed">
        <parameter>
            <item value="0x08">01 (slow)</item>
            <item value="0x06">02       </item>
            <item value="0x04">03       </item>
            <item value="0x02">04       </item>
            <item value="0x00">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>cpu1.mb@0C15 = param</action>
            <action>cpu1.mb@0C75 = param</action>
            <action>cpu1.mb@0D49 = param</action>
        </script>
        <script state="off">
            <action>cpu1.mb@0C15 = 03</action>
            <action>cpu1.mb@0C75 = 02</action>
            <action>cpu1.mb@0D49 = 04</action>
        </script>
    </cheat>

    <cheat desc="move manually (test)">
        <!-- invalid red dots appear in small mode -->
        <script state="on">
            <action>cpu1.mw@0DE1 = 2F80            </action>
            <action>cpu1.mq@2F80 = C90DFDC4780FE647</action>
            <!--
            2F90 | 47       : ld   b,a
            2F91 | E6 0F    : and  $0F
            2F93 | 78       : ld   a,b
            2F94 | C4 FD 0D : call nz,$0DFD
            2F97 | C9       : ret
            -->
        </script>
        <script state="off">
            <action>cpu1.mw@0DE1 = 0DFD            </action>
            <action>cpu1.mq@2F80 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>cpu1.mq@0133 = 80E658003A410121</action>
            <action>cpu1.mq@013B = BEB01FE650003A47</action>
            <action>cpu1.mq@0143 = 012002FE2BED2877</action>
            <action>cpu1.mq@014B = 08FE34012001FE35</action>
            <action>cpu1.mq@0153 = 04FE0618F03E0420</action>
            <action>cpu1.mq@015B = 48187786103E0620</action>
            <action>cpu1.mq@0163 = 7021F57E3D2010FE</action>
            <action>cpu1.mq@016B = F11277AF41801141</action>
            <action>cpu1.mq@0173 = 3DEB09D6033809FE</action>
            <action>cpu1.mq@017B = CB02203DC6CB0220</action>
            <action>cpu1.mq@0183 = 203DD6CB02203DCE</action>
            <action>cpu1.mq@018B = E6CB02203DDECB02</action>
            <action>cpu1.mq@0193 = 02203DEECB02203D</action>
            <action>cpu1.mq@019B = 18FECB02203DF6CB</action>
            <action>cpu1.mq@01A3 = 277BCD0D2080FE11</action>
            <action>cpu1.mq@01AB = 2300364170212006</action>
            <action>cpu1.mq@01B3 = 0000000133C3FB10</action>
            <!--
            0133 | 21 01 41 : ld   hl,$4101  // temporary input address
            0136 | 3A 00 58 : ld   a,($5800) // read start button
            0139 | E6 80    : and  $80
            013B | 47       : ld   b,a
            013C | 3A 00 50 : ld   a,($5000) // read other inputs
            013F | E6 1F    : and  $1F
            0141 | B0       : or   b
            0142 | BE       : cp   (hl)
            0143 | 77       : ld   (hl),a
            0144 | 28 ED    : jr   z,$0133
            0146 | 2B       : dec  hl        // sound code address ($4100)
            0147 | FE 02    : cp   $02
            0149 | 20 01    : jr   nz,$014C
            014B | 35       : dec  (hl)      // decrease code -01
            014C | FE 01    : cp   $01
            014E | 20 01    : jr   nz,$0151
            0150 | 34       : inc  (hl)      // increase code +01
            0151 | FE 08    : cp   $08
            0153 | 20 04    : jr   nz,$0159
            0155 | 3E F0    : ld   a,$F0     // decrease code -10
            0157 | 18 06    : jr   $015F
            0159 | FE 04    : cp   $04
            015B | 20 06    : jr   nz,$0163
            015D | 3E 10    : ld   a,$10     // increase code +10
            015F | 86       : add  a,(hl)
            0160 | 77       : ld   (hl),a
            0161 | 18 48    : jr   $01AB
            0163 | FE 10    : cp   $10
            0165 | 20 3D    : jr   nz,$01A4
            0167 | 7E       : ld   a,(hl)    // play sound
            0168 | F5       : push af
            0169 | 21 70 41 : ld   hl,$4170
            016C | 11 80 41 : ld   de,$4180
            016F | AF       : xor  a
            0170 | 77       : ld   (hl),a
            0171 | 12       : ld   (de),a
            0172 | F1       : pop  af
            0173 | FE 09    : cp   $09
            0175 | 38 03    : jr   c,$017A
            0177 | D6 09    : sub  $09
            0179 | EB       : ex   de,hl
            017A | 3D       : dec  a
            017B | 20 02    : jr   nz,$017F
            017D | CB C6    : set  0,(hl)
            017F | 3D       : dec  a
            0180 | 20 02    : jr   nz,$0184
            0182 | CB CE    : set  1,(hl)
            0184 | 3D       : dec  a
            0185 | 20 02    : jr   nz,$0189
            0187 | CB D6    : set  2,(hl)
            0189 | 3D       : dec  a
            018A | 20 02    : jr   nz,$018E
            018C | CB DE    : set  3,(hl)
            018E | 3D       : dec  a
            018F | 20 02    : jr   nz,$0193
            0191 | CB E6    : set  4,(hl)
            0193 | 3D       : dec  a
            0194 | 20 02    : jr   nz,$0198
            0196 | CB EE    : set  5,(hl)
            0198 | 3D       : dec  a
            0199 | 20 02    : jr   nz,$019D
            019B | CB F6    : set  6,(hl)
            019D | 3D       : dec  a
            019E | 20 02    : jr   nz,$01A2
            01A0 | CB FE    : set  7,(hl)
            01A2 | 18 11    : jr   $01B5
            01A4 | FE 80    : cp   $80
            01A6 | 20 0D    : jr   nz,$01B5
            01A8 | CD 7B 27 : call $277B     // stop sound
            01AB | 06 20    : ld   b,$20
            01AD | 21 70 41 : ld   hl,$4170
            01B0 | 36 00    : ld   (hl),$00
            01B2 | 23       : inc  hl
            01B3 | 10 FB    : djnz $01B0
            01B5 | C3 33 01 : jp   $0133
            -->
        </script>
        <script state="run">
            <output format="----- route 16 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="P1 start : 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>cpu1.pb@4100</argument>
            </output>
        </script>
        <script state="off">
            <action>cpu1.mq@0133 = 253AF3430632FF3E</action>
            <action>cpu1.mq@013B = B0403F3A47AFCB40</action>
            <action>cpu1.mq@0143 = AFFB500032402532</action>
            <action>cpu1.mq@014B = C2A740203A406132</action>
            <action>cpu1.mq@0153 = 06FECB406121021D</action>
            <action>cpu1.mq@015B = FDCD050ECD180E1F</action>
            <action>cpu1.mq@0163 = 050ECD1F0E000622</action>
            <action>cpu1.mq@016B = 2BCDC220A740203A</action>
            <action>cpu1.mq@0173 = 4CCDFECB40612105</action>
            <action>cpu1.mq@017B = CD04F6CD0553CD05</action>
            <action>cpu1.mq@0183 = 0A14CD0AD0CD0744</action>
            <action>cpu1.mq@018B = D5CD05CDCD0A96CD</action>
            <action>cpu1.mq@0193 = 3E2099CD0A27CD05</action>
            <action>cpu1.mq@019B = 0432803E430232FF</action>
            <action>cpu1.mq@01A3 = 480021402332AF40</action>
            <action>cpu1.mq@01AB = 05287FCBFC20BE7E</action>
            <action>cpu1.mq@01B3 = 056ACDC6CB417021</action>
        </script>
    </cheat>

</mamecheat>
route16d.xml

Code: Select all

<!-- Route 16 (Sun Electronics, set 2) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <!-- enemy -->
            <action>cpu1.mb@1477 = 00</action>
            <!-- bomb -->
            <action>cpu1.md@1380 = A72F70CD        </action>
            <action>cpu1.mq@2F70 = C9E1C840DD3A79CB</action>
            <!--
            2F70 | CB 79    : bit  7,c
            2F72 | 3A DD 40 : ld   a,($40DD)
            2F75 | C8       : ret  z
            2F76 | E1       : pop  hl
            2F77 | C9       : ret
            -->
        </script>
        <script state="off">
            <action>cpu1.mb@1477 = FF              </action>
            <action>cpu1.md@1380 = A740DD3A        </action>
            <action>cpu1.mq@2F70 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="walk through wall (test)">
        <!-- erase wall -->
        <script state="on">
            <action>cpu1.md@0E51 = 002F80C3        </action>
            <action>cpu1.mq@2F80 = C241CB0528A77DDD</action>
            <action>cpu1.mq@2F88 = FFFFFF0E55C30E24</action>
            <!--
            2F80 | DD 7D    : ld   a,ixl
            2F82 | A7       : and  a
            2F83 | 28 05    : jr   z,$2F8A
            2F85 | CB 41    : bit  0,c
            2F87 | C2 24 0E : jp   nz,$0E24
            2F8A | C3 55 0E : jp   $0E55
            -->
        </script>
        <script state="off">
            <action>cpu1.md@0E51 = CF2041CB        </action>
            <action>cpu1.mq@2F80 = FFFFFFFFFFFFFFFF</action>
            <action>cpu1.mq@2F88 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x08">01 (slow)</item>
            <item value="0x06">02       </item>
            <item value="0x04">03       </item>
            <item value="0x02">04       </item>
            <item value="0x00">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>cpu1.mb@0D88 = param</action>
            <action>cpu1.mb@0DA2 = param</action>
            <action>cpu1.mb@0DB1 = param</action>
            <action>cpu1.mb@0DC0 = param</action>
        </script>
        <script state="off">
            <action>cpu1.mb@0D88 = 03</action>
            <action>cpu1.mb@0DA2 = 02</action>
            <action>cpu1.mb@0DB1 = 04</action>
            <action>cpu1.mb@0DC0 = 02</action>
        </script>
    </cheat>

    <cheat desc="enemy speed">
        <parameter>
            <item value="0x08">01 (slow)</item>
            <item value="0x06">02       </item>
            <item value="0x04">03       </item>
            <item value="0x02">04       </item>
            <item value="0x00">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>cpu1.mb@0C19 = param</action>
            <action>cpu1.mb@0C79 = param</action>
            <action>cpu1.mb@0D4D = param</action>
        </script>
        <script state="off">
            <action>cpu1.mb@0C19 = 03</action>
            <action>cpu1.mb@0C79 = 02</action>
            <action>cpu1.mb@0D4D = 04</action>
        </script>
    </cheat>

    <cheat desc="move manually (test)">
        <!-- invalid red dots appear in small mode -->
        <script state="on">
            <action>cpu1.mw@0DE5 = 2F90            </action>
            <action>cpu1.mq@2F90 = C90E01C4780FE647</action>
            <!--
            2F90 | 47       : ld   b,a
            2F91 | E6 0F    : and  $0F
            2F93 | 78       : ld   a,b
            2F94 | C4 01 0E : call nz,$0E01
            2F97 | C9       : ret
            -->
        </script>
        <script state="off">
            <action>cpu1.mw@0DE5 = 0E01            </action>
            <action>cpu1.mq@2F90 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>cpu1.mq@0133 = 80E658003A410121</action>
            <action>cpu1.mq@013B = BEB01FE650003A47</action>
            <action>cpu1.mq@0143 = 012002FE2BED2877</action>
            <action>cpu1.mq@014B = 08FE34012001FE35</action>
            <action>cpu1.mq@0153 = 04FE0618F03E0420</action>
            <action>cpu1.mq@015B = 48187786103E0620</action>
            <action>cpu1.mq@0163 = 7021F57E3D2010FE</action>
            <action>cpu1.mq@016B = F11277AF41801141</action>
            <action>cpu1.mq@0173 = 3DEB09D6033809FE</action>
            <action>cpu1.mq@017B = CB02203DC6CB0220</action>
            <action>cpu1.mq@0183 = 203DD6CB02203DCE</action>
            <action>cpu1.mq@018B = E6CB02203DDECB02</action>
            <action>cpu1.mq@0193 = 02203DEECB02203D</action>
            <action>cpu1.mq@019B = 18FECB02203DF6CB</action>
            <action>cpu1.mq@01A3 = 277FCD0D2080FE11</action>
            <action>cpu1.mq@01AB = 2300364170212006</action>
            <action>cpu1.mq@01B3 = 0000000133C3FB10</action>
            <!--
            0133 | 21 01 41 : ld   hl,$4101  // temporary input address
            0136 | 3A 00 58 : ld   a,($5800) // read start button
            0139 | E6 80    : and  $80
            013B | 47       : ld   b,a
            013C | 3A 00 50 : ld   a,($5000) // read other inputs
            013F | E6 1F    : and  $1F
            0141 | B0       : or   b
            0142 | BE       : cp   (hl)
            0143 | 77       : ld   (hl),a
            0144 | 28 ED    : jr   z,$0133
            0146 | 2B       : dec  hl        // sound code address ($4100)
            0147 | FE 02    : cp   $02
            0149 | 20 01    : jr   nz,$014C
            014B | 35       : dec  (hl)      // decrease code -01
            014C | FE 01    : cp   $01
            014E | 20 01    : jr   nz,$0151
            0150 | 34       : inc  (hl)      // increase code +01
            0151 | FE 08    : cp   $08
            0153 | 20 04    : jr   nz,$0159
            0155 | 3E F0    : ld   a,$F0     // decrease code -10
            0157 | 18 06    : jr   $015F
            0159 | FE 04    : cp   $04
            015B | 20 06    : jr   nz,$0163
            015D | 3E 10    : ld   a,$10     // increase code +10
            015F | 86       : add  a,(hl)
            0160 | 77       : ld   (hl),a
            0161 | 18 48    : jr   $01AB
            0163 | FE 10    : cp   $10
            0165 | 20 3D    : jr   nz,$01A4
            0167 | 7E       : ld   a,(hl)    // play sound
            0168 | F5       : push af
            0169 | 21 70 41 : ld   hl,$4170
            016C | 11 80 41 : ld   de,$4180
            016F | AF       : xor  a
            0170 | 77       : ld   (hl),a
            0171 | 12       : ld   (de),a
            0172 | F1       : pop  af
            0173 | FE 09    : cp   $09
            0175 | 38 03    : jr   c,$017A
            0177 | D6 09    : sub  $09
            0179 | EB       : ex   de,hl
            017A | 3D       : dec  a
            017B | 20 02    : jr   nz,$017F
            017D | CB C6    : set  0,(hl)
            017F | 3D       : dec  a
            0180 | 20 02    : jr   nz,$0184
            0182 | CB CE    : set  1,(hl)
            0184 | 3D       : dec  a
            0185 | 20 02    : jr   nz,$0189
            0187 | CB D6    : set  2,(hl)
            0189 | 3D       : dec  a
            018A | 20 02    : jr   nz,$018E
            018C | CB DE    : set  3,(hl)
            018E | 3D       : dec  a
            018F | 20 02    : jr   nz,$0193
            0191 | CB E6    : set  4,(hl)
            0193 | 3D       : dec  a
            0194 | 20 02    : jr   nz,$0198
            0196 | CB EE    : set  5,(hl)
            0198 | 3D       : dec  a
            0199 | 20 02    : jr   nz,$019D
            019B | CB F6    : set  6,(hl)
            019D | 3D       : dec  a
            019E | 20 02    : jr   nz,$01A2
            01A0 | CB FE    : set  7,(hl)
            01A2 | 18 11    : jr   $01B5
            01A4 | FE 80    : cp   $80
            01A6 | 20 0D    : jr   nz,$01B5
            01A8 | CD 7F 27 : call $277F     // stop sound
            01AB | 06 20    : ld   b,$20
            01AD | 21 70 41 : ld   hl,$4170
            01B0 | 36 00    : ld   (hl),$00
            01B2 | 23       : inc  hl
            01B3 | 10 FB    : djnz $01B0
            01B5 | C3 33 01 : jp   $0133
            -->
        </script>
        <script state="run">
            <output format="----- route 16 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="P1 start : 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>cpu1.pb@4100</argument>
            </output>
        </script>
        <script state="off">
            <action>cpu1.mq@0133 = 253AF3430632FF3E</action>
            <action>cpu1.mq@013B = B0403F3A47AFCB40</action>
            <action>cpu1.mq@0143 = AFFB500032402532</action>
            <action>cpu1.mq@014B = C2A740203A406132</action>
            <action>cpu1.mq@0153 = 06FECB406121021D</action>
            <action>cpu1.mq@015B = 01CD0512CD180E1F</action>
            <action>cpu1.mq@0163 = 0512CD1F0E000623</action>
            <action>cpu1.mq@016B = 2FCDC220A740203A</action>
            <action>cpu1.mq@0173 = 50CDFECB40612105</action>
            <action>cpu1.mq@017B = CD04FACD0557CD05</action>
            <action>cpu1.mq@0183 = 0A18CD0AD4CD0748</action>
            <action>cpu1.mq@018B = D9CD05D1CD0A9ACD</action>
            <action>cpu1.mq@0193 = 3E209DCD0A2BCD05</action>
            <action>cpu1.mq@019B = 0432803E430232FF</action>
            <action>cpu1.mq@01A3 = 480021402332AF40</action>
            <action>cpu1.mq@01AB = 05287FCBFC20BE7E</action>
            <action>cpu1.mq@01B3 = 056ECDC6CB417021</action>
        </script>
    </cheat>

</mamecheat>
route16a.xml

Code: Select all

<!-- Route 16 (Centuri license, set 1) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <!-- enemy -->
            <action>cpu1.mb@147A = 00</action>
            <!-- bomb -->
            <action>cpu1.md@1383 = A72FD0CD        </action>
            <action>cpu1.mq@2FD0 = C9E1C840DD3A79CB</action>
            <!--
            2FD0 | CB 79    : bit  7,c
            2FD2 | 3A DD 40 : ld   a,($40DD)
            2FD5 | C8       : ret  z
            2FD6 | E1       : pop  hl
            2FD7 | C9       : ret
            -->
        </script>
        <script state="off">
            <action>cpu1.mb@147A = FF              </action>
            <action>cpu1.md@1383 = A740DD3A        </action>
            <action>cpu1.mq@2FD0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="walk through wall (test)">
        <!-- erase wall -->
        <script state="on">
            <action>cpu1.md@0E54 = 002FE0C3        </action>
            <action>cpu1.mq@2FE0 = C241CB0528A77DDD</action>
            <action>cpu1.mq@2FE8 = FFFFFF0E58C30E27</action>
            <!--
            2FE0 | DD 7D    : ld   a,ixl
            2FE2 | A7       : and  a
            2FE3 | 28 05    : jr   z,$2FEA
            2FE5 | CB 41    : bit  0,c
            2FE7 | C2 27 0E : jp   nz,$0E27
            2FEA | C3 58 0E : jp   $0E58
            -->
        </script>
        <script state="off">
            <action>cpu1.md@0E54 = CF2041CB        </action>
            <action>cpu1.mq@2FE0 = FFFFFFFFFFFFFFFF</action>
            <action>cpu1.mq@2FE8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x08">01 (slow)</item>
            <item value="0x06">02       </item>
            <item value="0x04">03       </item>
            <item value="0x02">04       </item>
            <item value="0x00">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>cpu1.mb@0D93 = param</action>
            <action>cpu1.mb@0DAD = param</action>
            <action>cpu1.mb@0DBC = param</action>
            <action>cpu1.mb@0DCB = param</action>
        </script>
        <script state="off">
            <action>cpu1.mb@0D93 = 03</action>
            <action>cpu1.mb@0DAD = 02</action>
            <action>cpu1.mb@0DBC = 04</action>
            <action>cpu1.mb@0DCB = 02</action>
        </script>
    </cheat>

    <cheat desc="enemy speed">
        <parameter>
            <item value="0x08">01 (slow)</item>
            <item value="0x06">02       </item>
            <item value="0x04">03       </item>
            <item value="0x02">04       </item>
            <item value="0x00">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>cpu1.mb@0C24 = param</action>
            <action>cpu1.mb@0C84 = param</action>
            <action>cpu1.mb@0D58 = param</action>
        </script>
        <script state="off">
            <action>cpu1.mb@0C24 = 03</action>
            <action>cpu1.mb@0C84 = 02</action>
            <action>cpu1.mb@0D58 = 04</action>
        </script>
    </cheat>

    <cheat desc="move manually (test)">
        <!-- invalid red dots appear in small mode -->
        <script state="on">
            <action>cpu1.mw@0DF0 = 2FF0            </action>
            <action>cpu1.mq@2FF0 = C90E04C4780FE647</action>
            <!--
            2FF0 | 47       : ld   b,a
            2FF1 | E6 0F    : and  $0F
            2FF3 | 78       : ld   a,b
            2FF4 | C4 04 0E : call nz,$0E04
            2FF7 | C9       : ret
            -->
        </script>
        <script state="off">
            <action>cpu1.mw@0DF0 = 0E04            </action>
            <action>cpu1.mq@2FF0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>cpu1.mq@0133 = 80E658003A410121</action>
            <action>cpu1.mq@013B = BEB01FE650003A47</action>
            <action>cpu1.mq@0143 = 012002FE2BED2877</action>
            <action>cpu1.mq@014B = 08FE34012001FE35</action>
            <action>cpu1.mq@0153 = 04FE0618F03E0420</action>
            <action>cpu1.mq@015B = 48187786103E0620</action>
            <action>cpu1.mq@0163 = 7021F57E3D2010FE</action>
            <action>cpu1.mq@016B = F11277AF41801141</action>
            <action>cpu1.mq@0173 = 3DEB09D6033809FE</action>
            <action>cpu1.mq@017B = CB02203DC6CB0220</action>
            <action>cpu1.mq@0183 = 203DD6CB02203DCE</action>
            <action>cpu1.mq@018B = E6CB02203DDECB02</action>
            <action>cpu1.mq@0193 = 02203DEECB02203D</action>
            <action>cpu1.mq@019B = 18FECB02203DF6CB</action>
            <action>cpu1.mq@01A3 = 27E6CD0D2080FE11</action>
            <action>cpu1.mq@01AB = 2300364170212006</action>
            <action>cpu1.mq@01B3 = 0000000133C3FB10</action>
            <!--
            0133 | 21 01 41 : ld   hl,$4101  // temporary input address
            0136 | 3A 00 58 : ld   a,($5800) // read start button
            0139 | E6 80    : and  $80
            013B | 47       : ld   b,a
            013C | 3A 00 50 : ld   a,($5000) // read other inputs
            013F | E6 1F    : and  $1F
            0141 | B0       : or   b
            0142 | BE       : cp   (hl)
            0143 | 77       : ld   (hl),a
            0144 | 28 ED    : jr   z,$0133
            0146 | 2B       : dec  hl        // sound code address ($4100)
            0147 | FE 02    : cp   $02
            0149 | 20 01    : jr   nz,$014C
            014B | 35       : dec  (hl)      // decrease code -01
            014C | FE 01    : cp   $01
            014E | 20 01    : jr   nz,$0151
            0150 | 34       : inc  (hl)      // increase code +01
            0151 | FE 08    : cp   $08
            0153 | 20 04    : jr   nz,$0159
            0155 | 3E F0    : ld   a,$F0     // decrease code -10
            0157 | 18 06    : jr   $015F
            0159 | FE 04    : cp   $04
            015B | 20 06    : jr   nz,$0163
            015D | 3E 10    : ld   a,$10     // increase code +10
            015F | 86       : add  a,(hl)
            0160 | 77       : ld   (hl),a
            0161 | 18 48    : jr   $01AB
            0163 | FE 10    : cp   $10
            0165 | 20 3D    : jr   nz,$01A4
            0167 | 7E       : ld   a,(hl)    // play sound
            0168 | F5       : push af
            0169 | 21 70 41 : ld   hl,$4170
            016C | 11 80 41 : ld   de,$4180
            016F | AF       : xor  a
            0170 | 77       : ld   (hl),a
            0171 | 12       : ld   (de),a
            0172 | F1       : pop  af
            0173 | FE 09    : cp   $09
            0175 | 38 03    : jr   c,$017A
            0177 | D6 09    : sub  $09
            0179 | EB       : ex   de,hl
            017A | 3D       : dec  a
            017B | 20 02    : jr   nz,$017F
            017D | CB C6    : set  0,(hl)
            017F | 3D       : dec  a
            0180 | 20 02    : jr   nz,$0184
            0182 | CB CE    : set  1,(hl)
            0184 | 3D       : dec  a
            0185 | 20 02    : jr   nz,$0189
            0187 | CB D6    : set  2,(hl)
            0189 | 3D       : dec  a
            018A | 20 02    : jr   nz,$018E
            018C | CB DE    : set  3,(hl)
            018E | 3D       : dec  a
            018F | 20 02    : jr   nz,$0193
            0191 | CB E6    : set  4,(hl)
            0193 | 3D       : dec  a
            0194 | 20 02    : jr   nz,$0198
            0196 | CB EE    : set  5,(hl)
            0198 | 3D       : dec  a
            0199 | 20 02    : jr   nz,$019D
            019B | CB F6    : set  6,(hl)
            019D | 3D       : dec  a
            019E | 20 02    : jr   nz,$01A2
            01A0 | CB FE    : set  7,(hl)
            01A2 | 18 11    : jr   $01B5
            01A4 | FE 80    : cp   $80
            01A6 | 20 0D    : jr   nz,$01B5
            01A8 | CD 7F 27 : call $27E6     // stop sound
            01AB | 06 20    : ld   b,$20
            01AD | 21 70 41 : ld   hl,$4170
            01B0 | 36 00    : ld   (hl),$00
            01B2 | 23       : inc  hl
            01B3 | 10 FB    : djnz $01B0
            01B5 | C3 33 01 : jp   $0133
            -->
        </script>
        <script state="run">
            <output format="----- route 16 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="P1 start : 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>cpu1.pb@4100</argument>
            </output>
        </script>
        <script state="off">
            <action>cpu1.mq@0133 = 253AF3430632FF3E</action>
            <action>cpu1.mq@013B = B0403F3A47AFCB40</action>
            <action>cpu1.mq@0143 = AFFB500032402532</action>
            <action>cpu1.mq@014B = C2A740203A406132</action>
            <action>cpu1.mq@0153 = 06FECB406121021D</action>
            <action>cpu1.mq@015B = 04CD04FECD180E1F</action>
            <action>cpu1.mq@0163 = 04FECD1F0E000623</action>
            <action>cpu1.mq@016B = 1BCDC220A740203A</action>
            <action>cpu1.mq@0173 = 3CCDFECB40612105</action>
            <action>cpu1.mq@017B = CD04E6CD0543CD05</action>
            <action>cpu1.mq@0183 = 0A21CD0ADDCD0751</action>
            <action>cpu1.mq@018B = CECD05C6CD0AA3CD</action>
            <action>cpu1.mq@0193 = 3E20A0CD0A34CD05</action>
            <action>cpu1.mq@019B = 0432803E430232FF</action>
            <action>cpu1.mq@01A3 = 480021402332AF40</action>
            <action>cpu1.mq@01AB = 05287FCBFC20BE7E</action>
            <action>cpu1.mq@01B3 = 055ACDC6CB417021</action>
        </script>
    </cheat>

</mamecheat>
route16b.xml

Code: Select all

<!-- Route 16 (Centuri license, set 2) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <!-- enmey -->
            <action>cpu1.mb@1475 = 00</action>
            <!-- bomb -->
            <action>cpu1.md@137E = A72FD0CD        </action>
            <action>cpu1.mq@2FD0 = C9E1C840DD3A79CB</action>
            <!--
            2FD0 | CB 79    : bit  7,c
            2FD2 | 3A DD 40 : ld   a,($40DD)
            2FD5 | C8       : ret  z
            2FD6 | E1       : pop  hl
            2FD7 | C9       : ret
            -->
        </script>
        <script state="off">
            <action>cpu1.mb@1475 = FF              </action>
            <action>cpu1.md@137E = A740DD3A        </action>
            <action>cpu1.mq@2FD0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="walk through wall (test)">
        <!-- erase wall -->
        <script state="on">
            <action>cpu1.md@0E4F = 002FE0C3        </action>
            <action>cpu1.mq@2FE0 = C241CB0528A77DDD</action>
            <action>cpu1.mq@2FE8 = FFFFFF0E53C30E22</action>
            <!--
            2FE0 | DD 7D    : ld   a,ixl
            2FE2 | A7       : and  a
            2FE3 | 28 05    : jr   z,$2FEA
            2FE5 | CB 41    : bit  0,c
            2FE7 | C2 24 0E : jp   nz,$0E22
            2FEA | C3 55 0E : jp   $0E53
            -->
        </script>
        <script state="off">
            <action>cpu1.md@0E4F = CF2041CB        </action>
            <action>cpu1.mq@2FE0 = FFFFFFFFFFFFFFFF</action>
            <action>cpu1.mq@2FE8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x08">01 (slow)</item>
            <item value="0x06">02       </item>
            <item value="0x04">03       </item>
            <item value="0x02">04       </item>
            <item value="0x00">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>cpu1.mb@0D86 = param</action>
            <action>cpu1.mb@0DA0 = param</action>
            <action>cpu1.mb@0DAF = param</action>
            <action>cpu1.mb@0DBE = param</action>
        </script>
        <script state="off">
            <action>cpu1.mb@0D86 = 03</action>
            <action>cpu1.mb@0DA0 = 02</action>
            <action>cpu1.mb@0DAF = 04</action>
            <action>cpu1.mb@0DBE = 02</action>
        </script>
    </cheat>

    <cheat desc="enemy speed">
        <parameter>
            <item value="0x08">01 (slow)</item>
            <item value="0x06">02       </item>
            <item value="0x04">03       </item>
            <item value="0x02">04       </item>
            <item value="0x00">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>cpu1.mb@0C17 = param</action>
            <action>cpu1.mb@0C77 = param</action>
            <action>cpu1.mb@0D4B = param</action>
        </script>
        <script state="off">
            <action>cpu1.mb@0C17 = 03</action>
            <action>cpu1.mb@0C77 = 02</action>
            <action>cpu1.mb@0D4B = 04</action>
        </script>
    </cheat>

    <cheat desc="move manually (test)">
        <!-- invalid red dots appear in small mode -->
        <script state="on">
            <action>cpu1.mw@0DE3 = 2FF0            </action>
            <action>cpu1.mq@2FF0 = C90DFFC4780FE647</action>
            <!--
            2FF0 | 47       : ld   b,a
            2FF1 | E6 0F    : and  $0F
            2FF3 | 78       : ld   a,b
            2FF4 | C4 FF 0D : call nz,$0DFF
            2FF7 | C9       : ret
            -->
        </script>
        <script state="off">
            <action>cpu1.mw@0DE5 = 0DFF            </action>
            <action>cpu1.mq@2FF0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>cpu1.mq@0133 = 80E658003A410121</action>
            <action>cpu1.mq@013B = BEB01FE650003A47</action>
            <action>cpu1.mq@0143 = 012002FE2BED2877</action>
            <action>cpu1.mq@014B = 08FE34012001FE35</action>
            <action>cpu1.mq@0153 = 04FE0618F03E0420</action>
            <action>cpu1.mq@015B = 48187786103E0620</action>
            <action>cpu1.mq@0163 = 7021F57E3D2010FE</action>
            <action>cpu1.mq@016B = F11277AF41801141</action>
            <action>cpu1.mq@0173 = 3DEB09D6033809FE</action>
            <action>cpu1.mq@017B = CB02203DC6CB0220</action>
            <action>cpu1.mq@0183 = 203DD6CB02203DCE</action>
            <action>cpu1.mq@018B = E6CB02203DDECB02</action>
            <action>cpu1.mq@0193 = 02203DEECB02203D</action>
            <action>cpu1.mq@019B = 18FECB02203DF6CB</action>
            <action>cpu1.mq@01A3 = 27E1CD0D2080FE11</action>
            <action>cpu1.mq@01AB = 2300364170212006</action>
            <action>cpu1.mq@01B3 = 0000000133C3FB10</action>
            <!--
            0133 | 21 01 41 : ld   hl,$4101  // temporary input address
            0136 | 3A 00 58 : ld   a,($5800) // read start button
            0139 | E6 80    : and  $80
            013B | 47       : ld   b,a
            013C | 3A 00 50 : ld   a,($5000) // read other inputs
            013F | E6 1F    : and  $1F
            0141 | B0       : or   b
            0142 | BE       : cp   (hl)
            0143 | 77       : ld   (hl),a
            0144 | 28 ED    : jr   z,$0133
            0146 | 2B       : dec  hl        // sound code address ($4100)
            0147 | FE 02    : cp   $02
            0149 | 20 01    : jr   nz,$014C
            014B | 35       : dec  (hl)      // decrease code -01
            014C | FE 01    : cp   $01
            014E | 20 01    : jr   nz,$0151
            0150 | 34       : inc  (hl)      // increase code +01
            0151 | FE 08    : cp   $08
            0153 | 20 04    : jr   nz,$0159
            0155 | 3E F0    : ld   a,$F0     // decrease code -10
            0157 | 18 06    : jr   $015F
            0159 | FE 04    : cp   $04
            015B | 20 06    : jr   nz,$0163
            015D | 3E 10    : ld   a,$10     // increase code +10
            015F | 86       : add  a,(hl)
            0160 | 77       : ld   (hl),a
            0161 | 18 48    : jr   $01AB
            0163 | FE 10    : cp   $10
            0165 | 20 3D    : jr   nz,$01A4
            0167 | 7E       : ld   a,(hl)    // play sound
            0168 | F5       : push af
            0169 | 21 70 41 : ld   hl,$4170
            016C | 11 80 41 : ld   de,$4180
            016F | AF       : xor  a
            0170 | 77       : ld   (hl),a
            0171 | 12       : ld   (de),a
            0172 | F1       : pop  af
            0173 | FE 09    : cp   $09
            0175 | 38 03    : jr   c,$017A
            0177 | D6 09    : sub  $09
            0179 | EB       : ex   de,hl
            017A | 3D       : dec  a
            017B | 20 02    : jr   nz,$017F
            017D | CB C6    : set  0,(hl)
            017F | 3D       : dec  a
            0180 | 20 02    : jr   nz,$0184
            0182 | CB CE    : set  1,(hl)
            0184 | 3D       : dec  a
            0185 | 20 02    : jr   nz,$0189
            0187 | CB D6    : set  2,(hl)
            0189 | 3D       : dec  a
            018A | 20 02    : jr   nz,$018E
            018C | CB DE    : set  3,(hl)
            018E | 3D       : dec  a
            018F | 20 02    : jr   nz,$0193
            0191 | CB E6    : set  4,(hl)
            0193 | 3D       : dec  a
            0194 | 20 02    : jr   nz,$0198
            0196 | CB EE    : set  5,(hl)
            0198 | 3D       : dec  a
            0199 | 20 02    : jr   nz,$019D
            019B | CB F6    : set  6,(hl)
            019D | 3D       : dec  a
            019E | 20 02    : jr   nz,$01A2
            01A0 | CB FE    : set  7,(hl)
            01A2 | 18 11    : jr   $01B5
            01A4 | FE 80    : cp   $80
            01A6 | 20 0D    : jr   nz,$01B5
            01A8 | CD 7F 27 : call $27E1     // stop sound
            01AB | 06 20    : ld   b,$20
            01AD | 21 70 41 : ld   hl,$4170
            01B0 | 36 00    : ld   (hl),$00
            01B2 | 23       : inc  hl
            01B3 | 10 FB    : djnz $01B0
            01B5 | C3 33 01 : jp   $0133
            -->
        </script>
        <script state="run">
            <output format="----- route 16 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="P1 start : 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>cpu1.pb@4100</argument>
            </output>
        </script>
        <script state="off">
            <action>cpu1.mq@0133 = 253AF3430632FF3E</action>
            <action>cpu1.mq@013B = B0403F3A47AFCB40</action>
            <action>cpu1.mq@0143 = AFFB500032402532</action>
            <action>cpu1.mq@014B = C2A740203A406132</action>
            <action>cpu1.mq@0153 = 06FECB406121021D</action>
            <action>cpu1.mq@015B = FFCD050ECD180E1F</action>
            <action>cpu1.mq@0163 = 050ECD1F0E000622</action>
            <action>cpu1.mq@016B = 2BCDC220A740203A</action>
            <action>cpu1.mq@0173 = 4CCDFECB40612105</action>
            <action>cpu1.mq@017B = CD04F6CD0553CD05</action>
            <action>cpu1.mq@0183 = 0A14CD0AD0CD0744</action>
            <action>cpu1.mq@018B = D5CD05CDCD0A96CD</action>
            <action>cpu1.mq@0193 = 3E209BCD0A27CD05</action>
            <action>cpu1.mq@019B = 0432803E430232FF</action>
            <action>cpu1.mq@01A3 = 480021402332AF40</action>
            <action>cpu1.mq@01AB = 05287FCBFC20BE7E</action>
            <action>cpu1.mq@01B3 = 056ACDC6CB417021</action>
        </script>
    </cheat>

</mamecheat>
route16c.xml

Code: Select all

<!-- Route 16 (Centuri license, set 3, bootleg?) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <!-- enemy -->
            <action>cpu1.mb@147A = 00</action>
            <!-- bomb -->
            <action>cpu1.md@1383 = A72FD0CD        </action>
            <action>cpu1.mq@2FD0 = C9E1C840DD3A79CB</action>
            <!--
            2FD0 | CB 79    : bit  7,c
            2FD2 | 3A DD 40 : ld   a,($40DD)
            2FD5 | C8       : ret  z
            2FD6 | E1       : pop  hl
            2FD7 | C9       : ret
            -->
        </script>
        <script state="off">
            <action>cpu1.mb@147A = FF              </action>
            <action>cpu1.md@1383 = A740DD3A        </action>
            <action>cpu1.mq@2FD0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="walk through wall (test)">
        <!-- erase wall -->
        <script state="on">
            <action>cpu1.md@0E54 = 002FE0C3        </action>
            <action>cpu1.mq@2FE0 = C241CB0528A77DDD</action>
            <action>cpu1.mq@2FE8 = FFFFFF0E58C30E27</action>
            <!--
            2FE0 | DD 7D    : ld   a,ixl
            2FE2 | A7       : and  a
            2FE3 | 28 05    : jr   z,$2FEA
            2FE5 | CB 41    : bit  0,c
            2FE7 | C2 27 0E : jp   nz,$0E27
            2FEA | C3 58 0E : jp   $0E58
            -->
        </script>
        <script state="off">
            <action>cpu1.md@0E54 = CF2041CB        </action>
            <action>cpu1.mq@2FE0 = FFFFFFFFFFFFFFFF</action>
            <action>cpu1.mq@2FE8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x08">01 (slow)</item>
            <item value="0x06">02       </item>
            <item value="0x04">03       </item>
            <item value="0x02">04       </item>
            <item value="0x00">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>cpu1.mb@0D93 = param</action>
            <action>cpu1.mb@0DAD = param</action>
            <action>cpu1.mb@0DBC = param</action>
            <action>cpu1.mb@0DCB = param</action>
        </script>
        <script state="off">
            <action>cpu1.mb@0D93 = 03</action>
            <action>cpu1.mb@0DAD = 02</action>
            <action>cpu1.mb@0DBC = 04</action>
            <action>cpu1.mb@0DCB = 02</action>
        </script>
    </cheat>

    <cheat desc="enemy speed">
        <parameter>
            <item value="0x08">01 (slow)</item>
            <item value="0x06">02       </item>
            <item value="0x04">03       </item>
            <item value="0x02">04       </item>
            <item value="0x00">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>cpu1.mb@0C24 = param</action>
            <action>cpu1.mb@0C84 = param</action>
            <action>cpu1.mb@0D58 = param</action>
        </script>
        <script state="off">
            <action>cpu1.mb@0C24 = 03</action>
            <action>cpu1.mb@0C84 = 02</action>
            <action>cpu1.mb@0D58 = 04</action>
        </script>
    </cheat>

    <cheat desc="move manually (test)">
        <!-- invalid red dots appear in small mode -->
        <script state="on">
            <action>cpu1.mw@0DF0 = 2FF0            </action>
            <action>cpu1.mq@2FF0 = C90E04C4780FE647</action>
            <!--
            2FF0 | 47       : ld   b,a
            2FF1 | E6 0F    : and  $0F
            2FF3 | 78       : ld   a,b
            2FF4 | C4 04 0E : call nz,$0E04
            2FF7 | C9       : ret
            -->
        </script>
        <script state="off">
            <action>cpu1.mw@0DF0 = 0E04            </action>
            <action>cpu1.mq@2FF0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>cpu1.mq@0133 = 80E658003A410121</action>
            <action>cpu1.mq@013B = BEB01FE650003A47</action>
            <action>cpu1.mq@0143 = 012002FE2BED2877</action>
            <action>cpu1.mq@014B = 08FE34012001FE35</action>
            <action>cpu1.mq@0153 = 04FE0618F03E0420</action>
            <action>cpu1.mq@015B = 48187786103E0620</action>
            <action>cpu1.mq@0163 = 7021F57E3D2010FE</action>
            <action>cpu1.mq@016B = F11277AF41801141</action>
            <action>cpu1.mq@0173 = 3DEB09D6033809FE</action>
            <action>cpu1.mq@017B = CB02203DC6CB0220</action>
            <action>cpu1.mq@0183 = 203DD6CB02203DCE</action>
            <action>cpu1.mq@018B = E6CB02203DDECB02</action>
            <action>cpu1.mq@0193 = 02203DEECB02203D</action>
            <action>cpu1.mq@019B = 18FECB02203DF6CB</action>
            <action>cpu1.mq@01A3 = 27E6CD0D2080FE11</action>
            <action>cpu1.mq@01AB = 2300364170212006</action>
            <action>cpu1.mq@01B3 = 0000000133C3FB10</action>
            <!--
            0133 | 21 01 41 : ld   hl,$4101  // temporary input address
            0136 | 3A 00 58 : ld   a,($5800) // read start button
            0139 | E6 80    : and  $80
            013B | 47       : ld   b,a
            013C | 3A 00 50 : ld   a,($5000) // read other inputs
            013F | E6 1F    : and  $1F
            0141 | B0       : or   b
            0142 | BE       : cp   (hl)
            0143 | 77       : ld   (hl),a
            0144 | 28 ED    : jr   z,$0133
            0146 | 2B       : dec  hl        // sound code address ($4100)
            0147 | FE 02    : cp   $02
            0149 | 20 01    : jr   nz,$014C
            014B | 35       : dec  (hl)      // decrease code -01
            014C | FE 01    : cp   $01
            014E | 20 01    : jr   nz,$0151
            0150 | 34       : inc  (hl)      // increase code +01
            0151 | FE 08    : cp   $08
            0153 | 20 04    : jr   nz,$0159
            0155 | 3E F0    : ld   a,$F0     // decrease code -10
            0157 | 18 06    : jr   $015F
            0159 | FE 04    : cp   $04
            015B | 20 06    : jr   nz,$0163
            015D | 3E 10    : ld   a,$10     // increase code +10
            015F | 86       : add  a,(hl)
            0160 | 77       : ld   (hl),a
            0161 | 18 48    : jr   $01AB
            0163 | FE 10    : cp   $10
            0165 | 20 3D    : jr   nz,$01A4
            0167 | 7E       : ld   a,(hl)    // play sound
            0168 | F5       : push af
            0169 | 21 70 41 : ld   hl,$4170
            016C | 11 80 41 : ld   de,$4180
            016F | AF       : xor  a
            0170 | 77       : ld   (hl),a
            0171 | 12       : ld   (de),a
            0172 | F1       : pop  af
            0173 | FE 09    : cp   $09
            0175 | 38 03    : jr   c,$017A
            0177 | D6 09    : sub  $09
            0179 | EB       : ex   de,hl
            017A | 3D       : dec  a
            017B | 20 02    : jr   nz,$017F
            017D | CB C6    : set  0,(hl)
            017F | 3D       : dec  a
            0180 | 20 02    : jr   nz,$0184
            0182 | CB CE    : set  1,(hl)
            0184 | 3D       : dec  a
            0185 | 20 02    : jr   nz,$0189
            0187 | CB D6    : set  2,(hl)
            0189 | 3D       : dec  a
            018A | 20 02    : jr   nz,$018E
            018C | CB DE    : set  3,(hl)
            018E | 3D       : dec  a
            018F | 20 02    : jr   nz,$0193
            0191 | CB E6    : set  4,(hl)
            0193 | 3D       : dec  a
            0194 | 20 02    : jr   nz,$0198
            0196 | CB EE    : set  5,(hl)
            0198 | 3D       : dec  a
            0199 | 20 02    : jr   nz,$019D
            019B | CB F6    : set  6,(hl)
            019D | 3D       : dec  a
            019E | 20 02    : jr   nz,$01A2
            01A0 | CB FE    : set  7,(hl)
            01A2 | 18 11    : jr   $01B5
            01A4 | FE 80    : cp   $80
            01A6 | 20 0D    : jr   nz,$01B5
            01A8 | CD 7F 27 : call $27E6     // stop sound
            01AB | 06 20    : ld   b,$20
            01AD | 21 70 41 : ld   hl,$4170
            01B0 | 36 00    : ld   (hl),$00
            01B2 | 23       : inc  hl
            01B3 | 10 FB    : djnz $01B0
            01B5 | C3 33 01 : jp   $0133
            -->
        </script>
        <script state="run">
            <output format="----- route 16 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="P1 start : 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>cpu1.pb@4100</argument>
            </output>
        </script>
        <script state="off">
            <action>cpu1.mq@0133 = 253AF3430632FF3E</action>
            <action>cpu1.mq@013B = B0403F3A47AFCB40</action>
            <action>cpu1.mq@0143 = AFFB500032402532</action>
            <action>cpu1.mq@014B = C2A740203A406132</action>
            <action>cpu1.mq@0153 = 06FECB406121021D</action>
            <action>cpu1.mq@015B = 04CD04FECD180E1F</action>
            <action>cpu1.mq@0163 = 04FECD1F0E000623</action>
            <action>cpu1.mq@016B = 1BCDC220A740203A</action>
            <action>cpu1.mq@0173 = 3CCDFECB40612105</action>
            <action>cpu1.mq@017B = CD04E6CD0543CD05</action>
            <action>cpu1.mq@0183 = 0A21CD0ADDCD0751</action>
            <action>cpu1.mq@018B = CECD05C6CD0AA3CD</action>
            <action>cpu1.mq@0193 = 3E20A0CD0A34CD05</action>
            <action>cpu1.mq@019B = 0432803E430232FF</action>
            <action>cpu1.mq@01A3 = 480021402332AF40</action>
            <action>cpu1.mq@01AB = 05287FCBFC20BE7E</action>
            <action>cpu1.mq@01B3 = 055ACDC6CB417021</action>
        </script>
    </cheat>

</mamecheat>
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[route16]+ Route 16

Post by jman »

route16bl.xml

Code: Select all

<!-- Route 16 (bootleg) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <!-- enemy -->
            <action>cpu1.mb@1473 = 00</action>
            <!-- bomb -->
            <action>cpu1.md@137C = A72F60CD        </action>
            <action>cpu1.mq@2F60 = C9E1C840DD3A79CB</action>
            <!--
            2F60 | CB 79    : bit  7,c
            2F62 | 3A DD 40 : ld   a,($40DD)
            2F65 | C8       : ret  z
            2F66 | E1       : pop  hl
            2F67 | C9       : ret
            -->
        </script>
        <script state="off">
            <action>cpu1.mb@1473 = FF              </action>
            <action>cpu1.md@137C = A740DD3A        </action>
            <action>cpu1.mq@2F60 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="walk through wall (test)">
        <!-- erase wall -->
        <script state="on">
            <action>cpu1.md@0E4D = 002F70C3        </action>
            <action>cpu1.mq@2F70 = C241CB0528A77DDD</action>
            <action>cpu1.mq@2F78 = FFFFFF0E51C30E20</action>
            <!--
            2F70 | DD 7D    : ld   a,ixl
            2F72 | A7       : and  a
            2F73 | 28 05    : jr   z,$2F7A
            2F75 | CB 41    : bit  0,c
            2F77 | C2 20 0E : jp   nz,$0E20
            2F7A | C3 51 0E : jp   $0E51
            -->
        </script>
        <script state="off">
            <action>cpu1.md@0E4D = CF2041CB        </action>
            <action>cpu1.mq@2F70 = FFFFFFFFFFFFFFFF</action>
            <action>cpu1.mq@2F78 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x08">01 (slow)</item>
            <item value="0x06">02       </item>
            <item value="0x04">03       </item>
            <item value="0x02">04       </item>
            <item value="0x00">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>cpu1.mb@0D84 = param</action>
            <action>cpu1.mb@0D9E = param</action>
            <action>cpu1.mb@0DAD = param</action>
            <action>cpu1.mb@0DBC = param</action>
        </script>
        <script state="off">
            <action>cpu1.mb@0D84 = 03</action>
            <action>cpu1.mb@0D9E = 02</action>
            <action>cpu1.mb@0DAD = 04</action>
            <action>cpu1.mb@0DBC = 02</action>
        </script>
    </cheat>

    <cheat desc="enemy speed">
        <parameter>
            <item value="0x08">01 (slow)</item>
            <item value="0x06">02       </item>
            <item value="0x04">03       </item>
            <item value="0x02">04       </item>
            <item value="0x00">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>cpu1.mb@0C15 = param</action>
            <action>cpu1.mb@0C75 = param</action>
            <action>cpu1.mb@0D49 = param</action>
        </script>
        <script state="off">
            <action>cpu1.mb@0C15 = 03</action>
            <action>cpu1.mb@0C75 = 02</action>
            <action>cpu1.mb@0D49 = 04</action>
        </script>
    </cheat>

    <cheat desc="move manually (test)">
        <!-- invalid red dots appear in small mode -->
        <script state="on">
            <action>cpu1.mw@0DE1 = 2F80            </action>
            <action>cpu1.mq@2F80 = C90DFDC4780FE647</action>
            <!--
            2F90 | 47       : ld   b,a
            2F91 | E6 0F    : and  $0F
            2F93 | 78       : ld   a,b
            2F94 | C4 FD 0D : call nz,$0DFD
            2F97 | C9       : ret
            -->
        </script>
        <script state="off">
            <action>cpu1.mw@0DE1 = 0DFD            </action>
            <action>cpu1.mq@2F80 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>cpu1.mq@0133 = 80E658003A410121</action>
            <action>cpu1.mq@013B = BEB01FE650003A47</action>
            <action>cpu1.mq@0143 = 012002FE2BED2877</action>
            <action>cpu1.mq@014B = 08FE34012001FE35</action>
            <action>cpu1.mq@0153 = 04FE0618F03E0420</action>
            <action>cpu1.mq@015B = 48187786103E0620</action>
            <action>cpu1.mq@0163 = 7021F57E3D2010FE</action>
            <action>cpu1.mq@016B = F11277AF41801141</action>
            <action>cpu1.mq@0173 = 3DEB09D6033809FE</action>
            <action>cpu1.mq@017B = CB02203DC6CB0220</action>
            <action>cpu1.mq@0183 = 203DD6CB02203DCE</action>
            <action>cpu1.mq@018B = E6CB02203DDECB02</action>
            <action>cpu1.mq@0193 = 02203DEECB02203D</action>
            <action>cpu1.mq@019B = 18FECB02203DF6CB</action>
            <action>cpu1.mq@01A3 = 277BCD0D2080FE11</action>
            <action>cpu1.mq@01AB = 2300364170212006</action>
            <action>cpu1.mq@01B3 = 0000000133C3FB10</action>
            <!--
            0133 | 21 01 41 : ld   hl,$4101  // temporary input address
            0136 | 3A 00 58 : ld   a,($5800) // read start button
            0139 | E6 80    : and  $80
            013B | 47       : ld   b,a
            013C | 3A 00 50 : ld   a,($5000) // read other inputs
            013F | E6 1F    : and  $1F
            0141 | B0       : or   b
            0142 | BE       : cp   (hl)
            0143 | 77       : ld   (hl),a
            0144 | 28 ED    : jr   z,$0133
            0146 | 2B       : dec  hl        // sound code address ($4100)
            0147 | FE 02    : cp   $02
            0149 | 20 01    : jr   nz,$014C
            014B | 35       : dec  (hl)      // decrease code -01
            014C | FE 01    : cp   $01
            014E | 20 01    : jr   nz,$0151
            0150 | 34       : inc  (hl)      // increase code +01
            0151 | FE 08    : cp   $08
            0153 | 20 04    : jr   nz,$0159
            0155 | 3E F0    : ld   a,$F0     // decrease code -10
            0157 | 18 06    : jr   $015F
            0159 | FE 04    : cp   $04
            015B | 20 06    : jr   nz,$0163
            015D | 3E 10    : ld   a,$10     // increase code +10
            015F | 86       : add  a,(hl)
            0160 | 77       : ld   (hl),a
            0161 | 18 48    : jr   $01AB
            0163 | FE 10    : cp   $10
            0165 | 20 3D    : jr   nz,$01A4
            0167 | 7E       : ld   a,(hl)    // play sound
            0168 | F5       : push af
            0169 | 21 70 41 : ld   hl,$4170
            016C | 11 80 41 : ld   de,$4180
            016F | AF       : xor  a
            0170 | 77       : ld   (hl),a
            0171 | 12       : ld   (de),a
            0172 | F1       : pop  af
            0173 | FE 09    : cp   $09
            0175 | 38 03    : jr   c,$017A
            0177 | D6 09    : sub  $09
            0179 | EB       : ex   de,hl
            017A | 3D       : dec  a
            017B | 20 02    : jr   nz,$017F
            017D | CB C6    : set  0,(hl)
            017F | 3D       : dec  a
            0180 | 20 02    : jr   nz,$0184
            0182 | CB CE    : set  1,(hl)
            0184 | 3D       : dec  a
            0185 | 20 02    : jr   nz,$0189
            0187 | CB D6    : set  2,(hl)
            0189 | 3D       : dec  a
            018A | 20 02    : jr   nz,$018E
            018C | CB DE    : set  3,(hl)
            018E | 3D       : dec  a
            018F | 20 02    : jr   nz,$0193
            0191 | CB E6    : set  4,(hl)
            0193 | 3D       : dec  a
            0194 | 20 02    : jr   nz,$0198
            0196 | CB EE    : set  5,(hl)
            0198 | 3D       : dec  a
            0199 | 20 02    : jr   nz,$019D
            019B | CB F6    : set  6,(hl)
            019D | 3D       : dec  a
            019E | 20 02    : jr   nz,$01A2
            01A0 | CB FE    : set  7,(hl)
            01A2 | 18 11    : jr   $01B5
            01A4 | FE 80    : cp   $80
            01A6 | 20 0D    : jr   nz,$01B5
            01A8 | CD 7B 27 : call $277B     // stop sound
            01AB | 06 20    : ld   b,$20
            01AD | 21 70 41 : ld   hl,$4170
            01B0 | 36 00    : ld   (hl),$00
            01B2 | 23       : inc  hl
            01B3 | 10 FB    : djnz $01B0
            01B5 | C3 33 01 : jp   $0133
            -->
        </script>
        <script state="run">
            <output format="----- route 16 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="P1 start : 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>cpu1.pb@4100</argument>
            </output>
        </script>
        <script state="off">
            <action>cpu1.mq@0133 = 253AF3430632FF3E</action>
            <action>cpu1.mq@013B = B0403F3A47AFCB40</action>
            <action>cpu1.mq@0143 = AFFB500032402532</action>
            <action>cpu1.mq@014B = C2A740203A406132</action>
            <action>cpu1.mq@0153 = 06FECB406121021D</action>
            <action>cpu1.mq@015B = FDCD050ECD180E1F</action>
            <action>cpu1.mq@0163 = 050ECD1F0E000622</action>
            <action>cpu1.mq@016B = 2BCDC220A740203A</action>
            <action>cpu1.mq@0173 = 4CCDFECB40612105</action>
            <action>cpu1.mq@017B = CD04F6CD0553CD05</action>
            <action>cpu1.mq@0183 = 0A14CD0AD0CD0744</action>
            <action>cpu1.mq@018B = D5CD05CDCD0A96CD</action>
            <action>cpu1.mq@0193 = 3E2099CD0A27CD05</action>
            <action>cpu1.mq@019B = 0432803E430232FF</action>
            <action>cpu1.mq@01A3 = 480021402332AF40</action>
            <action>cpu1.mq@01AB = 05287FCBFC20BE7E</action>
            <action>cpu1.mq@01B3 = 056ACDC6CB417021</action>
        </script>
    </cheat>

</mamecheat>
routex.xml

Code: Select all

<!-- Route X (bootleg, set 1) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <!-- enemy -->
            <action>cpu1.mb@1473 = 00</action>
            <!-- bomb -->
            <action>cpu1.md@137C = A72F60CD        </action>
            <action>cpu1.mq@2F60 = C9E1C840DD3A79CB</action>
            <!--
            2F60 | CB 79    : bit  7,c
            2F62 | 3A DD 40 : ld   a,($40DD)
            2F65 | C8       : ret  z
            2F66 | E1       : pop  hl
            2F67 | C9       : ret
            -->
        </script>
        <script state="off">
            <action>cpu1.mb@1473 = FF              </action>
            <action>cpu1.md@137C = A740DD3A        </action>
            <action>cpu1.mq@2F60 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="walk through wall (test)">
        <!-- erase wall -->
        <script state="on">
            <action>cpu1.md@0E4D = 002F70C3        </action>
            <action>cpu1.mq@2F70 = C241CB0528A77DDD</action>
            <action>cpu1.mq@2F78 = FFFFFF0E51C30E20</action>
            <!--
            2F70 | DD 7D    : ld   a,ixl
            2F72 | A7       : and  a
            2F73 | 28 05    : jr   z,$2F7A
            2F75 | CB 41    : bit  0,c
            2F77 | C2 20 0E : jp   nz,$0E20
            2F7A | C3 51 0E : jp   $0E51
            -->
        </script>
        <script state="off">
            <action>cpu1.md@0E4D = CF2041CB        </action>
            <action>cpu1.mq@2F70 = FFFFFFFFFFFFFFFF</action>
            <action>cpu1.mq@2F78 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x08">01 (slow)</item>
            <item value="0x06">02       </item>
            <item value="0x04">03       </item>
            <item value="0x02">04       </item>
            <item value="0x00">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>cpu1.mb@0D84 = param</action>
            <action>cpu1.mb@0D9E = param</action>
            <action>cpu1.mb@0DAD = param</action>
            <action>cpu1.mb@0DBC = param</action>
        </script>
        <script state="off">
            <action>cpu1.mb@0D84 = 03</action>
            <action>cpu1.mb@0D9E = 02</action>
            <action>cpu1.mb@0DAD = 04</action>
            <action>cpu1.mb@0DBC = 02</action>
        </script>
    </cheat>

    <cheat desc="enemy speed">
        <parameter>
            <item value="0x08">01 (slow)</item>
            <item value="0x06">02       </item>
            <item value="0x04">03       </item>
            <item value="0x02">04       </item>
            <item value="0x00">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>cpu1.mb@0C15 = param</action>
            <action>cpu1.mb@0C75 = param</action>
            <action>cpu1.mb@0D49 = param</action>
        </script>
        <script state="off">
            <action>cpu1.mb@0C15 = 03</action>
            <action>cpu1.mb@0C75 = 02</action>
            <action>cpu1.mb@0D49 = 04</action>
        </script>
    </cheat>

    <cheat desc="move manually (test)">
        <!-- invalid red dots appear in small mode -->
        <script state="on">
            <action>cpu1.mw@0DE1 = 2F80            </action>
            <action>cpu1.mq@2F80 = C90DFDC4780FE647</action>
            <!--
            2F90 | 47       : ld   b,a
            2F91 | E6 0F    : and  $0F
            2F93 | 78       : ld   a,b
            2F94 | C4 FD 0D : call nz,$0DFD
            2F97 | C9       : ret
            -->
        </script>
        <script state="off">
            <action>cpu1.mw@0DE1 = 0DFD            </action>
            <action>cpu1.mq@2F80 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>cpu1.mq@0133 = 80E658003A410121</action>
            <action>cpu1.mq@013B = BEB01FE650003A47</action>
            <action>cpu1.mq@0143 = 012002FE2BED2877</action>
            <action>cpu1.mq@014B = 08FE34012001FE35</action>
            <action>cpu1.mq@0153 = 04FE0618F03E0420</action>
            <action>cpu1.mq@015B = 48187786103E0620</action>
            <action>cpu1.mq@0163 = 7021F57E3D2010FE</action>
            <action>cpu1.mq@016B = F11277AF41801141</action>
            <action>cpu1.mq@0173 = 3DEB09D6033809FE</action>
            <action>cpu1.mq@017B = CB02203DC6CB0220</action>
            <action>cpu1.mq@0183 = 203DD6CB02203DCE</action>
            <action>cpu1.mq@018B = E6CB02203DDECB02</action>
            <action>cpu1.mq@0193 = 02203DEECB02203D</action>
            <action>cpu1.mq@019B = 18FECB02203DF6CB</action>
            <action>cpu1.mq@01A3 = 277BCD0D2080FE11</action>
            <action>cpu1.mq@01AB = 2300364170212006</action>
            <action>cpu1.mq@01B3 = 0000000133C3FB10</action>
            <!--
            0133 | 21 01 41 : ld   hl,$4101  // temporary input address
            0136 | 3A 00 58 : ld   a,($5800) // read start button
            0139 | E6 80    : and  $80
            013B | 47       : ld   b,a
            013C | 3A 00 50 : ld   a,($5000) // read other inputs
            013F | E6 1F    : and  $1F
            0141 | B0       : or   b
            0142 | BE       : cp   (hl)
            0143 | 77       : ld   (hl),a
            0144 | 28 ED    : jr   z,$0133
            0146 | 2B       : dec  hl        // sound code address ($4100)
            0147 | FE 02    : cp   $02
            0149 | 20 01    : jr   nz,$014C
            014B | 35       : dec  (hl)      // decrease code -01
            014C | FE 01    : cp   $01
            014E | 20 01    : jr   nz,$0151
            0150 | 34       : inc  (hl)      // increase code +01
            0151 | FE 08    : cp   $08
            0153 | 20 04    : jr   nz,$0159
            0155 | 3E F0    : ld   a,$F0     // decrease code -10
            0157 | 18 06    : jr   $015F
            0159 | FE 04    : cp   $04
            015B | 20 06    : jr   nz,$0163
            015D | 3E 10    : ld   a,$10     // increase code +10
            015F | 86       : add  a,(hl)
            0160 | 77       : ld   (hl),a
            0161 | 18 48    : jr   $01AB
            0163 | FE 10    : cp   $10
            0165 | 20 3D    : jr   nz,$01A4
            0167 | 7E       : ld   a,(hl)    // play sound
            0168 | F5       : push af
            0169 | 21 70 41 : ld   hl,$4170
            016C | 11 80 41 : ld   de,$4180
            016F | AF       : xor  a
            0170 | 77       : ld   (hl),a
            0171 | 12       : ld   (de),a
            0172 | F1       : pop  af
            0173 | FE 09    : cp   $09
            0175 | 38 03    : jr   c,$017A
            0177 | D6 09    : sub  $09
            0179 | EB       : ex   de,hl
            017A | 3D       : dec  a
            017B | 20 02    : jr   nz,$017F
            017D | CB C6    : set  0,(hl)
            017F | 3D       : dec  a
            0180 | 20 02    : jr   nz,$0184
            0182 | CB CE    : set  1,(hl)
            0184 | 3D       : dec  a
            0185 | 20 02    : jr   nz,$0189
            0187 | CB D6    : set  2,(hl)
            0189 | 3D       : dec  a
            018A | 20 02    : jr   nz,$018E
            018C | CB DE    : set  3,(hl)
            018E | 3D       : dec  a
            018F | 20 02    : jr   nz,$0193
            0191 | CB E6    : set  4,(hl)
            0193 | 3D       : dec  a
            0194 | 20 02    : jr   nz,$0198
            0196 | CB EE    : set  5,(hl)
            0198 | 3D       : dec  a
            0199 | 20 02    : jr   nz,$019D
            019B | CB F6    : set  6,(hl)
            019D | 3D       : dec  a
            019E | 20 02    : jr   nz,$01A2
            01A0 | CB FE    : set  7,(hl)
            01A2 | 18 11    : jr   $01B5
            01A4 | FE 80    : cp   $80
            01A6 | 20 0D    : jr   nz,$01B5
            01A8 | CD 7B 27 : call $277B     // stop sound
            01AB | 06 20    : ld   b,$20
            01AD | 21 70 41 : ld   hl,$4170
            01B0 | 36 00    : ld   (hl),$00
            01B2 | 23       : inc  hl
            01B3 | 10 FB    : djnz $01B0
            01B5 | C3 33 01 : jp   $0133
            -->
        </script>
        <script state="run">
            <output format="----- route x 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="P1 start : 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>cpu1.pb@4100</argument>
            </output>
        </script>
        <script state="off">
            <action>cpu1.mq@0133 = 253AF3430632FF3E</action>
            <action>cpu1.mq@013B = B0403F3A47AFCB40</action>
            <action>cpu1.mq@0143 = AFFB500032402532</action>
            <action>cpu1.mq@014B = C2A740203A406132</action>
            <action>cpu1.mq@0153 = 06FECB406121021D</action>
            <action>cpu1.mq@015B = FDCD050ECD180E1F</action>
            <action>cpu1.mq@0163 = 050ECD1F0E000622</action>
            <action>cpu1.mq@016B = 2BCDC220A740203A</action>
            <action>cpu1.mq@0173 = 4CCDFECB40612105</action>
            <action>cpu1.mq@017B = CD04F6CD0553CD05</action>
            <action>cpu1.mq@0183 = 0A14CD0AD0CD0744</action>
            <action>cpu1.mq@018B = D5CD05CDCD0A96CD</action>
            <action>cpu1.mq@0193 = 3E2099CD0A27CD05</action>
            <action>cpu1.mq@019B = 0432803E430232FF</action>
            <action>cpu1.mq@01A3 = 480021402332AF40</action>
            <action>cpu1.mq@01AB = 05287FCBFC20BE7E</action>
            <action>cpu1.mq@01B3 = 056ACDC6CB417021</action>
        </script>
    </cheat>

</mamecheat>
routexa.xml

Code: Select all

<!-- Route X (bootleg, set 2) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <!-- enemy -->
            <action>cpu1.mb@1473 = 00</action>
            <!-- bomb -->
            <action>cpu1.md@137C = A72F60CD        </action>
            <action>cpu1.mq@2F60 = C9E1C840DD3A79CB</action>
            <!--
            2F60 | CB 79    : bit  7,c
            2F62 | 3A DD 40 : ld   a,($40DD)
            2F65 | C8       : ret  z
            2F66 | E1       : pop  hl
            2F67 | C9       : ret
            -->
        </script>
        <script state="off">
            <action>cpu1.mb@1473 = FF              </action>
            <action>cpu1.md@137C = A740DD3A        </action>
            <action>cpu1.mq@2F60 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="walk through wall (test)">
        <!-- erase wall -->
        <script state="on">
            <action>cpu1.md@0E4D = 002F70C3        </action>
            <action>cpu1.mq@2F70 = C241CB0528A77DDD</action>
            <action>cpu1.mq@2F78 = FFFFFF0E51C30E20</action>
            <!--
            2F70 | DD 7D    : ld   a,ixl
            2F72 | A7       : and  a
            2F73 | 28 05    : jr   z,$2F7A
            2F75 | CB 41    : bit  0,c
            2F77 | C2 20 0E : jp   nz,$0E20
            2F7A | C3 51 0E : jp   $0E51
            -->
        </script>
        <script state="off">
            <action>cpu1.md@0E4D = CF2041CB        </action>
            <action>cpu1.mq@2F70 = FFFFFFFFFFFFFFFF</action>
            <action>cpu1.mq@2F78 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x08">01 (slow)</item>
            <item value="0x06">02       </item>
            <item value="0x04">03       </item>
            <item value="0x02">04       </item>
            <item value="0x00">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>cpu1.mb@0D84 = param</action>
            <action>cpu1.mb@0D9E = param</action>
            <action>cpu1.mb@0DAD = param</action>
            <action>cpu1.mb@0DBC = param</action>
        </script>
        <script state="off">
            <action>cpu1.mb@0D84 = 03</action>
            <action>cpu1.mb@0D9E = 02</action>
            <action>cpu1.mb@0DAD = 04</action>
            <action>cpu1.mb@0DBC = 02</action>
        </script>
    </cheat>

    <cheat desc="enemy speed">
        <parameter>
            <item value="0x08">01 (slow)</item>
            <item value="0x06">02       </item>
            <item value="0x04">03       </item>
            <item value="0x02">04       </item>
            <item value="0x00">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>cpu1.mb@0C15 = param</action>
            <action>cpu1.mb@0C75 = param</action>
            <action>cpu1.mb@0D49 = param</action>
        </script>
        <script state="off">
            <action>cpu1.mb@0C15 = 03</action>
            <action>cpu1.mb@0C75 = 02</action>
            <action>cpu1.mb@0D49 = 04</action>
        </script>
    </cheat>

    <cheat desc="move manually (test)">
        <!-- invalid red dots appear in small mode -->
        <script state="on">
            <action>cpu1.mw@0DE1 = 2F80            </action>
            <action>cpu1.mq@2F80 = C90DFDC4780FE647</action>
            <!--
            2F90 | 47       : ld   b,a
            2F91 | E6 0F    : and  $0F
            2F93 | 78       : ld   a,b
            2F94 | C4 FD 0D : call nz,$0DFD
            2F97 | C9       : ret
            -->
        </script>
        <script state="off">
            <action>cpu1.mw@0DE1 = 0DFD            </action>
            <action>cpu1.mq@2F80 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>cpu1.mq@0133 = 80E658003A410121</action>
            <action>cpu1.mq@013B = BEB01FE650003A47</action>
            <action>cpu1.mq@0143 = 012002FE2BED2877</action>
            <action>cpu1.mq@014B = 08FE34012001FE35</action>
            <action>cpu1.mq@0153 = 04FE0618F03E0420</action>
            <action>cpu1.mq@015B = 48187786103E0620</action>
            <action>cpu1.mq@0163 = 7021F57E3D2010FE</action>
            <action>cpu1.mq@016B = F11277AF41801141</action>
            <action>cpu1.mq@0173 = 3DEB09D6033809FE</action>
            <action>cpu1.mq@017B = CB02203DC6CB0220</action>
            <action>cpu1.mq@0183 = 203DD6CB02203DCE</action>
            <action>cpu1.mq@018B = E6CB02203DDECB02</action>
            <action>cpu1.mq@0193 = 02203DEECB02203D</action>
            <action>cpu1.mq@019B = 18FECB02203DF6CB</action>
            <action>cpu1.mq@01A3 = 277BCD0D2080FE11</action>
            <action>cpu1.mq@01AB = 2300364170212006</action>
            <action>cpu1.mq@01B3 = 0000000133C3FB10</action>
            <!--
            0133 | 21 01 41 : ld   hl,$4101  // temporary input address
            0136 | 3A 00 58 : ld   a,($5800) // read start button
            0139 | E6 80    : and  $80
            013B | 47       : ld   b,a
            013C | 3A 00 50 : ld   a,($5000) // read other inputs
            013F | E6 1F    : and  $1F
            0141 | B0       : or   b
            0142 | BE       : cp   (hl)
            0143 | 77       : ld   (hl),a
            0144 | 28 ED    : jr   z,$0133
            0146 | 2B       : dec  hl        // sound code address ($4100)
            0147 | FE 02    : cp   $02
            0149 | 20 01    : jr   nz,$014C
            014B | 35       : dec  (hl)      // decrease code -01
            014C | FE 01    : cp   $01
            014E | 20 01    : jr   nz,$0151
            0150 | 34       : inc  (hl)      // increase code +01
            0151 | FE 08    : cp   $08
            0153 | 20 04    : jr   nz,$0159
            0155 | 3E F0    : ld   a,$F0     // decrease code -10
            0157 | 18 06    : jr   $015F
            0159 | FE 04    : cp   $04
            015B | 20 06    : jr   nz,$0163
            015D | 3E 10    : ld   a,$10     // increase code +10
            015F | 86       : add  a,(hl)
            0160 | 77       : ld   (hl),a
            0161 | 18 48    : jr   $01AB
            0163 | FE 10    : cp   $10
            0165 | 20 3D    : jr   nz,$01A4
            0167 | 7E       : ld   a,(hl)    // play sound
            0168 | F5       : push af
            0169 | 21 70 41 : ld   hl,$4170
            016C | 11 80 41 : ld   de,$4180
            016F | AF       : xor  a
            0170 | 77       : ld   (hl),a
            0171 | 12       : ld   (de),a
            0172 | F1       : pop  af
            0173 | FE 09    : cp   $09
            0175 | 38 03    : jr   c,$017A
            0177 | D6 09    : sub  $09
            0179 | EB       : ex   de,hl
            017A | 3D       : dec  a
            017B | 20 02    : jr   nz,$017F
            017D | CB C6    : set  0,(hl)
            017F | 3D       : dec  a
            0180 | 20 02    : jr   nz,$0184
            0182 | CB CE    : set  1,(hl)
            0184 | 3D       : dec  a
            0185 | 20 02    : jr   nz,$0189
            0187 | CB D6    : set  2,(hl)
            0189 | 3D       : dec  a
            018A | 20 02    : jr   nz,$018E
            018C | CB DE    : set  3,(hl)
            018E | 3D       : dec  a
            018F | 20 02    : jr   nz,$0193
            0191 | CB E6    : set  4,(hl)
            0193 | 3D       : dec  a
            0194 | 20 02    : jr   nz,$0198
            0196 | CB EE    : set  5,(hl)
            0198 | 3D       : dec  a
            0199 | 20 02    : jr   nz,$019D
            019B | CB F6    : set  6,(hl)
            019D | 3D       : dec  a
            019E | 20 02    : jr   nz,$01A2
            01A0 | CB FE    : set  7,(hl)
            01A2 | 18 11    : jr   $01B5
            01A4 | FE 80    : cp   $80
            01A6 | 20 0D    : jr   nz,$01B5
            01A8 | CD 7B 27 : call $277B     // stop sound
            01AB | 06 20    : ld   b,$20
            01AD | 21 70 41 : ld   hl,$4170
            01B0 | 36 00    : ld   (hl),$00
            01B2 | 23       : inc  hl
            01B3 | 10 FB    : djnz $01B0
            01B5 | C3 33 01 : jp   $0133
            -->
        </script>
        <script state="run">
            <output format="----- route x 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="P1 start : 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>cpu1.pb@4100</argument>
            </output>
        </script>
        <script state="off">
            <action>cpu1.mq@0133 = 80E658003A410121</action>
            <action>cpu1.mq@013B = BEB01FE650003A47</action>
            <action>cpu1.mq@0143 = 012002FE2BED2877</action>
            <action>cpu1.mq@014B = 08FE34012001FE35</action>
            <action>cpu1.mq@0153 = 04FE0618F03E0420</action>
            <action>cpu1.mq@015B = 48187786103E0620</action>
            <action>cpu1.mq@0163 = 7021F57E3D2010FE</action>
            <action>cpu1.mq@016B = F11277AF41801141</action>
            <action>cpu1.mq@0173 = 3DEB09D6033809FE</action>
            <action>cpu1.mq@017B = CB02203DC6CB0220</action>
            <action>cpu1.mq@0183 = 203DD6CB02203DCE</action>
            <action>cpu1.mq@018B = E6CB02203DDECB02</action>
            <action>cpu1.mq@0193 = 02203DEECB02203D</action>
            <action>cpu1.mq@019B = 18FECB02203DF6CB</action>
            <action>cpu1.mq@01A3 = 277BCD0D2080FE11</action>
            <action>cpu1.mq@01AB = 2300364170212006</action>
            <action>cpu1.mq@01B3 = 0000000133C3FB10</action>
        </script>
    </cheat>

</mamecheat>
Post Reply