[timeplt]+ Time Pilot

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: 1242
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 9 times

[timeplt]+ Time Pilot

Post by jman »

timeplt.xml

Code: Select all

<!-- Time Pilot -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@50A1 = C9</action> <!-- middle enemy -->
            <action>maincpu.mb@50DE = C9</action> <!-- boss -->
            <action>maincpu.mb@5111 = C9</action> <!-- boss -->
            <action>maincpu.mb@513C = 18</action> <!-- missile -->
            <action>maincpu.mb@516F = 18</action> <!-- enemy -->
            <action>maincpu.mb@51A0 = 18</action> <!-- bullet -->
        </script>
        <script state="off">
            <action>maincpu.mb@50A1 = D0</action>
            <action>maincpu.mb@50DE = D0</action>
            <action>maincpu.mb@5111 = D0</action>
            <action>maincpu.mb@513C = 30</action>
            <action>maincpu.mb@516F = 30</action>
            <action>maincpu.mb@51A0 = 30</action>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <script state="on">
            <action>maincpu.md@23F4 = 0A1867CB</action> <!-- button check -->
            <action>maincpu.mb@2405 = 28      </action> <!-- button check -->
            <action>maincpu.mb@2495 = 03      </action> <!-- fire interval -->
        </script>
        <script state="off">
            <action>maincpu.md@23F4 = 07070707</action>
            <action>maincpu.mb@2405 = 20      </action>
            <action>maincpu.mb@2495 = 06      </action>
        </script>
    </cheat>

    <cheat desc="direct turn">
        <script state="on">
            <action>maincpu.md@1F6A = 18AF80CD</action>
            <action>maincpu.md@1F71 = 18AF80CD</action>
        </script>
        <script state="run">
            <action>maincpu.pq@AF80 = AF8F210FE61ED1CD</action>
            <action>maincpu.pq@AF88 = 00C9A802327E6F85</action>
            <action>maincpu.pq@AF90 = 4000A0E0C0008000</action>
            <action>maincpu.pq@AF98 = 0000000000006020</action>
            <!--
            AF80 | CD D1 1E : call $1ED1     // read input
            AF83 | E6 0F    : and  $0F
            AF85 | 21 8F AF : ld   hl,$AF8F
            AF88 | 85       : add  a,l
            AF89 | 6F       : ld   l,a
            AF8A | 7E       : ld   a,(hl)    // convert input to direction
            AF8B | 32 02 A8 : ld   ($A802),a
            AF8E | C9       : ret
            AF8F - AF99     : input/direction convertion table
               input  direction
                 01     00      : left
                 02     80      : right
                 04     C0      : up
                 05     E0      : upper-left
                 06     A0      : upper-right
                 08     40      : down
                 09     20      : lower-left
                 0A     60      : lower-right
            -->
        </script>
        <script state="off">
            <action>maincpu.md@1F6A = 18A80232        </action>
            <action>maincpu.md@1F71 = 18A80232        </action>
            <action>maincpu.pq@AF88 = 0000000000000000</action>
            <action>maincpu.pq@AF90 = 0000000000000000</action>
            <action>maincpu.pq@AF98 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mb@1601 = C9              </action> <!-- disable next sequence at boot -->
            <action>maincpu.mw@55DF = 560B            </action> <!-- disable auto sound stop? -->
            <action>maincpu.mw@588D = 1218            </action> <!-- skip rom check -->
            <action>maincpu.mw@00AF = 5A00            </action>
            <action>maincpu.mq@5A00 = 803AC20032AA0021</action>
            <action>maincpu.mq@5A08 = 3A4F070708E62FC3</action>
            <action>maincpu.mq@5A10 = 47B8B11FE62FC320</action>
            <action>maincpu.mq@5A18 = FE35012001FEE928</action>
            <action>maincpu.mq@5A20 = 042008FE34012002</action>
            <action>maincpu.mq@5A28 = 052004FE0618F03E</action>
            <action>maincpu.mq@5A30 = 2010FE787786103E</action>
            <action>maincpu.mq@5A38 = 132020FE05187E03</action>
            <action>maincpu.mq@5A40 = 0432013EC00032AF</action>
            <action>maincpu.mq@5A48 = AF000000000000C3</action>
            <action>maincpu.mq@5A50 = 000000AE18C30432</action>
            <!--
            5A00 | 21 00 AA : ld   hl,$AA00  // sound code address
            5A03 | 32 00 C2 : ld   ($C200),a // watchdog
            5A06 | 3A 80 C3 : ld   a,($C380) // read start button
            5A09 | 2F       : cpl
            5A0A | E6 08    : and  $08
            5A0C | 07       : rlca
            5A0D | 07       : rlca
            5A0E | 4F       : ld   c,a
            5A0F | 3A 20 C3 : ld   a,($C320) // read other inputs
            5A12 | 2F       : cpl
            5A13 | E6 1F    : and  $1F
            5A15 | B1       : or   c
            5A16 | B8       : cp   b
            5A17 | 47       : ld   b,a
            5A18 | 28 E9    : jr   z,$5A03
            5A1A | FE 01    : cp   $01
            5A1C | 20 01    : jr   nz,$5A1F
            5A1E | 35       : dec  (hl)      // decrease code -01
            5A1F | FE 02    : cp   $02
            5A21 | 20 01    : jr   nz,$5A24
            5A23 | 34       : inc  (hl)      // increase code +01
            5A24 | FE 08    : cp   $08
            5A26 | 20 04    : jr   nz,$5A2C
            5A28 | 3E F0    : ld   a,$F0     // decrease code -10
            5A2A | 18 06    : jr   $5A32
            5A2C | FE 04    : cp   $04
            5A2E | 20 05    : jr   nz,$5A35
            5A30 | 3E 10    : ld   a,$10     // increase code +10
            5A32 | 86       : add  a,(hl)
            5A33 | 77       : ld   (hl),a
            5A34 | 78       : ld   a,b
            5A35 | FE 10    : cp   $10
            5A37 | 20 03    : jr   nz,$5A3C
            5A39 | 7E       : ld   a,(hl)    // play sound
            5A3A | 18 05    : jr   $5A41
            5A3C | FE 20    : cp   $20
            5A3E | 20 13    : jr   nz,$5A53
            5A40 | AF       : xor  a         // stop sound
            5A41 | 32 00 C0 : ld   ($C000),a // send sound code
            5A44 | 3E 01    : ld   a,$01
            5A46 | 32 04 C3 : ld   ($C304),a
            5A49 | 00       : nop
            5A4A | 00       : nop
            5A4B | 00       : nop
            5A4C | 00       : nop
            5A4D | 00       : nop
            5A4E | 00       : nop
            5A4F | AF       : xor  a
            5A50 | 32 04 C3 : ld   ($C304),a
            5A53 | 18 AE    : jr   $5A03
            -->
        </script>
        <script state="run">
            <output format="----- 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="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>maincpu.pb@AA00</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mb@1601 = C0              </action>
            <action>maincpu.mw@55DF = 55F8            </action>
            <action>maincpu.mw@588D = 2386            </action>
            <action>maincpu.mw@00AF = 0B93            </action>
            <action>maincpu.mq@5A00 = A200A500A800A900</action>
            <action>maincpu.mq@5A08 = 98009B009E00A100</action>
            <action>maincpu.mq@5A10 = 9000910094009700</action>
            <action>maincpu.mq@5A18 = 8500880089008D00</action>
            <action>maincpu.mq@5A20 = 78007B007F008100</action>
            <action>maincpu.mq@5A28 = 68006D0070007600</action>
            <action>maincpu.mq@5A30 = 58005C0060006300</action>
            <action>maincpu.mq@5A38 = 430049004E005200</action>
            <action>maincpu.mq@5A40 = 2C00320039003E00</action>
            <action>maincpu.mq@5A48 = 14001A0020002700</action>
            <action>maincpu.mq@5A50 = 0000000008000E00</action>
        </script>
    </cheat>

