[sauro] Sauro

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

[sauro] Sauro

Post by jman »

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>maincpu.mb@1382 =       00</action> <!-- background -->
        <action>maincpu.md@1943 = 7dc9afc1</action> <!-- objects -->
        <action>maincpu.md@188a = 3ec9afc1</action> <!-- wave -->
    </script>
    <script state="off">
        <action>maincpu.mb@1382 =       07</action>
        <action>maincpu.md@1943 = 7de2072a</action>
        <action>maincpu.md@188a = 3e193bcd</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mb@d7cf = 26</action> <!-- shot -->
        <action>maincpu.mb@d859 = 26</action> <!-- missile -->
    </script>
    <script state="off">
        <action>maincpu.mb@d7cf = 27</action>
        <action>maincpu.mb@d859 = 27</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter min="0x01" max="0x05" step="0x01" />
    <script state="on">
        <action>maincpu.md@13d7 = dd00003e</action> <!-- up -->
        <action>maincpu.md@13eb = 5700003e</action> <!-- down -->
        <action>maincpu.md@140a = dd00003e</action> <!-- left -->
        <action>maincpu.md@1434 = 5700003e</action> <!-- right -->
    </script>
    <script state="change">
        <action>maincpu.mb@13d8 = param</action>
        <action>maincpu.mb@13ec = param</action>
        <action>maincpu.mb@140b = param</action>
        <action>maincpu.mb@1435 = param</action>
    </script>
    <script state="off">
        <action>maincpu.md@13d7 = dd3eabcd</action>
        <action>maincpu.md@13eb = 573eabcd</action>
        <action>maincpu.md@140a = dd3eabcd</action>
        <action>maincpu.md@1434 = 573eabcd</action>
    </script>
</cheat>

<cheat desc="bullet speed - shot">
    <parameter>
        <item value="0x01">01 (slow)</item>
        <item value="0x04">02       </item>
        <item value="0x08">03       </item>
        <item value="0x0c">04       </item>
        <item value="0x10">05 (fast)</item>
    </parameter>
    <script state="change">
        <action>maincpu.mb@d902 = param</action>
    </script>
    <script state="off">
        <action>maincpu.mb@d902 = 05</action>
    </script>
</cheat>

<cheat desc="sound test mode">
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action>maincpu.md@1f45 =         cddc90c3</action>
        <action>maincpu.mq@dc90 = b840dbe0d3e10021</action>
        <action>maincpu.mq@dc98 = 35012010fef82847</action>
        <action>maincpu.mq@dca0 = 2001fe34012020fe</action>
        <action>maincpu.mq@dca8 = 042002fe06187e03</action>
        <action>maincpu.mq@dcb0 = ffffdd1880d3ff3e</action>
        <!--
        dc90 | 21 00 e1 : ld  hl,$E100 // sound code address
        dc93 | d3 e0    : out ($E0),a  // watchdog
        dc95 | db 40    : in  a,($40)  // read input
        dc97 | b8       : cp  b
        dc98 | 47       : ld  b,a
        dc99 | 28 f8    : jr  z,$DC93
        dc9b | fe 10    : cp  $10
        dc9d | 20 01    : jr  nz,$DCA0
        dc9f | 35       : dec (hl)     // decrease code
        dca0 | fe 20    : cp  $20
        dca2 | 20 01    : jr  nz,$DCA5
        dca4 | 34       : inc (hl)     // increase code
        dca5 | fe 01    : cp  $01
        dca7 | 20 03    : jr  nz,$DCAC
        dca9 | 7e       : ld  a,(hl)   // play sound
        dcaa | 18 06    : jr  $DCB2
        dcac | fe 02    : cp  $02
        dcae | 20 04    : jr  nz,$DCB4
        dcb0 | 3e ff    : ld  a,$FF    // stop sound
        dcb2 | d3 80    : out ($80),a  // send sound code
        dcb4 | 18 dd    : jr  $DC93
        -->
    </script>
    <script state="run">
        <output format="----- sauro 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="button 2 : 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>maincpu.pb@e100</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.md@1f45 =         cde31832</action>
        <action>maincpu.mq@dc90 = ffffffffffffffff</action>
        <action>maincpu.mq@dc98 = ffffffffffffffff</action>
        <action>maincpu.mq@dca0 = ffffffffffffffff</action>
        <action>maincpu.mq@dca8 = ffffffffffffffff</action>
        <action>maincpu.mq@dcb0 = ffffffffffffffff</action>
    </script>
</cheat>
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[sauro] Sauro (update)

Post by jman »

Code: Select all

<cheat desc="sound test mode">
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action>maincpu.md@1f45 =         cddc90c3</action>
        <action>maincpu.mq@dc90 = b840dbe0d3e10021</action>
        <action>maincpu.mq@dc98 = 35012010fef82847</action>
        <action>maincpu.mq@dca0 = 2080fe34012020fe</action>
        <action>maincpu.mq@dca8 = 2040fe0618f03e04</action>
        <action>maincpu.mq@dcb0 = 01fe787786103e05</action>
        <action>maincpu.mq@dcb8 = 2002fe06187e0320</action>
        <action>maincpu.mq@dcc0 = ffcc1880d3ff3e04</action>
        <!--
        dc90 | 21 00 e1 : ld  hl,$E100 // sound code address
        dc93 | d3 e0    : out ($E0),a  // watchdog
        dc95 | db 40    : in  a,($40)  // read input
        dc97 | b8       : cp  b
        dc98 | 47       : ld  b,a
        dc99 | 28 f8    : jr  z,$DC93
        dc9b | fe 10    : cp  $10
        dc9d | 20 01    : jr  nz,$DCA0
        dc9f | 35       : dec (hl)     // decrease code -01
        dca0 | fe 20    : cp  $20
        dca2 | 20 01    : jr  nz,$DCA5
        dca4 | 34       : inc (hl)     // increase code +01
        dca5 | fe 80    : cp  $80
        dca7 | 20 04    : jr  nz,$DCAD
        dca9 | 3e f0    : ld  a,$F0    // decrease code -10
        dcab | 18 06    : jr  $DCB3
        dcad | fe 40    : cp  $40
        dcaf | 20 05    : jr  nz,$DCB6
        dcb1 | 3e 10    : ld  a,$10    // increase code +10
        dcb3 | 86       : add a,(hl)
        dcb4 | 77       : ld  (hl),a
        dcb5 | 78       : ld  a,b
        dcb6 | fe 01    : cp  $01
        dcb8 | 20 03    : jr  nz,$DCBD
        dcba | 7e       : ld  a,(hl)   // play sound
        dcbb | 18 06    : jr  $DCC3
        dcbd | fe 02    : cp  $02
        dcbf | 20 04    : jr  nz,$DCC5
        dcc1 | 3e ff    : ld  a,$FF    // stop sound
        dcc3 | d3 80    : out ($80),a  // send sound code
        dcc5 | 18 cc    : jr  $DC93
        -->
    </script>
    <script state="run">
        <output format="----- sauro sound test mode -----"  line="10" align="center" />
        <output format="left : decrease code -01"           line="11" align="center" />
        <output format="right : increase code +01"          line="12" align="center" />
        <output format="down : decrease code -10"           line="13" align="center" />
        <output format="up : increase code +10"             line="14" align="center" />
        <output format="button 1 : play sound"              line="15" align="center" />
        <output format="button 2 : stop sound"              line="16" align="center" />
        <output format="----------------------------"       line="17" align="center" />
        <output format="&lt;&lt; sound code %2.2X &gt;&gt;" line="19" align="center"  >
            <argument>maincpu.pb@e100</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.md@1f45 =         cde31832</action>
        <action>maincpu.mq@dc90 = ffffffffffffffff</action>
        <action>maincpu.mq@dc98 = ffffffffffffffff</action>
        <action>maincpu.mq@dca0 = ffffffffffffffff</action>
        <action>maincpu.mq@dca8 = ffffffffffffffff</action>
        <action>maincpu.mq@dcb0 = ffffffffffffffff</action>
        <action>maincpu.mq@dcb8 = ffffffffffffffff</action>
        <action>maincpu.mq@dcc0 = ffffffffffffffff</action>
    </script>
