Page 1 of 1

[sauro] Sauro

Posted: Fri Mar 18, 2022 1:19 pm
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>

[sauro] Sauro (update)

Posted: Sat Nov 26, 2022 8:11 am
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.

[sauro]+ Sauro

Posted: Wed Feb 14, 2024 9:30 am
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>