</mamecheat>
timepltc.xml

Code: Select all

<!-- Time Pilot (Centuri) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@50BD = C9</action> <!-- middle enemy -->
            <action>maincpu.mb@50FA = C9</action> <!-- boss -->
            <action>maincpu.mb@512D = C9</action> <!-- boss -->
            <action>maincpu.mb@5158 = 18</action> <!-- missile -->
            <action>maincpu.mb@518B = 18</action> <!-- enemy -->
            <action>maincpu.mb@51BC = 18</action> <!-- bullet -->
        </script>
        <script state="off">
            <action>maincpu.mb@50BD = D0</action>
            <action>maincpu.mb@50FA = D0</action>
            <action>maincpu.mb@512D = D0</action>
            <action>maincpu.mb@5158 = 30</action>
            <action>maincpu.mb@518B = 30</action>
            <action>maincpu.mb@51BC = 30</action>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <script state="on">
            <action>maincpu.md@246E = 0A1867CB</action> <!-- button check -->
            <action>maincpu.mb@247F = 28      </action> <!-- button check -->
            <action>maincpu.mb@250E = 03      </action> <!-- fire interval -->
        </script>
        <script state="off">
            <action>maincpu.md@246E = 07070707</action>
            <action>maincpu.mb@247F = 20      </action>
            <action>maincpu.mb@250E = 06      </action>
        </script>
    </cheat>

    <cheat desc="direct turn">
        <script state="on">
            <action>maincpu.md@1F85 = 18AF80CD</action>
            <action>maincpu.md@1F8C = 18AF80CD</action>
        </script>
        <script state="run">
            <action>maincpu.pq@AF80 = AF8F210FE61EECCD</action>
            <action>maincpu.pq@AF88 = 00C9A802327E6F85</action>
            <action>maincpu.pq@AF90 = 4000A0E0C0008000</action>
            <action>maincpu.pq@AF98 = 0000000000006020</action>
            <!--
            AF80 | CD EC 1E : call $1EEC     // read input
            AF83 | E6 0F    : and  $0F
            AF85 | 21 8F AF : ld   hl,$AF8F
            AF88 | 85       : add  a,l
            AF89 | 6F       : ld   l,a
            AF8A | 7E       : ld   a,(hl)    // convert input to direction
            AF8B | 32 02 A8 : ld   ($A802),a
            AF8E | C9       : ret
            AF8F - AF99     : input/direction convertion table
               input  direction
                 01     00      : left
                 02     80      : right
                 04     C0      : up
                 05     E0      : upper-left
                 06     A0      : upper-right
                 08     40      : down
                 09     20      : lower-left
                 0A     60      : lower-right
            -->
        </script>
        <script state="off">
            <action>maincpu.md@1F85 = 18A80232        </action>
            <action>maincpu.md@1F8C = 18A80232        </action>
            <action>maincpu.pq@AF88 = 0000000000000000</action>
            <action>maincpu.pq@AF90 = 0000000000000000</action>
            <action>maincpu.pq@AF98 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mb@160F = C9              </action> <!-- disable next sequence at boot -->
            <action>maincpu.mw@55E2 = 5610            </action> <!-- disable auto sound stop? -->
            <action>maincpu.mw@01AD = 0818            </action> <!-- skip rom check -->
            <action>maincpu.mw@588D = 1218            </action> <!-- skip rom check -->
            <action>maincpu.mw@00AF = 5A00            </action>
            <action>maincpu.mq@5A00 = 803AC20032AA0021</action>
            <action>maincpu.mq@5A08 = 3A4F070708E62FC3</action>
            <action>maincpu.mq@5A10 = 47B8B11FE62FC320</action>
            <action>maincpu.mq@5A18 = FE35012001FEE928</action>
            <action>maincpu.mq@5A20 = 042008FE34012002</action>
            <action>maincpu.mq@5A28 = 052004FE0618F03E</action>
            <action>maincpu.mq@5A30 = 2010FE787786103E</action>
            <action>maincpu.mq@5A38 = 132020FE05187E03</action>
            <action>maincpu.mq@5A40 = 0432013EC00032AF</action>
            <action>maincpu.mq@5A48 = AF000000000000C3</action>
            <action>maincpu.mq@5A50 = 000000AE18C30432</action>
            <!--
            5A00 | 21 00 AA : ld   hl,$AA00  // sound code address
            5A03 | 32 00 C2 : ld   ($C200),a // watchdog
            5A06 | 3A 80 C3 : ld   a,($C380) // read start button
            5A09 | 2F       : cpl
            5A0A | E6 08    : and  $08
            5A0C | 07       : rlca
            5A0D | 07       : rlca
            5A0E | 4F       : ld   c,a
            5A0F | 3A 20 C3 : ld   a,($C320) // read other inputs
            5A12 | 2F       : cpl
            5A13 | E6 1F    : and  $1F
            5A15 | B1       : or   c
            5A16 | B8       : cp   b
            5A17 | 47       : ld   b,a
            5A18 | 28 E9    : jr   z,$5A03
            5A1A | FE 01    : cp   $01
            5A1C | 20 01    : jr   nz,$5A1F
            5A1E | 35       : dec  (hl)      // decrease code -01
            5A1F | FE 02    : cp   $02
            5A21 | 20 01    : jr   nz,$5A24
            5A23 | 34       : inc  (hl)      // increase code +01
            5A24 | FE 08    : cp   $08
            5A26 | 20 04    : jr   nz,$5A2C
            5A28 | 3E F0    : ld   a,$F0     // decrease code -10
            5A2A | 18 06    : jr   $5A32
            5A2C | FE 04    : cp   $04
            5A2E | 20 05    : jr   nz,$5A35
            5A30 | 3E 10    : ld   a,$10     // increase code +10
            5A32 | 86       : add  a,(hl)
            5A33 | 77       : ld   (hl),a
            5A34 | 78       : ld   a,b
            5A35 | FE 10    : cp   $10
            5A37 | 20 03    : jr   nz,$5A3C
            5A39 | 7E       : ld   a,(hl)    // play sound
            5A3A | 18 05    : jr   $5A41
            5A3C | FE 20    : cp   $20
            5A3E | 20 13    : jr   nz,$5A53
            5A40 | AF       : xor  a         // stop sound
            5A41 | 32 00 C0 : ld   ($C000),a // send sound code
            5A44 | 3E 01    : ld   a,$01
            5A46 | 32 04 C3 : ld   ($C304),a
            5A49 | 00       : nop
            5A4A | 00       : nop
            5A4B | 00       : nop
            5A4C | 00       : nop
            5A4D | 00       : nop
            5A4E | 00       : nop
            5A4F | AF       : xor  a
            5A50 | 32 04 C3 : ld   ($C304),a
            5A53 | 18 AE    : jr   $5A03
            -->
        </script>
        <script state="run">
            <output format="----- 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="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>maincpu.pb@AA00</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mb@160F = C0              </action>
            <action>maincpu.mw@55E2 = 55FB            </action>
            <action>maincpu.mw@00AF = 0B97            </action>
            <action>maincpu.mw@01AD = 86AF            </action>
            <action>maincpu.mw@588D = 2386            </action>
            <action>maincpu.mq@5A00 = A200A500A800A900</action>
            <action>maincpu.mq@5A08 = 98009B009E00A100</action>
            <action>maincpu.mq@5A10 = 9000910094009700</action>
            <action>maincpu.mq@5A18 = 8500880089008D00</action>
            <action>maincpu.mq@5A20 = 78007B007F008100</action>
            <action>maincpu.mq@5A28 = 68006D0070007600</action>
            <action>maincpu.mq@5A30 = 58005C0060006300</action>
            <action>maincpu.mq@5A38 = 430049004E005200</action>
            <action>maincpu.mq@5A40 = 2C00320039003E00</action>
            <action>maincpu.mq@5A48 = 14001A0020002700</action>
            <action>maincpu.mq@5A50 = 0000000008000E00</action>
        </script>
    </cheat>