</cheat>
"sound test mode" : rewrite routine. add up/down key (code ±10).

Code: Select all

<cheat desc="skip ram/rom check">
    <script state="on">
        <action>maincpu.mw@0132 = 0250</action> <!-- skip ram/rom check -->
        <action>maincpu.mw@027c = 0418</action> <!-- wait? -->
        <action>maincpu.mw@1e69 = 1e8f</action> <!-- skip color tile -->
    </script>
    <script state="off">
        <action>maincpu.mw@0132 = 0141</action>
        <action>maincpu.mw@027c = fb20</action>
        <action>maincpu.mw@1e69 = 1e77</action>
    </script>
</cheat>
"skip ram/rom check" : add new.
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[sauro]+ Sauro

Post by jman »

sauro.xml

Code: Select all

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

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@1382 = 00      </action> <!-- background -->
            <action>maincpu.md@188A = 3EC9AFC1</action> <!-- wave -->
            <action>maincpu.md@1943 = 7DC9AFC1</action> <!-- objects -->
        </script>
        <script state="off">
            <action>maincpu.mb@1382 = 07      </action>
            <action>maincpu.md@188A = 3E193BCD</action>
            <action>maincpu.md@1943 = 7DE2072A</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@D7CF = 26</action> <!-- shot -->
            <action>maincpu.mb@D859 = 26</action> <!-- missile -->
        </script>
        <script state="off">
            <action>maincpu.mb@D7CF = 27</action>
            <action>maincpu.mb@D859 = 27</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.md@13D7 = DD00003E</action> <!-- up -->
            <action>maincpu.md@13EB = 5700003E</action> <!-- down -->
            <action>maincpu.md@140A = DD00003E</action> <!-- left -->
            <action>maincpu.md@1434 = 5700003E</action> <!-- right -->
        </script>
        <script state="change">
            <action>maincpu.mb@13D8 = param</action>
            <action>maincpu.mb@13EC = param</action>
            <action>maincpu.mb@140B = param</action>
            <action>maincpu.mb@1435 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@13D7 = DD3EABCD</action>
            <action>maincpu.md@13EB = 573EABCD</action>
            <action>maincpu.md@140A = DD3EABCD</action>
            <action>maincpu.md@1434 = 573EABCD</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - shot">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x04">02       </item>
            <item value="0x08">03       </item>
            <item value="0x0c">04       </item>
            <item value="0x10">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@D902 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@D902 = 05</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.md@1F45 = CDDC90C3        </action>
            <action>maincpu.mq@DC90 = B840DBE0D3E00021</action>
            <action>maincpu.mq@DC98 = 35012010FEF82847</action>
            <action>maincpu.mq@DCA0 = 2080FE34012020FE</action>
            <action>maincpu.mq@DCA8 = 2040FE0618F03E04</action>
            <action>maincpu.mq@DCB0 = 01FE787786103E05</action>
            <action>maincpu.mq@DCB8 = 2002FE06187E0320</action>
            <action>maincpu.mq@DCC0 = FFCC1880D3FF3E04</action>
            <!--
            DC90 | 21 00 E0 : ld   hl,$E000 // sound code address
            DC93 | D3 E0    : out  ($E0),a  // watchdog
            DC95 | DB 40    : in   a,($40)  // read input
            DC97 | B8       : cp   b
            DC98 | 47       : ld   b,a
            DC99 | 28 F8    : jr   z,$DC93
            DC9B | FE 10    : cp   $10
            DC9D | 20 01    : jr   nz,$DCA0
            DC9F | 35       : dec  (hl)     // decrease code -01
            DCA0 | FE 20    : cp   $20
            DCA2 | 20 01    : jr   nz,$DCA5
            DCA4 | 34       : inc  (hl)     // increase code +10
            DCA5 | FE 80    : cp   $80
            DCA7 | 20 04    : jr   nz,$DCAD
            DCA9 | 3E F0    : ld   a,$F0    // decrease code -01
            DCAB | 18 06    : jr   $DCB3
            DCAD | FE 40    : cp   $40
            DCAF | 20 05    : jr   nz,$DCB6
            DCB1 | 3E 10    : ld   a,$10    // increase code +10
            DCB3 | 86       : add  a,(hl)
            DCB4 | 77       : ld   (hl),a
            DCB5 | 78       : ld   a,b
            DCB6 | FE 01    : cp   $01
            DCB8 | 20 03    : jr   nz,$DCBD
            DCBA | 7E       : ld   a,(hl)   // play sound
            DCBB | 18 06    : jr   $DCC3
            DCBD | FE 02    : cp   $02
            DCBF | 20 04    : jr   nz,$DCC5
            DCC1 | 3E FF    : ld   a,$FF    // stop sound
            DCC3 | D3 80    : out  ($80),a  // send sound code
            DCC5 | 18 CC    : jr   $DC93
            -->
        </script>
        <script state="run">
            <output format="----- sauro sound test mode -----"  line="10" align="center" />
            <output format="left : decrease code -01"           line="11" align="center" />
            <output format="right : increase code +01"          line="12" align="center" />
            <output format="down : decrease code -10"           line="13" align="center" />
            <output format="up : increase code +10"             line="14" align="center" />
            <output format="button 1 : play sound"              line="15" align="center" />
            <output format="button 2 : stop sound"              line="16" align="center" />
            <output format="----------------------------"       line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;"  line="19" align="center"  >
                <argument>maincpu.pb@E000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@1F45 = CDE31832        </action>
            <action>maincpu.mq@DC90 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DC98 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DCA0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DCA8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DCB0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DCB8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DCC0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@0132 = 0250</action> <!-- ram/rom check -->
            <action>maincpu.mw@027C = 0418</action> <!-- wait? -->
            <action>maincpu.mw@1E69 = 1E8F</action> <!-- color tile -->
        </script>
        <script state="off">
            <action>maincpu.mw@0132 = 0141</action>
            <action>maincpu.mw@027C = FB20</action>
            <action>maincpu.mw@1E69 = 1E77</action>
        </script>
    </cheat>

