Page 1 of 1

[timeplt]+ Time Pilot

Posted: Sun Apr 20, 2025 12:10 pm
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.