</mamecheat>
timeplta.xml

Code: Select all

<!-- Time Pilot (Atari) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@5026 = C9</action> <!-- middle enemy -->
            <action>maincpu.mb@5063 = C9</action> <!-- boss -->
            <action>maincpu.mb@5096 = C9</action> <!-- boss -->
            <action>maincpu.mb@50C1 = 18</action> <!-- missile -->
            <action>maincpu.mb@511B = 18</action> <!-- enemy -->
            <action>maincpu.mb@514C = 18</action> <!-- bullet -->
        </script>
        <script state="off">
            <action>maincpu.mb@5026 = D0</action>
            <action>maincpu.mb@5063 = D0</action>
            <action>maincpu.mb@5196 = D0</action>
            <action>maincpu.mb@51C1 = 30</action>
            <action>maincpu.mb@511B = 30</action>
            <action>maincpu.mb@514C = 30</action>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <script state="on">
            <action>maincpu.md@23B9 = 0A1867CB</action> <!-- button check -->
            <action>maincpu.mb@23CA = 28      </action> <!-- button check -->
            <action>maincpu.mb@2459 = 03      </action> <!-- fire interval -->
        </script>
        <script state="off">
            <action>maincpu.md@23B9 = 07070707</action>
            <action>maincpu.mb@23CA = 20      </action>
            <action>maincpu.mb@2459 = 06      </action>
        </script>
    </cheat>

    <cheat desc="direct turn">
        <script state="on">
            <action>maincpu.md@1EA6 = 18AF80CD</action>
            <action>maincpu.md@1EAD = 18AF80CD</action>
        </script>
        <script state="run">
            <action>maincpu.pq@AF80 = AF8F210FE61E0DCD</action>
            <action>maincpu.pq@AF88 = 00C9A802327E6F85</action>
            <action>maincpu.pq@AF90 = 4000A0E0C0008000</action>
            <action>maincpu.pq@AF98 = 0000000000006020</action>
            <!--
            AF80 | CD 0D 1E : call $1E0D     // read input
            AF83 | E6 0F    : and  $0F
            AF85 | 21 8F AF : ld   hl,$AF8F
            AF88 | 85       : add  a,l
            AF89 | 6F       : ld   l,a
            AF8A | 7E       : ld   a,(hl)    // convert input to direction
            AF8B | 32 02 A8 : ld   ($A802),a
            AF8E | C9       : ret
            AF8F - AF99     : input/direction convertion table
               input  direction
                 01     00      : left
                 02     80      : right
                 04     C0      : up
                 05     E0      : upper-left
                 06     A0      : upper-right
                 08     40      : down
                 09     20      : lower-left
                 0A     60      : lower-right
            -->
        </script>
        <script state="off">
            <action>maincpu.md@1EA6 = 18A80232        </action>
            <action>maincpu.md@1EAD = 18A80232        </action>
            <action>maincpu.pq@AF80 = 0000000000000000</action>
            <action>maincpu.pq@AF88 = 0000000000000000</action>
            <action>maincpu.pq@AF90 = 0000000000000000</action>
            <action>maincpu.pq@AF98 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mb@1609 = C9              </action> <!-- disable next sequence at boot -->
            <action>maincpu.mw@5572 = 559F            </action> <!-- disable auto sound stop? -->
            <action>maincpu.mw@01BC = 0818            </action> <!-- skip rom check -->
            <action>maincpu.mw@5856 = 1218            </action> <!-- skip rom check -->
            <action>maincpu.mw@00B2 = 5A00            </action>
            <action>maincpu.mq@5A00 = 803AC20032AA0021</action>
            <action>maincpu.mq@5A08 = 3A4F070708E62FC3</action>
            <action>maincpu.mq@5A10 = 47B8B11FE62FC320</action>
            <action>maincpu.mq@5A18 = FE35012001FEE928</action>
            <action>maincpu.mq@5A20 = 042008FE34012002</action>
            <action>maincpu.mq@5A28 = 052004FE0618F03E</action>
            <action>maincpu.mq@5A30 = 2010FE787786103E</action>
            <action>maincpu.mq@5A38 = 132020FE05187E03</action>
            <action>maincpu.mq@5A40 = 0432013EC00032AF</action>
            <action>maincpu.mq@5A48 = AF000000000000C3</action>
            <action>maincpu.mq@5A50 = 000000AE18C30432</action>
            <!--
            5A00 | 21 00 AA : ld   hl,$AA00  // sound code address
            5A03 | 32 00 C2 : ld   ($C200),a // watchdog
            5A06 | 3A 80 C3 : ld   a,($C380) // read start button
            5A09 | 2F       : cpl
            5A0A | E6 08    : and  $08
            5A0C | 07       : rlca
            5A0D | 07       : rlca
            5A0E | 4F       : ld   c,a
            5A0F | 3A 20 C3 : ld   a,($C320) // read other inputs
            5A12 | 2F       : cpl
            5A13 | E6 1F    : and  $1F
            5A15 | B1       : or   c
            5A16 | B8       : cp   b
            5A17 | 47       : ld   b,a
            5A18 | 28 E9    : jr   z,$5A03
            5A1A | FE 01    : cp   $01
            5A1C | 20 01    : jr   nz,$5A1F
            5A1E | 35       : dec  (hl)      // decrease code -01
            5A1F | FE 02    : cp   $02
            5A21 | 20 01    : jr   nz,$5A24
            5A23 | 34       : inc  (hl)      // increase code +01
            5A24 | FE 08    : cp   $08
            5A26 | 20 04    : jr   nz,$5A2C
            5A28 | 3E F0    : ld   a,$F0     // decrease code -10
            5A2A | 18 06    : jr   $5A32
            5A2C | FE 04    : cp   $04
            5A2E | 20 05    : jr   nz,$5A35
            5A30 | 3E 10    : ld   a,$10     // increase code +10
            5A32 | 86       : add  a,(hl)
            5A33 | 77       : ld   (hl),a
            5A34 | 78       : ld   a,b
            5A35 | FE 10    : cp   $10
            5A37 | 20 03    : jr   nz,$5A3C
            5A39 | 7E       : ld   a,(hl)    // play sound
            5A3A | 18 05    : jr   $5A41
            5A3C | FE 20    : cp   $20
            5A3E | 20 13    : jr   nz,$5A53
            5A40 | AF       : xor  a         // stop sound
            5A41 | 32 00 C0 : ld   ($C000),a // send sound code
            5A44 | 3E 01    : ld   a,$01
            5A46 | 32 04 C3 : ld   ($C304),a
            5A49 | 00       : nop
            5A4A | 00       : nop
            5A4B | 00       : nop
            5A4C | 00       : nop
            5A4D | 00       : nop
            5A4E | 00       : nop
            5A4F | AF       : xor  a
            5A50 | 32 04 C3 : ld   ($C304),a
            5A53 | 18 AE    : jr   $5A03
            -->
        </script>
        <script state="run">
            <output format="----- 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="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>maincpu.pb@AA00</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mb@1609 = C0              </action>
            <action>maincpu.mw@5572 = 558B            </action>
            <action>maincpu.mw@01BC = 86AF            </action>
            <action>maincpu.mw@5856 = 2386            </action>
            <action>maincpu.mw@00B2 = 0B85            </action>
            <action>maincpu.mq@5A00 = 00A200A500A800A9</action>
            <action>maincpu.mq@5A08 = 0098009B009E00A1</action>
            <action>maincpu.mq@5A10 = 0090009100940097</action>
            <action>maincpu.mq@5A18 = 008500880089008D</action>
            <action>maincpu.mq@5A20 = 0078007B007F0081</action>
            <action>maincpu.mq@5A28 = 0068006D00700076</action>
            <action>maincpu.mq@5A30 = 0058005C00600063</action>
            <action>maincpu.mq@5A38 = 00430049004E0052</action>
            <action>maincpu.mq@5A40 = 002C00320039003E</action>
            <action>maincpu.mq@5A48 = 0014001A00200027</action>
            <action>maincpu.mq@5A50 = 000000000008000E</action>
        </script>
    </cheat>