</mamecheat>
sauroa.xml

Code: Select all

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

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@1382 = 00      </action> <!-- background -->
            <action>maincpu.md@1881 = 3EC9AFC1</action> <!-- wave -->
            <action>maincpu.md@193A = 7DC9AFC1</action> <!-- objects -->
        </script>
        <script state="off">
            <action>maincpu.mb@1382 = 07      </action>
            <action>maincpu.md@1881 = 3E1932CD</action>
            <action>maincpu.md@193A = 7DE2072A</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@D7A8 = 26</action> <!-- shot -->
            <action>maincpu.mb@D832 = 26</action> <!-- missile -->
        </script>
        <script state="off">
            <action>maincpu.mb@D7A8 = 27</action>
            <action>maincpu.mb@D832 = 27</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.md@13D7 = DD00003E</action> <!-- up -->
            <action>maincpu.md@13EB = 5700003E</action> <!-- down -->
            <action>maincpu.md@140A = DD00003E</action> <!-- left -->
            <action>maincpu.md@1434 = 5700003E</action> <!-- right -->
        </script>
        <script state="change">
            <action>maincpu.mb@13D8 = param</action>
            <action>maincpu.mb@13EC = param</action>
            <action>maincpu.mb@140B = param</action>
            <action>maincpu.mb@1435 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@13D7 = DD3E93CD</action>
            <action>maincpu.md@13EB = 573E93CD</action>
            <action>maincpu.md@140A = DD3E93CD</action>
            <action>maincpu.md@1434 = 573E93CD</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - shot">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x04">02       </item>
            <item value="0x08">03       </item>
            <item value="0x0c">04       </item>
            <item value="0x10">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@D8DB = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@D8DB = 05</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.md@1F37 = CDDC60C3        </action>
            <action>maincpu.mq@DC60 = B840DBE0D3E00021</action>
            <action>maincpu.mq@DC68 = 35012010FEF82847</action>
            <action>maincpu.mq@DC70 = 2080FE34012020FE</action>
            <action>maincpu.mq@DC78 = 2040FE0618F03E04</action>
            <action>maincpu.mq@DC80 = 01FE787786103E05</action>
            <action>maincpu.mq@DC88 = 2002FE06187E0320</action>
            <action>maincpu.mq@DC90 = FFCC1880D3FF3E04</action>
            <!--
            DC60 | 21 00 E0 : ld   hl,$E000 // sound code address
            DC63 | D3 E0    : out  ($E0),a  // watchdog
            DC65 | DB 40    : in   a,($40)  // read input
            DC67 | B8       : cp   b
            DC68 | 47       : ld   b,a
            DC69 | 28 F8    : jr   z,$DC93
            DC6B | FE 10    : cp   $10
            DC6D | 20 01    : jr   nz,$DCA0
            DC6F | 35       : dec  (hl)     // decrease code -01
            DC70 | FE 20    : cp   $20
            DC72 | 20 01    : jr   nz,$DCA5
            DC74 | 34       : inc  (hl)     // increase code +10
            DC75 | FE 80    : cp   $80
            DC77 | 20 04    : jr   nz,$DCAD
            DC79 | 3E F0    : ld   a,$F0    // decrease code -01
            DC7B | 18 06    : jr   $DCB3
            DC7D | FE 40    : cp   $40
            DC7F | 20 05    : jr   nz,$DCB6
            DC81 | 3E 10    : ld   a,$10    // increase code +10
            DC83 | 86       : add  a,(hl)
            DC84 | 77       : ld   (hl),a
            DC85 | 78       : ld   a,b
            DC86 | FE 01    : cp   $01
            DC88 | 20 03    : jr   nz,$DCBD
            DC8A | 7E       : ld   a,(hl)   // play sound
            DC8B | 18 06    : jr   $DCC3
            DC8D | FE 02    : cp   $02
            DC8F | 20 04    : jr   nz,$DCC5
            DC91 | 3E FF    : ld   a,$FF    // stop sound
            DC93 | D3 80    : out  ($80),a  // send sound code
            DC95 | 18 CC    : jr   $DC93
            -->
        </script>
        <script state="run">
            <output format="----- sauro sound test mode -----"  line="10" align="center" />
            <output format="left : decrease code -01"           line="11" align="center" />
            <output format="right : increase code +01"          line="12" align="center" />
            <output format="down : decrease code -10"           line="13" align="center" />
            <output format="up : increase code +10"             line="14" align="center" />
            <output format="button 1 : play sound"              line="15" align="center" />
            <output format="button 2 : stop sound"              line="16" align="center" />
            <output format="----------------------------"       line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;"  line="19" align="center"  >
                <argument>maincpu.pb@E000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@1F37 = CDE31832        </action>
            <action>maincpu.mq@DC90 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DC98 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DCA0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DCA8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DCB0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DCB8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DCC0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@0132 = 0250</action> <!-- ram/rom check -->
            <action>maincpu.mw@027C = 0418</action> <!-- wait? -->
            <action>maincpu.mw@1E5B = 1E81</action> <!-- color tile -->
        </script>
        <script state="off">
            <action>maincpu.mw@0132 = 0141</action>
            <action>maincpu.mw@027C = FB20</action>
            <action>maincpu.mw@1E5B = 1E69</action>
        </script>
    </cheat>

</mamecheat>
saurob.xml

Code: Select all

<!-- Sauro (set 3) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@13D5 = 00      </action> <!-- background -->
            <action>maincpu.md@1901 = 3EC9AFC1</action> <!-- wave -->
            <action>maincpu.md@19BA = 7DC9AFC1</action> <!-- objects -->
        </script>
        <script state="off">
            <action>maincpu.mb@13D5 = 07      </action>
            <action>maincpu.md@1901 = 3E19B2CD</action>
            <action>maincpu.md@19BA = 7DE2072A</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@3A74 = 23</action> <!-- shot -->
            <action>maincpu.mb@3AFE = 23</action> <!-- missile -->
        </script>
        <script state="off">
            <action>maincpu.mb@3A74 = 24</action>
            <action>maincpu.mb@3AFE = 24</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.md@142A = DD00003E</action> <!-- up -->
            <action>maincpu.md@143E = 5700003E</action> <!-- down -->
            <action>maincpu.md@145D = DD00003E</action> <!-- left -->
            <action>maincpu.md@1487 = 5700003E</action> <!-- right -->
        </script>
        <script state="change">
            <action>maincpu.mb@142B = param</action>
            <action>maincpu.mb@143F = param</action>
            <action>maincpu.mb@145E = param</action>
            <action>maincpu.mb@1488 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@142A = DD538BCD</action>
            <action>maincpu.md@143E = 57538BCD</action>
            <action>maincpu.md@145D = DD538BCD</action>
            <action>maincpu.md@1487 = 57538BCD</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - shot">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x04">02       </item>
            <item value="0x08">03       </item>
            <item value="0x0c">04       </item>
            <item value="0x10">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@3BA7 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@3BA7 = 05</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.md@2BE8 = CDDDC0C3        </action>
            <action>maincpu.mq@DDC0 = B840DBE0D3E00021</action>
            <action>maincpu.mq@DDC8 = 35012010FEF82847</action>
            <action>maincpu.mq@DDD0 = 2080FE34012020FE</action>
            <action>maincpu.mq@DDD8 = 2040FE0618F03E04</action>
            <action>maincpu.mq@DDE0 = 01FE787786103E05</action>
            <action>maincpu.mq@DDE8 = 2002FE06187E0320</action>
            <action>maincpu.mq@DDF0 = FFCC1880D3FF3E04</action>
            <!--
            DDC0 | 21 00 E0 : ld   hl,$E000 // sound code address
            DDC3 | D3 E0    : out  ($E0),a  // watchdog
            DDC5 | DB 40    : in   a,($40)  // read input
            DDC7 | B8       : cp   b
            DDC8 | 47       : ld   b,a
            DDC9 | 28 F8    : jr   z,$DDC3
            DDCB | FE 10    : cp   $10
            DDCD | 20 01    : jr   nz,$DDD0
            DDCF | 35       : dec  (hl)     // decrease code -01
            DDD0 | FE 20    : cp   $20
            DDD2 | 20 01    : jr   nz,$DDD5
            DDD4 | 34       : inc  (hl)     // increase code +10
            DDD5 | FE 80    : cp   $80
            DDD7 | 20 04    : jr   nz,$DDDD
            DDD9 | 3E F0    : ld   a,$F0    // decrease code -01
            DDDB | 18 06    : jr   $DDE3
            DDDD | FE 40    : cp   $40
            DDDF | 20 05    : jr   nz,$DDE6
            DDE1 | 3E 10    : ld   a,$10    // increase code +10
            DDE3 | 86       : add  a,(hl)
            DDE4 | 77       : ld   (hl),a
            DDE5 | 78       : ld   a,b
            DDE6 | FE 01    : cp   $01
            DDE8 | 20 03    : jr   nz,$DDED
            DDEA | 7E       : ld   a,(hl)   // play sound
            DDEB | 18 06    : jr   $DDF3
            DDED | FE 02    : cp   $02
            DDEF | 20 04    : jr   nz,$DDF5
            DDF1 | 3E FF    : ld   a,$FF    // stop sound
            DDF3 | D3 80    : out  ($80),a  // send sound code
            DDF5 | 18 CC    : jr   $DDC3
            -->
        </script>
        <script state="run">
            <output format="----- sauro sound test mode -----"  line="10" align="center" />
            <output format="left : decrease code -01"           line="11" align="center" />
            <output format="right : increase code +01"          line="12" align="center" />
            <output format="down : decrease code -10"           line="13" align="center" />
            <output format="up : increase code +10"             line="14" align="center" />
            <output format="button 1 : play sound"              line="15" align="center" />
            <output format="button 2 : stop sound"              line="16" align="center" />
            <output format="----------------------------"       line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;"  line="19" align="center"  >
                <argument>maincpu.pb@E000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@2BE8 = CDE31532        </action>
            <action>maincpu.mq@DDC0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DDC8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DDD0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DDD8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DDE0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DDE8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DDF0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@0132 = 024D</action> <!-- ram/rom check -->
            <action>maincpu.mw@0279 = 0418</action> <!-- wait? -->
            <action>maincpu.mw@2B0C = 2B32</action> <!-- color tile -->
        </script>
        <script state="off">
            <action>maincpu.mw@0132 = 0141</action>
            <action>maincpu.mw@0279 = FB20</action>
            <action>maincpu.mw@2B0C = 2B1A</action>
        </script>
    </cheat>

</mamecheat>
sauroc.xml

Code: Select all