</mamecheat>
spaceplt.xml

Code: Select all

<!-- Space Pilot (set 1) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@50A1 = C9</action> <!-- middle enemy -->
            <action>maincpu.mb@50DE = C9</action> <!-- boss -->
            <action>maincpu.mb@5111 = C9</action> <!-- boss -->
            <action>maincpu.mb@513C = 18</action> <!-- missile -->
            <action>maincpu.mb@516F = 18</action> <!-- enemy -->
            <action>maincpu.mb@51A0 = 18</action> <!-- bullet -->
        </script>
        <script state="off">
            <action>maincpu.mb@50A1 = D0</action>
            <action>maincpu.mb@50DE = D0</action>
            <action>maincpu.mb@5111 = D0</action>
            <action>maincpu.mb@513C = 30</action>
            <action>maincpu.mb@516F = 30</action>
            <action>maincpu.mb@51A0 = 30</action>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <script state="on">
            <action>maincpu.md@23F4 = 0A1867CB</action> <!-- button check -->
            <action>maincpu.mb@2405 = 28      </action> <!-- button check -->
            <action>maincpu.mb@2495 = 03      </action> <!-- fire interval -->
        </script>
        <script state="off">
            <action>maincpu.md@23F4 = 07070707</action>
            <action>maincpu.mb@2405 = 20      </action>
            <action>maincpu.mb@2495 = 06      </action>
        </script>
    </cheat>

    <cheat desc="direct turn">
        <script state="on">
            <action>maincpu.md@1F6A = 18AF80CD</action>
            <action>maincpu.md@1F71 = 18AF80CD</action>
        </script>
        <script state="run">
            <action>maincpu.pq@AF80 = AF8F210FE61ED1CD</action>
            <action>maincpu.pq@AF88 = 00C9A802327E6F85</action>
            <action>maincpu.pq@AF90 = 4000A0E0C0008000</action>
            <action>maincpu.pq@AF98 = 0000000000006020</action>
            <!--
            AF80 | CD D1 1E : call $1ED1     // read input
            AF83 | E6 0F    : and  $0F
            AF85 | 21 8F AF : ld   hl,$AF8F
            AF88 | 85       : add  a,l
            AF89 | 6F       : ld   l,a
            AF8A | 7E       : ld   a,(hl)    // convert input to direction
            AF8B | 32 02 A8 : ld   ($A802),a
            AF8E | C9       : ret
            AF8F - AF99     : input/direction convertion table
               input  direction
                 01     00      : left
                 02     80      : right
                 04     C0      : up
                 05     E0      : upper-left
                 06     A0      : upper-right
                 08     40      : down
                 09     20      : lower-left
                 0A     60      : lower-right
            -->
        </script>
        <script state="off">
            <action>maincpu.md@1F6A = 18A80232        </action>
            <action>maincpu.md@1F71 = 18A80232        </action>
            <action>maincpu.pq@AF88 = 0000000000000000</action>
            <action>maincpu.pq@AF90 = 0000000000000000</action>
            <action>maincpu.pq@AF98 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mb@1601 = C9              </action> <!-- disable next sequence at boot -->
            <action>maincpu.mw@55DF = 560B            </action> <!-- disable auto sound stop? -->
            <action>maincpu.mw@588D = 1218            </action> <!-- skip rom check -->
            <action>maincpu.mw@00AF = 5A00            </action>
            <action>maincpu.mq@5A00 = 803AC20032AA0021</action>
            <action>maincpu.mq@5A08 = 3A4F070708E62FC3</action>
            <action>maincpu.mq@5A10 = 47B8B11FE62FC320</action>
            <action>maincpu.mq@5A18 = FE35012001FEE928</action>
            <action>maincpu.mq@5A20 = 042008FE34012002</action>
            <action>maincpu.mq@5A28 = 052004FE0618F03E</action>
            <action>maincpu.mq@5A30 = 2010FE787786103E</action>
            <action>maincpu.mq@5A38 = 132020FE05187E03</action>
            <action>maincpu.mq@5A40 = 0432013EC00032AF</action>
            <action>maincpu.mq@5A48 = AF000000000000C3</action>
            <action>maincpu.mq@5A50 = 000000AE18C30432</action>
            <!--
            5A00 | 21 00 AA : ld   hl,$AA00  // sound code address
            5A03 | 32 00 C2 : ld   ($C200),a // watchdog
            5A06 | 3A 80 C3 : ld   a,($C380) // read start button
            5A09 | 2F       : cpl
            5A0A | E6 08    : and  $08
            5A0C | 07       : rlca
            5A0D | 07       : rlca
            5A0E | 4F       : ld   c,a
            5A0F | 3A 20 C3 : ld   a,($C320) // read other inputs
            5A12 | 2F       : cpl
            5A13 | E6 1F    : and  $1F
            5A15 | B1       : or   c
            5A16 | B8       : cp   b
            5A17 | 47       : ld   b,a
            5A18 | 28 E9    : jr   z,$5A03
            5A1A | FE 01    : cp   $01
            5A1C | 20 01    : jr   nz,$5A1F
            5A1E | 35       : dec  (hl)      // decrease code -01
            5A1F | FE 02    : cp   $02
            5A21 | 20 01    : jr   nz,$5A24
            5A23 | 34       : inc  (hl)      // increase code +01
            5A24 | FE 08    : cp   $08
            5A26 | 20 04    : jr   nz,$5A2C
            5A28 | 3E F0    : ld   a,$F0     // decrease code -10
            5A2A | 18 06    : jr   $5A32
            5A2C | FE 04    : cp   $04
            5A2E | 20 05    : jr   nz,$5A35
            5A30 | 3E 10    : ld   a,$10     // increase code +10
            5A32 | 86       : add  a,(hl)
            5A33 | 77       : ld   (hl),a
            5A34 | 78       : ld   a,b
            5A35 | FE 10    : cp   $10
            5A37 | 20 03    : jr   nz,$5A3C
            5A39 | 7E       : ld   a,(hl)    // play sound
            5A3A | 18 05    : jr   $5A41
            5A3C | FE 20    : cp   $20
            5A3E | 20 13    : jr   nz,$5A53
            5A40 | AF       : xor  a         // stop sound
            5A41 | 32 00 C0 : ld   ($C000),a // send sound code
            5A44 | 3E 01    : ld   a,$01
            5A46 | 32 04 C3 : ld   ($C304),a
            5A49 | 00       : nop
            5A4A | 00       : nop
            5A4B | 00       : nop
            5A4C | 00       : nop
            5A4D | 00       : nop
            5A4E | 00       : nop
            5A4F | AF       : xor  a
            5A50 | 32 04 C3 : ld   ($C304),a
            5A53 | 18 AE    : jr   $5A03
            -->
        </script>
        <script state="run">
            <output format="----- 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="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>maincpu.pb@AA00</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mb@1601 = C0              </action>
            <action>maincpu.mw@55DF = 55F8            </action>
            <action>maincpu.mw@588D = 2386            </action>
            <action>maincpu.mw@00AF = 0B93            </action>
            <action>maincpu.mq@5A00 = A200A500A800A900</action>
            <action>maincpu.mq@5A08 = 98009B009E00A100</action>
            <action>maincpu.mq@5A10 = 9000910094009700</action>
            <action>maincpu.mq@5A18 = 8500880089008D00</action>
            <action>maincpu.mq@5A20 = 78007B007F008100</action>
            <action>maincpu.mq@5A28 = 68006D0070007600</action>
            <action>maincpu.mq@5A30 = 58005C0060006300</action>
            <action>maincpu.mq@5A38 = 430049004E005200</action>
            <action>maincpu.mq@5A40 = 2C00320039003E00</action>
            <action>maincpu.mq@5A48 = 14001A0020002700</action>
            <action>maincpu.mq@5A50 = 0000000008000E00</action>
        </script>
    </cheat>