<!-- Sauro (set 4, easier) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@1382 = 00      </action> <!-- background -->
            <action>maincpu.md@188A = 3EC9AFC1</action> <!-- wave -->
            <action>maincpu.md@1943 = 7DC9AFC1</action> <!-- objects -->
        </script>
        <script state="off">
            <action>maincpu.mb@1382 = 07      </action>
            <action>maincpu.md@188A = 3E193BCD</action>
            <action>maincpu.md@1943 = 7DE2072A</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@D7CF = 26</action> <!-- shot -->
            <action>maincpu.mb@D859 = 26</action> <!-- missile -->
        </script>
        <script state="off">
            <action>maincpu.mb@D7CF = 27</action>
            <action>maincpu.mb@D859 = 27</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.md@13D7 = DD00003E</action> <!-- up -->
            <action>maincpu.md@13EB = 5700003E</action> <!-- down -->
            <action>maincpu.md@140A = DD00003E</action> <!-- left -->
            <action>maincpu.md@1434 = 5700003E</action> <!-- right -->
        </script>
        <script state="change">
            <action>maincpu.mb@13D8 = param</action>
            <action>maincpu.mb@13EC = param</action>
            <action>maincpu.mb@140B = param</action>
            <action>maincpu.mb@1435 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@13D7 = DD3EABCD</action>
            <action>maincpu.md@13EB = 573EABCD</action>
            <action>maincpu.md@140A = DD3EABCD</action>
            <action>maincpu.md@1434 = 573EABCD</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - shot">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x04">02       </item>
            <item value="0x08">03       </item>
            <item value="0x0c">04       </item>
            <item value="0x10">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@D902 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@D902 = 05</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.md@1F45 = CDDD40C3        </action>
            <action>maincpu.mq@DD40 = B840DBE0D3E00021</action>
            <action>maincpu.mq@DD48 = 35012010FEF82847</action>
            <action>maincpu.mq@DD50 = 2080FE34012020FE</action>
            <action>maincpu.mq@DD58 = 2040FE0618F03E04</action>
            <action>maincpu.mq@DD60 = 01FE787786103E05</action>
            <action>maincpu.mq@DD68 = 2002FE06187E0320</action>
            <action>maincpu.mq@DD70 = FFCC1880D3FF3E04</action>
            <!--
            DD40 | 21 00 E0 : ld   hl,$E000 // sound code address
            DD43 | D3 E0    : out  ($E0),a  // watchdog
            DD45 | DB 40    : in   a,($40)  // read input
            DD47 | B8       : cp   b
            DD48 | 47       : ld   b,a
            DD49 | 28 F8    : jr   z,$DD43
            DD4B | FE 10    : cp   $10
            DD4D | 20 01    : jr   nz,$DD50
            DD4F | 35       : dec  (hl)     // decrease code -01
            DD50 | FE 20    : cp   $20
            DD52 | 20 01    : jr   nz,$DD55
            DD54 | 34       : inc  (hl)     // increase code +10
            DD55 | FE 80    : cp   $80
            DD57 | 20 04    : jr   nz,$DD5D
            DD59 | 3E F0    : ld   a,$F0    // decrease code -01
            DD5B | 18 06    : jr   $DD63
            DD5D | FE 40    : cp   $40
            DD5F | 20 05    : jr   nz,$DD66
            DD61 | 3E 10    : ld   a,$10    // increase code +10
            DD63 | 86       : add  a,(hl)
            DD64 | 77       : ld   (hl),a
            DD65 | 78       : ld   a,b
            DD66 | FE 01    : cp   $01
            DD68 | 20 03    : jr   nz,$DD6D
            DD6A | 7E       : ld   a,(hl)   // play sound
            DD6B | 18 06    : jr   $DD73
            DD6D | FE 02    : cp   $02
            DD6F | 20 04    : jr   nz,$DD75
            DD71 | 3E FF    : ld   a,$FF    // stop sound
            DD73 | D3 80    : out  ($80),a  // send sound code
            DD75 | 18 CC    : jr   $DD43
            -->
        </script>
        <script state="run">
            <output format="----- sauro sound test mode -----"  line="10" align="center" />
            <output format="left : decrease code -01"           line="11" align="center" />
            <output format="right : increase code +01"          line="12" align="center" />
            <output format="down : decrease code -10"           line="13" align="center" />
            <output format="up : increase code +10"             line="14" align="center" />
            <output format="button 1 : play sound"              line="15" align="center" />
            <output format="button 2 : stop sound"              line="16" align="center" />
            <output format="----------------------------"       line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;"  line="19" align="center"  >
                <argument>maincpu.pb@E000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@1F45 = CDE31832        </action>
            <action>maincpu.mq@DC90 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DC98 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DCA0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DCA8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DCB0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DCB8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DCC0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@0132 = 0250</action> <!-- ram/rom check -->
            <action>maincpu.mw@027C = 0418</action> <!-- wait? -->
            <action>maincpu.mw@1E69 = 1E8F</action> <!-- color tile -->
        </script>
        <script state="off">
            <action>maincpu.mw@0132 = 0141</action>
            <action>maincpu.mw@027C = FB20</action>
            <action>maincpu.mw@1E69 = 1E77</action>
        </script>
    </cheat>

</mamecheat>
saurop.xml

Code: Select all

<!-- Sauro (Philko license) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@13D1 = 00      </action> <!-- background -->
            <action>maincpu.md@18FD = 3EC9AFC1</action> <!-- wave -->
            <action>maincpu.md@19B6 = 7DC9AFC1</action> <!-- objects -->
        </script>
        <script state="off">
            <action>maincpu.mb@13D1 = 07      </action>
            <action>maincpu.md@18FD = 3E19AECD</action>
            <action>maincpu.md@19B6 = 7DE2072A</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@407C = 26</action> <!-- shot -->
            <action>maincpu.mb@4106 = 26</action> <!-- missile -->
        </script>
        <script state="off">
            <action>maincpu.mb@407C = 27</action>
            <action>maincpu.mb@4106 = 27</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.md@1426 = DD00003E</action> <!-- up -->
            <action>maincpu.md@143A = 5700003E</action> <!-- down -->
            <action>maincpu.md@1459 = DD00003E</action> <!-- left -->
            <action>maincpu.md@1483 = 5700003E</action> <!-- right -->
        </script>
        <script state="change">
            <action>maincpu.mb@1427 = param</action>
            <action>maincpu.mb@143B = param</action>
            <action>maincpu.mb@145A = param</action>
            <action>maincpu.mb@1484 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@1426 = DD534ACD</action>
            <action>maincpu.md@143A = 57534ACD</action>
            <action>maincpu.md@1459 = DD534ACD</action>
            <action>maincpu.md@1483 = 57534ACD</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - shot">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x04">02       </item>
            <item value="0x08">03       </item>
            <item value="0x0c">04       </item>
            <item value="0x10">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@41AF = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@41AF = 05</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.md@2BE4 = CDDD80C3        </action>
            <action>maincpu.mq@DD80 = B840DBE0D3E00021</action>
            <action>maincpu.mq@DD88 = 35012010FEF82847</action>
            <action>maincpu.mq@DD90 = 2080FE34012020FE</action>
            <action>maincpu.mq@DD98 = 2040FE0618F03E04</action>
            <action>maincpu.mq@DDA0 = 01FE787786103E05</action>
            <action>maincpu.mq@DDA8 = 2002FE06187E0320</action>
            <action>maincpu.mq@DDB0 = FFCC1880D3FF3E04</action>
            <!--
            DD80 | 21 00 E0 : ld   hl,$E000 // sound code address
            DD83 | D3 E0    : out  ($E0),a  // watchdog
            DD85 | DB 40    : in   a,($40)  // read input
            DD87 | B8       : cp   b
            DD88 | 47       : ld   b,a
            DD89 | 28 F8    : jr   z,$DD83
            DD8B | FE 10    : cp   $10
            DD8D | 20 01    : jr   nz,$DD90
            DD8F | 35       : dec  (hl)     // decrease code -01
            DD90 | FE 20    : cp   $20
            DD92 | 20 01    : jr   nz,$DD95
            DD94 | 34       : inc  (hl)     // increase code +10
            DD95 | FE 80    : cp   $80
            DD97 | 20 04    : jr   nz,$DD9D
            DD99 | 3E F0    : ld   a,$F0    // decrease code -01
            DD9B | 18 06    : jr   $DDA3
            DD9D | FE 40    : cp   $40
            DD9F | 20 05    : jr   nz,$DDA6
            DDA1 | 3E 10    : ld   a,$10    // increase code +10
            DDA3 | 86       : add  a,(hl)
            DDA4 | 77       : ld   (hl),a
            DDA5 | 78       : ld   a,b
            DDA6 | FE 01    : cp   $01
            DDA8 | 20 03    : jr   nz,$DDAD
            DDAA | 7E       : ld   a,(hl)   // play sound
            DDAB | 18 06    : jr   $DDB3
            DDAD | FE 02    : cp   $02
            DDAF | 20 04    : jr   nz,$DDB5
            DDB1 | 3E FF    : ld   a,$FF    // stop sound
            DDB3 | D3 80    : out  ($80),a  // send sound code
            DDB5 | 18 CC    : jr   $DD83
            -->
        </script>
        <script state="run">
            <output format="----- sauro sound test mode -----"  line="10" align="center" />
            <output format="left : decrease code -01"           line="11" align="center" />
            <output format="right : increase code +01"          line="12" align="center" />
            <output format="down : decrease code -10"           line="13" align="center" />
            <output format="up : increase code +10"             line="14" align="center" />
            <output format="button 1 : play sound"              line="15" align="center" />
            <output format="button 2 : stop sound"              line="16" align="center" />
            <output format="----------------------------"       line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;"  line="19" align="center"  >
                <argument>maincpu.pb@E000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@2BE4 = CDE31832        </action>
            <action>maincpu.mq@DD80 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DD88 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DD90 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DD98 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DDA0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DDA8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DDB0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@0132 = 024D</action> <!-- ram/rom check -->
            <action>maincpu.mw@0279 = 0418</action> <!-- wait? -->
            <action>maincpu.mw@2B08 = 2B2E</action> <!-- color tile -->
        </script>
        <script state="off">
            <action>maincpu.mw@0132 = 0141</action>
            <action>maincpu.mw@0279 = FB20</action>
            <action>maincpu.mw@2B08 = 2B16</action>
        </script>
    </cheat>

</mamecheat>
saurorr.xml

Code: Select all

<!-- Sauro (Recreativos Real S.A. license) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@1382 = 00      </action> <!-- background -->
            <action>maincpu.md@188A = 3EC9AFC1</action> <!-- wave -->
            <action>maincpu.md@1943 = 7DC9AFC1</action> <!-- objects -->
        </script>
        <script state="off">
            <action>maincpu.mb@1382 = 07      </action>
            <action>maincpu.md@188A = 3E193BCD</action>
            <action>maincpu.md@1943 = 7DE2072A</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@3FF4 = 27</action> <!-- shot -->
            <action>maincpu.mb@407E = 27</action> <!-- missile -->
        </script>
        <script state="off">
            <action>maincpu.mb@3FF4 = 28</action>
            <action>maincpu.mb@407E = 28</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.md@13D7 = DD00003E</action> <!-- up -->
            <action>maincpu.md@13EB = 5700003E</action> <!-- down -->
            <action>maincpu.md@140A = DD00003E</action> <!-- left -->
            <action>maincpu.md@1434 = 5700003E</action> <!-- right -->
        </script>
        <script state="change">
            <action>maincpu.mb@13D8 = param</action>
            <action>maincpu.mb@13EC = param</action>
            <action>maincpu.mb@140B = param</action>
            <action>maincpu.mb@1435 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@13D7 = DD52A9CD</action>
            <action>maincpu.md@13EB = 5752A9CD</action>
            <action>maincpu.md@140A = DD52A9CD</action>
            <action>maincpu.md@1434 = 5752A9CD</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - shot">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x04">02       </item>
            <item value="0x08">03       </item>
            <item value="0x0c">04       </item>
            <item value="0x10">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@4127 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@4127 = 05</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.md@2B62 = CDDCE0C3        </action>
            <action>maincpu.mq@DCE0 = B840DBE0D3E00021</action>
            <action>maincpu.mq@DCE8 = 35012010FEF82847</action>
            <action>maincpu.mq@DCF0 = 2080FE34012020FE</action>
            <action>maincpu.mq@DCF8 = 2040FE0618F03E04</action>
            <action>maincpu.mq@DD00 = 01FE787786103E05</action>
            <action>maincpu.mq@DD08 = 2002FE06187E0320</action>
            <action>maincpu.mq@DD10 = FFCC1880D3FF3E04</action>
            <!--
            DCE0 | 21 00 E0 : ld   hl,$E000 // sound code address
            DCE3 | D3 E0    : out  ($E0),a  // watchdog
            DCE5 | DB 40    : in   a,($40)  // read input
            DCE7 | B8       : cp   b
            DCE8 | 47       : ld   b,a
            DCE9 | 28 F8    : jr   z,$DCE3
            DCEB | FE 10    : cp   $10
            DCED | 20 01    : jr   nz,$DCF0
            DCEF | 35       : dec  (hl)     // decrease code -01
            DCF0 | FE 20    : cp   $20
            DCF2 | 20 01    : jr   nz,$DCF5
            DCF4 | 34       : inc  (hl)     // increase code +10
            DCF5 | FE 80    : cp   $80
            DCF7 | 20 04    : jr   nz,$DCFD
            DCF9 | 3E F0    : ld   a,$F0    // decrease code -01
            DCFB | 18 06    : jr   $DD03
            DCFD | FE 40    : cp   $40
            DCFF | 20 05    : jr   nz,$DD06
            DD01 | 3E 10    : ld   a,$10    // increase code +10
            DD03 | 86       : add  a,(hl)
            DD04 | 77       : ld   (hl),a
            DD05 | 78       : ld   a,b
            DD06 | FE 01    : cp   $01
            DD08 | 20 03    : jr   nz,$DD0D
            DD0A | 7E       : ld   a,(hl)   // play sound
            DD0B | 18 06    : jr   $DD13
            DD0D | FE 02    : cp   $02
            DD0F | 20 04    : jr   nz,$DD15
            DD11 | 3E FF    : ld   a,$FF    // stop sound
            DD13 | D3 80    : out  ($80),a  // send sound code
            DD15 | 18 CC    : jr   $DCE3
            -->
        </script>
        <script state="run">
            <output format="----- sauro sound test mode -----"  line="10" align="center" />
            <output format="left : decrease code -01"           line="11" align="center" />
            <output format="right : increase code +01"          line="12" align="center" />
            <output format="down : decrease code -10"           line="13" align="center" />
            <output format="up : increase code +10"             line="14" align="center" />
            <output format="button 1 : play sound"              line="15" align="center" />
            <output format="button 2 : stop sound"              line="16" align="center" />
            <output format="----------------------------"       line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;"  line="19" align="center"  >
                <argument>maincpu.pb@E000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@2B62 = CDE31932        </action>
            <action>maincpu.mq@DCE0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DCE8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DCF0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DCF8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DD00 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DD08 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DD10 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@0132 = 0250</action> <!-- ram/rom check -->
            <action>maincpu.mw@027C = 0418</action> <!-- wait? -->
            <action>maincpu.mw@2A86 = 2AAC</action> <!-- color tile -->
        </script>
        <script state="off">
            <action>maincpu.mw@0132 = 0141</action>
            <action>maincpu.mw@027C = FB20</action>
            <action>maincpu.mw@2A86 = 2A94</action>
        </script>
    </cheat>