</mamecheat>
spaceplta.xml

Code: Select all

<!-- Space Pilot (set 2) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@50A1 = C9</action> <!-- middle enemy -->
            <action>maincpu.mb@50DE = C9</action> <!-- boss -->
            <action>maincpu.mb@5111 = C9</action> <!-- boss -->
            <action>maincpu.mb@513C = 18</action> <!-- missile -->
            <action>maincpu.mb@516F = 18</action> <!-- enemy -->
            <action>maincpu.mb@51A0 = 18</action> <!-- bullet -->
        </script>
        <script state="off">
            <action>maincpu.mb@50A1 = D0</action>
            <action>maincpu.mb@50DE = D0</action>
            <action>maincpu.mb@5111 = D0</action>
            <action>maincpu.mb@513C = 30</action>
            <action>maincpu.mb@516F = 30</action>
            <action>maincpu.mb@51A0 = 30</action>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <script state="on">
            <action>maincpu.md@23F4 = 0A1867CB</action> <!-- button check -->
            <action>maincpu.mb@2405 = 28      </action> <!-- button check -->
            <action>maincpu.mb@2495 = 03      </action> <!-- fire interval -->
        </script>
        <script state="off">
            <action>maincpu.md@23F4 = 07070707</action>
            <action>maincpu.mb@2405 = 20      </action>
            <action>maincpu.mb@2495 = 06      </action>
        </script>
    </cheat>

    <cheat desc="direct turn">
        <script state="on">
            <action>maincpu.md@1F6A = 18AF80CD</action>
            <action>maincpu.md@1F71 = 18AF80CD</action>
        </script>
        <script state="run">
            <action>maincpu.pq@AF80 = AF8F210FE61ED1CD</action>
            <action>maincpu.pq@AF88 = 00C9A802327E6F85</action>
            <action>maincpu.pq@AF90 = 4000A0E0C0008000</action>
            <action>maincpu.pq@AF98 = 0000000000006020</action>
            <!--
            AF80 | CD D1 1E : call $1ED1     // read input
            AF83 | E6 0F    : and  $0F
            AF85 | 21 8F AF : ld   hl,$AF8F
            AF88 | 85       : add  a,l
            AF89 | 6F       : ld   l,a
            AF8A | 7E       : ld   a,(hl)    // convert input to direction
            AF8B | 32 02 A8 : ld   ($A802),a
            AF8E | C9       : ret
            AF8F - AF99     : input/direction convertion table
               input  direction
                 01     00      : left
                 02     80      : right
                 04     C0      : up
                 05     E0      : upper-left
                 06     A0      : upper-right
                 08     40      : down
                 09     20      : lower-left
                 0A     60      : lower-right
            -->
        </script>
        <script state="off">
            <action>maincpu.md@1F6A = 18A80232        </action>
            <action>maincpu.md@1F71 = 18A80232        </action>
            <action>maincpu.pq@AF88 = 0000000000000000</action>
            <action>maincpu.pq@AF90 = 0000000000000000</action>
            <action>maincpu.pq@AF98 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mb@1601 = C9              </action> <!-- disable next sequence at boot -->
            <action>maincpu.mw@55DF = 560B            </action> <!-- disable auto sound stop? -->
            <action>maincpu.mw@588D = 1218            </action> <!-- skip rom check -->
            <action>maincpu.mw@00AF = 5A00            </action>
            <action>maincpu.mq@5A00 = 803AC20032AA0021</action>
            <action>maincpu.mq@5A08 = 3A4F070708E62FC3</action>
            <action>maincpu.mq@5A10 = 47B8B11FE62FC320</action>
            <action>maincpu.mq@5A18 = FE35012001FEE928</action>
            <action>maincpu.mq@5A20 = 042008FE34012002</action>
            <action>maincpu.mq@5A28 = 052004FE0618F03E</action>
            <action>maincpu.mq@5A30 = 2010FE787786103E</action>
            <action>maincpu.mq@5A38 = 132020FE05187E03</action>
            <action>maincpu.mq@5A40 = 0432013EC00032AF</action>
            <action>maincpu.mq@5A48 = AF000000000000C3</action>
            <action>maincpu.mq@5A50 = 000000AE18C30432</action>
            <!--
            5A00 | 21 00 AA : ld   hl,$AA00  // sound code address
            5A03 | 32 00 C2 : ld   ($C200),a // watchdog
            5A06 | 3A 80 C3 : ld   a,($C380) // read start button
            5A09 | 2F       : cpl
            5A0A | E6 08    : and  $08
            5A0C | 07       : rlca
            5A0D | 07       : rlca
            5A0E | 4F       : ld   c,a
            5A0F | 3A 20 C3 : ld   a,($C320) // read other inputs
            5A12 | 2F       : cpl
            5A13 | E6 1F    : and  $1F
            5A15 | B1       : or   c
            5A16 | B8       : cp   b
            5A17 | 47       : ld   b,a
            5A18 | 28 E9    : jr   z,$5A03
            5A1A | FE 01    : cp   $01
            5A1C | 20 01    : jr   nz,$5A1F
            5A1E | 35       : dec  (hl)      // decrease code -01
            5A1F | FE 02    : cp   $02
            5A21 | 20 01    : jr   nz,$5A24
            5A23 | 34       : inc  (hl)      // increase code +01
            5A24 | FE 08    : cp   $08
            5A26 | 20 04    : jr   nz,$5A2C
            5A28 | 3E F0    : ld   a,$F0     // decrease code -10
            5A2A | 18 06    : jr   $5A32
            5A2C | FE 04    : cp   $04
            5A2E | 20 05    : jr   nz,$5A35
            5A30 | 3E 10    : ld   a,$10     // increase code +10
            5A32 | 86       : add  a,(hl)
            5A33 | 77       : ld   (hl),a
            5A34 | 78       : ld   a,b
            5A35 | FE 10    : cp   $10
            5A37 | 20 03    : jr   nz,$5A3C
            5A39 | 7E       : ld   a,(hl)    // play sound
            5A3A | 18 05    : jr   $5A41
            5A3C | FE 20    : cp   $20
            5A3E | 20 13    : jr   nz,$5A53
            5A40 | AF       : xor  a         // stop sound
            5A41 | 32 00 C0 : ld   ($C000),a // send sound code
            5A44 | 3E 01    : ld   a,$01
            5A46 | 32 04 C3 : ld   ($C304),a
            5A49 | 00       : nop
            5A4A | 00       : nop
            5A4B | 00       : nop
            5A4C | 00       : nop
            5A4D | 00       : nop
            5A4E | 00       : nop
            5A4F | AF       : xor  a
            5A50 | 32 04 C3 : ld   ($C304),a
            5A53 | 18 AE    : jr   $5A03
            -->
        </script>
        <script state="run">
            <output format="----- 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="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>maincpu.pb@AA00</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mb@1601 = C0              </action>
            <action>maincpu.mw@55DF = 55F8            </action>
            <action>maincpu.mw@588D = 2386            </action>
            <action>maincpu.mw@00AF = 0B93            </action>
            <action>maincpu.mq@5A00 = A200A500A800A900</action>
            <action>maincpu.mq@5A08 = 98009B009E00A100</action>
            <action>maincpu.mq@5A10 = 9000910094009700</action>
            <action>maincpu.mq@5A18 = 8500880089008D00</action>
            <action>maincpu.mq@5A20 = 78007B007F008100</action>
            <action>maincpu.mq@5A28 = 68006D0070007600</action>
            <action>maincpu.mq@5A30 = 58005C0060006300</action>
            <action>maincpu.mq@5A38 = 430049004E005200</action>
            <action>maincpu.mq@5A40 = 2C00320039003E00</action>
            <action>maincpu.mq@5A48 = 14001A0020002700</action>
            <action>maincpu.mq@5A50 = 0000000008000E00</action>
        </script>
    </cheat>

</mamecheat>
I give up creating "skip rom check" code. This game has complex rom check routines so that I can't trace all routines.
"sound test mode" has minimum rom check skipper to enter sound test mode though.
I recommend that you should turn all rom codes OFF at boot, title and game start.
jman

my wip cheat database back-up (2024/12/01 ver.)
https://u3.getuploader.com/...../download/47
downloadpass : jman2020
Post Reply