</mamecheat>
saurobl.xml

Code: Select all

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

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.md@03D5 = C3C9AFC1</action> <!-- objects -->
            <action>maincpu.mw@13D3 = 13D5    </action> <!-- background -->
            <action>maincpu.md@1901 = 3EC9AFC1</action> <!-- wave -->
        </script>
        <script state="off">
            <action>maincpu.md@03D5 = FEE0BF3A</action>
            <action>maincpu.mw@13D3 = DE00    </action>
            <action>maincpu.md@1901 = 3E19B2CD</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@3A74 = 23</action> <!-- shot -->
            <action>maincpu.mb@3AFE = 23</action> <!-- missile -->
        </script>
        <script state="off">
            <action>maincpu.mb@3A74 = 24</action>
            <action>maincpu.mb@3AFE = 24</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.md@142A = DD00003E</action> <!-- up -->
            <action>maincpu.md@143E = 5700003E</action> <!-- down -->
            <action>maincpu.md@145D = DD00003E</action> <!-- left -->
            <action>maincpu.md@1487 = 5700003E</action> <!-- right -->
        </script>
        <script state="change">
            <action>maincpu.mb@142B = param</action>
            <action>maincpu.mb@143F = param</action>
            <action>maincpu.mb@145E = param</action>
            <action>maincpu.mb@1488 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@142A = DD538BCD</action>
            <action>maincpu.md@143E = 57538BCD</action>
            <action>maincpu.md@145D = DD538BCD</action>
            <action>maincpu.md@1487 = 57538BCD</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - shot">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x04">02       </item>
            <item value="0x08">03       </item>
            <item value="0x0c">04       </item>
            <item value="0x10">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@3BA7 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@3BA7 = 05</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.md@2BE8 = CDDE70C3        </action>
            <action>maincpu.mq@DE70 = B840DBE0D3E10021</action>
            <action>maincpu.mq@DE78 = 350120EFFEF82847</action>
            <action>maincpu.mq@DE80 = 207FFE340120DFFE</action>
            <action>maincpu.mq@DE88 = 20BFFE0618F03E04</action>
            <action>maincpu.mq@DE90 = FEFE787786103E05</action>
            <action>maincpu.mq@DE98 = 20FDFE06187E0320</action>
            <action>maincpu.mq@DEA0 = FFCC1880D3FF3E04</action>
            <!--
            DE70 | 21 00 E1 : ld   hl,$E100 // sound code address
            DE73 | D3 E0    : out  ($E0),a  // watchdog
            DE75 | DB 40    : in   a,($40)  // read input
            DE77 | B8       : cp   b
            DE78 | 47       : ld   b,a
            DE79 | 28 F8    : jr   z,$DE73
            DE7B | FE EF    : cp   $EF
            DE7D | 20 01    : jr   nz,$DE80
            DE7F | 35       : dec  (hl)     // decrease code -01
            DE80 | FE DF    : cp   $DF
            DE82 | 20 01    : jr   nz,$DE85
            DE84 | 34       : inc  (hl)     // increase code +10
            DE85 | FE 7F    : cp   $7F
            DE87 | 20 04    : jr   nz,$DE8D
            DE89 | 3E F0    : ld   a,$F0    // decrease code -01
            DE8B | 18 06    : jr   $DE93
            DE8D | FE BF    : cp   $BF
            DE8F | 20 05    : jr   nz,$DE96
            DE91 | 3E 10    : ld   a,$10    // increase code +10
            DE93 | 86       : add  a,(hl)
            DE94 | 77       : ld   (hl),a
            DE95 | 78       : ld   a,b
            DE96 | FE FE    : cp   $FE
            DE98 | 20 03    : jr   nz,$DE9D
            DE9A | 7E       : ld   a,(hl)   // play sound
            DE9B | 18 06    : jr   $DEA3
            DE9D | FE FD    : cp   $FD
            DE9F | 20 04    : jr   nz,$DEA5
            DEA1 | 3E FF    : ld   a,$FF    // stop sound
            DEA3 | D3 80    : out  ($80),a  // send sound code
            DEA5 | 18 CC    : jr   $DE73
            -->
        </script>
        <script state="run">
            <output format="----- sauro sound test mode -----"  line="10" align="center" />
            <output format="left : decrease code -01"           line="11" align="center" />
            <output format="right : increase code +01"          line="12" align="center" />
            <output format="down : decrease code -10"           line="13" align="center" />
            <output format="up : increase code +10"             line="14" align="center" />
            <output format="button 1 : play sound"              line="15" align="center" />
            <output format="button 2 : stop sound"              line="16" align="center" />
            <output format="----------------------------"       line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;"  line="19" align="center"  >
                <argument>maincpu.pb@E100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@2BE8 = CDE31532        </action>
            <action>maincpu.mq@DE70 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DE78 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DE80 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DE88 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DE90 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DE98 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DEA0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@0132 = 024D</action> <!-- ram/rom check -->
            <action>maincpu.mw@0279 = 0418</action> <!-- wait? -->
            <action>maincpu.mw@2B0C = 2B32</action> <!-- color tile -->
        </script>
        <script state="off">
            <action>maincpu.mw@0132 = 0141</action>
            <action>maincpu.mw@0279 = FB20</action>
            <action>maincpu.mw@2B0C = 2B1A</action>
        </script>
    </cheat>

</mamecheat>
seawolft.xml

Code: Select all

<!-- Sea Wolf (Tecfri) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@13D5 = 00      </action> <!-- background -->
            <action>maincpu.md@1901 = 3EC9AFC1</action> <!-- wave -->
            <action>maincpu.md@19BA = 7DC9AFC1</action> <!-- objects -->
        </script>
        <script state="off">
            <action>maincpu.mb@13D5 = 07      </action>
            <action>maincpu.md@1901 = 3E19B2CD</action>
            <action>maincpu.md@19BA = 7DE2AD2A</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@3C86 = 61</action> <!-- shot -->
            <action>maincpu.mb@3D10 = 61</action> <!-- missile -->
        </script>
        <script state="off">
            <action>maincpu.mb@3C86 = 62</action>
            <action>maincpu.mb@3D10 = 61</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.md@142A = DD00003E</action> <!-- up -->
            <action>maincpu.md@143E = 5700003E</action> <!-- down -->
            <action>maincpu.md@145D = DD00003E</action> <!-- left -->
            <action>maincpu.md@1487 = 5700003E</action> <!-- right -->
        </script>
        <script state="change">
            <action>maincpu.mb@142B = param</action>
            <action>maincpu.mb@143F = param</action>
            <action>maincpu.mb@145E = param</action>
            <action>maincpu.mb@1488 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@142A = DD559DCD</action>
            <action>maincpu.md@143E = 57559DCD</action>
            <action>maincpu.md@145D = DD559DCD</action>
            <action>maincpu.md@1487 = 57559DCD</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - shot">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x04">02       </item>
            <item value="0x08">03       </item>
            <item value="0x0c">04       </item>
            <item value="0x10">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@3DB9 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@3DB9 = 05</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.md@2DFA = CDDFC0C3        </action>
            <action>maincpu.mq@DFC0 = B840DBE0D3E00021</action>
            <action>maincpu.mq@DFC8 = 35012010FEF82847</action>
            <action>maincpu.mq@DFD0 = 2080FE34012020FE</action>
            <action>maincpu.mq@DFD8 = 2040FE0618F03E04</action>
            <action>maincpu.mq@DFE0 = 01FE787786103E05</action>
            <action>maincpu.mq@DFE8 = 2002FE06187E0320</action>
            <action>maincpu.mq@DFF0 = FFCC1880D3FF3E04</action>
            <!--
            DFC0 | 21 00 E0 : ld   hl,$E000 // sound code address
            DFC3 | D3 E0    : out  ($E0),a  // watchdog
            DFC5 | DB 40    : in   a,($40)  // read input
            DFC7 | B8       : cp   b
            DFC8 | 47       : ld   b,a
            DFC9 | 28 F8    : jr   z,$DFC3
            DFCB | FE 10    : cp   $10
            DFCD | 20 01    : jr   nz,$DFD0
            DFCF | 35       : dec  (hl)     // decrease code -01
            DFD0 | FE 20    : cp   $20
            DFD2 | 20 01    : jr   nz,$DFD5
            DFD4 | 34       : inc  (hl)     // increase code +10
            DFD5 | FE 80    : cp   $80
            DFD7 | 20 04    : jr   nz,$DFDD
            DFD9 | 3E F0    : ld   a,$F0    // decrease code -01
            DFDB | 18 06    : jr   $DFE3
            DFDD | FE 40    : cp   $40
            DFDF | 20 05    : jr   nz,$DFE6
            DFE1 | 3E 10    : ld   a,$10    // increase code +10
            DFE3 | 86       : add  a,(hl)
            DFE4 | 77       : ld   (hl),a
            DFE5 | 78       : ld   a,b
            DFE6 | FE 01    : cp   $01
            DFE8 | 20 03    : jr   nz,$DFED
            DFEA | 7E       : ld   a,(hl)   // play sound
            DFEB | 18 06    : jr   $DFF3
            DFED | FE 02    : cp   $02
            DFEF | 20 04    : jr   nz,$DFF5
            DFF1 | 3E FF    : ld   a,$FF    // stop sound
            DFF3 | D3 80    : out  ($80),a  // send sound code
            DFF5 | 18 CC    : jr   $DFC3
            -->
        </script>
        <script state="run">
            <output format="----- sauro sound test mode -----"  line="10" align="center" />
            <output format="left : decrease code -01"           line="11" align="center" />
            <output format="right : increase code +01"          line="12" align="center" />
            <output format="down : decrease code -10"           line="13" align="center" />
            <output format="up : increase code +10"             line="14" align="center" />
            <output format="button 1 : play sound"              line="15" align="center" />
            <output format="button 2 : stop sound"              line="16" align="center" />
            <output format="----------------------------"       line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;"  line="19" align="center"  >
                <argument>maincpu.pb@E000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@2DFA = CDE15332        </action>
            <action>maincpu.mq@DFC0 = FF80CA023FD3C8BD</action>
            <action>maincpu.mq@DFC8 = FFFFFFFF000000FF</action>
            <action>maincpu.mq@DFD0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DFD8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DFE0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DFE8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DFF0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@0132 = 024D</action> <!-- ram/rom check -->
            <action>maincpu.mw@0279 = 0418</action> <!-- wait? -->
            <action>maincpu.mw@2D1E = 2D44</action> <!-- color tile -->
        </script>
        <script state="off">
            <action>maincpu.mw@0132 = 0141</action>
            <action>maincpu.mw@0279 = FB20</action>
            <action>maincpu.mw@2D1E = 2D2C</action>
        </script>
    </cheat>

</mamecheat>
Post Reply