[mouser] Mouser

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

[mouser] Mouser

Post by jman »

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>maincpu.ob@3e5c = c9</action> <!-- enemy -->
        <action>maincpu.ob@22f4 = c9</action> <!-- fall down -->
        <action>maincpu.ob@3d79 = c9</action> <!-- moving block -->
    </script>
    <script state="off">
        <action>maincpu.ob@3e5c = c8</action>
        <action>maincpu.ob@22f4 = d8</action>
        <action>maincpu.ob@3d79 = af</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter min="0x01" max="0x05" step="0x01" />
    <script state="on">
        <action>maincpu.mw@1e0f =             1990</action>
        <action>maincpu.oq@1990 = 10c1ffffcdc5ff06</action>
        <action>maincpu.mq@1990 = ffff210affff00ff</action>
        <action>maincpu.oq@1998 = ffffffffffffc9ff</action>
        <action>maincpu.mq@1998 = fffffffffffffff9</action>
        <!--
        1990 | 06 xx    : ld   b,$xx
        1992 | c5       : push bc
        1993 | cd 0a 21 : call $210a
        1996 | c1       : pop  bc
        1997 | 10 f9    : djnz $1992
        1999 | c9       : ret
        -->
    </script>
    <script state="change">
        <action>maincpu.mb@1991 = param</action>
    </script>
    <script state="off">
        <action>maincpu.mw@1e0f =             210a</action>
        <action>maincpu.oq@1990 = ffffffffffffffff</action>
        <action>maincpu.mq@1990 = ffffffffffffffff</action>
        <action>maincpu.oq@1998 = ffffffffffffffff</action>
        <action>maincpu.mq@1998 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="multiple jump">
    <script state="on">
        <action>maincpu.mw@210f =             19a0</action>
        <action>maincpu.oq@19a0 = c3ffffda17ffff3a</action>
        <action>maincpu.mq@19a0 = ff21bbffff6010ff</action>
        <action>maincpu.mq@19a8 = ffffffffffff21ff</action>
        <!--
        19a0 | 3a 10 60 : ld  a,($6010)
        19a3 | 17       : rla
        19a4 | da bb 21 : jp  c,$21bb
        19a7 | c3 ff 21 : jp  $21ff
        -->
    </script>
    <script state="off">
        <action>maincpu.mw@210f =             21ff</action>
        <action>maincpu.oq@19a0 = ffffffffffffffff</action>
        <action>maincpu.mq@19a0 = ffffffffffffffff</action>
        <action>maincpu.mq@19a8 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="sound test mode">
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action>maincpu.ob@05d4 =               c9</action> <!-- disable 2nd sequence -->
        <action>maincpu.mw@0251 =             19b0</action>
        <action>maincpu.oq@19b0 = 22d5ffff11ffff21</action>
        <action>maincpu.mq@19b0 = ffff19b3ff8000ff</action>
        <action>maincpu.oq@19b8 = c86fbdffff3affff</action>
        <action>maincpu.mq@19b8 = ffffffa000ff6100</action>
        <action>maincpu.oq@19c0 = 20fffe25ff20fffe</action>
        <action>maincpu.mq@19c0 = ff80ffff01ff40ff</action>
        <action>maincpu.oq@19c8 = 187cff20fffe24ff</action>
        <action>maincpu.mq@19c8 = ffff03ff08ffff01</action>
        <action>maincpu.oq@19d0 = ff32ff3ec0fffeff</action>
        <action>maincpu.mq@19d0 = 00ffffffff10ff05</action>
        <action>maincpu.oq@19d8 = ffffffffffffc9ff</action>
        <action>maincpu.mq@19d8 = ffffffffffffffb8</action>
        <!--
        19b0 | 21 00 80 : ld   hl,$8000   // initialize sound and input values
        19b3 | 11 b3 19 : ld   de,$19b3
        19b6 | d5       : push de
        19b7 | 22 00 61 : ld   ($6100),hl
        19ba | 3a 00 a0 : ld   a,($a000)  // read input
        19bd | bd       : cp   l
        19be | 6f       : ld   l,a
        19bf | c8       : ret  z
        19c0 | fe 40    : cp   $40
        19c2 | 20 01    : jr   nz,$19c5
        19c4 | 25       : dec  h          // decrease code
        19c5 | fe 80    : cp   $80
        19c7 | 20 01    : jr   nz,$19ca
        19c9 | 24       : inc  h          // increase code
        19ca | fe 08    : cp   $08
        19cc | 20 03    : jr   nz,$19d1
        19ce | 7c       : ld   a,h        // play sound
        19cf | 18 05    : jr   $19d6
        19d1 | fe 10    : cp   $10
        19d3 | c0       : ret  nz
        19d4 | 3e ff    : ld   a,$ff      // stop sound
        19d6 | 32 00 b8 : ld   ($b800),a
        19d9 | c9       : ret
        -->
    </script>
    <script state="run">
        <output format="----- mouser sound test mode -----" line="10" align="center" />
        <output format="left : decrease code"               line="11" align="center" />
        <output format="right : increase code"              line="12" align="center" />
        <output format="button 1 : play sound"              line="13" align="center" />
        <output format="up : stop sound"                    line="14" align="center" />
        <output format="----------------------------"       line="15" align="center" />
        <output format="&lt;&lt; sound code %2.2X &gt;&gt;" line="17" align="center">
            <argument>maincpu.pb@6101</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.ob@05d4 =               23</action>
        <action>maincpu.mw@0251 =             0336</action>
        <action>maincpu.oq@19b0 = ffffffffffffffff</action>
        <action>maincpu.mq@19b0 = ffffffffffffffff</action>
        <action>maincpu.oq@19b8 = ffffffffffffffff</action>
        <action>maincpu.mq@19b8 = ffffffffffffffff</action>
        <action>maincpu.oq@19c0 = ffffffffffffffff</action>
        <action>maincpu.mq@19c0 = ffffffffffffffff</action>
        <action>maincpu.oq@19c8 = ffffffffffffffff</action>
        <action>maincpu.mq@19c8 = ffffffffffffffff</action>
        <action>maincpu.oq@19d0 = ffffffffffffffff</action>
        <action>maincpu.mq@19d0 = ffffffffffffffff</action>
        <action>maincpu.oq@19d8 = ffffffffffffffff</action>
        <action>maincpu.mq@19d8 = ffffffffffffffff</action>
    </script>
</cheat>
This game crashes after level 21. The following code will avoid the crash.

Code: Select all

<cheat desc="avoid crash after level 21">
    <script state="on">
        <action>maincpu.ob@16a7 =               cd</action>
        <action>maincpu.mw@16a8 =             19e0</action>
        <action>maincpu.ob@34c2 =               cd</action>
        <action>maincpu.mw@34c3 =             19e0</action>
        <action>maincpu.oq@19e0 = ff3ed8fffeffff3a</action>
        <action>maincpu.mq@19e0 = 05ffff06ff6229ff</action>
        <action>maincpu.oq@19e8 = ffffffffffffffc9</action>
        <!--
        19e0 | 3a ff ff : ld   a,($6229)
        19e3 | fe ff    : cp   $06
        19e5 | d8       : ret  c
        19e6 | 3e ff    : ld   a,$05
        19e8 | c9       : ret
        -->
    </script>
    <script state="off">
        <action>maincpu.ob@16a7 =               3a</action>
        <action>maincpu.mw@16a8 =             6229</action>
        <action>maincpu.ob@34c2 =               3a</action>
        <action>maincpu.mw@34c3 =             6229</action>
        <action>maincpu.oq@19e0 = ffffffffffffffff</action>
        <action>maincpu.mq@19e0 = ffffffffffffffff</action>
        <action>maincpu.oq@19e8 = ffffffffffffffff</action>
    </script>
</cheat>
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[mouser] Mouser (update)

Post by jman »

Code: Select all

<cheat desc="avoid crash after level 21">
    <script state="on">
        <action>maincpu.ob@16a7 =               cd</action>
        <action>maincpu.mw@16a8 =             19b0</action>
        <action>maincpu.ob@34c2 =               cd</action>
        <action>maincpu.mw@34c3 =             19b0</action>
        <action>maincpu.oq@19b0 = ff3ed8fffeffff3a</action>
        <action>maincpu.mq@19b0 = 05ffff06ff6229ff</action>
        <action>maincpu.oq@19b8 = ffffffffffffffc9</action>
        <action>maincpu.mq@19b8 = ffffffffffffffff</action>
        <!--
        19b0 | 3a 29 62 : ld  a,($6229)
        19b3 | fe 06    : cp  $06
        19b5 | d8       : ret c
        19b6 | 3e 05    : ld  a,$05
        19b8 | c9       : ret
        -->
    </script>
    <script state="off">
        <action>maincpu.ob@16a7 =               3a</action>
        <action>maincpu.mw@16a8 =             6229</action>
        <action>maincpu.ob@34c2 =               3a</action>
        <action>maincpu.mw@34c3 =             6229</action>
        <action>maincpu.oq@19b0 = ffffffffffffffff</action>
        <action>maincpu.mq@19b0 = ffffffffffffffff</action>
        <action>maincpu.oq@19b8 = ffffffffffffffff</action>
        <action>maincpu.mq@19b8 = ffffffffffffffff</action>
    </script>
</cheat>
"avoid crash after level 21" : reallocate address.

Code: Select all

<cheat desc="sound test mode">
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action>maincpu.ob@05d4 =               c9</action> <!-- disable 2nd sequence -->
        <action>maincpu.ob@02ae =               c9</action> <!-- disable 1UP string -->
        <action>maincpu.ob@0a62 =               c9</action> <!-- disable 1UP string -->
        <action>maincpu.mw@0251 =             19c0</action>
        <action>maincpu.oq@19c0 = e62fffff3affff21</action>
        <action>maincpu.mq@19c0 = ffffa800ff6200ff</action>
        <action>maincpu.oq@19c8 = 47b8b1ffff3a4fff</action>
        <action>maincpu.mq@19c8 = ffffffa000ffff04</action>
        <action>maincpu.oq@19d0 = fe35ff20fffeff28</action>
        <action>maincpu.mq@19d0 = ffff01ff40fff1ff</action>
        <action>maincpu.oq@19d8 = ff20fffe34ff20ff</action>
        <action>maincpu.mq@19d8 = 04ff20ffff01ff80</action>
        <action>maincpu.oq@19e0 = ff20fffeff18ff3e</action>
        <action>maincpu.mq@19e0 = 05ff10ff06fff0ff</action>
        <action>maincpu.oq@19e8 = 20fffe787786ff3e</action>
        <action>maincpu.mq@19e8 = ff08ffffffff10ff</action>
        <action>maincpu.oq@19f0 = fffeff18fff67eff</action>
        <action>maincpu.mq@19f0 = 04ff06ff80ffff05</action>
        <action>maincpu.oq@19f8 = 18ffff32ff3eff20</action>
        <action>maincpu.mq@19f8 = ffb800ffffff05ff</action>
        <action>maincpu.oq@1a00 = ffffffffffffffff</action>
        <action>maincpu.mq@1a00 = ffffffffffffffc2</action>
        <!--
        19c0 | 21 00 62 : ld  hl,$6200  // sound code address
        19c3 | 3a 00 a8 : ld  a,($A800) // read start button
        19c6 | 2f       : cpl
        19c7 | e6 04    : and $04
        19c9 | 4f       : ld  c,a
        19ca | 3a 00 a0 : ld  a,($A000) // read other inputs
        19cd | b1       : or  c
        19ce | b8       : cp  b
        19cf | 47       : ld  b,a
        19d0 | 28 f1    : jr  z,$19C3
        19d2 | fe 40    : cp  $40
        19d4 | 20 01    : jr  nz,$19D7
        19d6 | 35       : dec (hl)      // decrease code -01
        19d7 | fe 80    : cp  $80
        19d9 | 20 01    : jr  nz,$19DC
        19db | 34       : inc (hl)      // increase code +01
        19dc | fe 20    : cp  $20
        19de | 20 04    : jr  nz,$19E4
        19e0 | 3e f0    : ld  a,$F0     // decrease code -10
        19e2 | 18 06    : jr  $19EA
        19e4 | fe 10    : cp  $10
        19e6 | 20 05    : jr  nz,$19ED
        19e8 | 3e 10    : ld  a,$10     // increase code +10
        19ea | 86       : add a,(hl)
        19eb | 77       : ld  (hl),a
        19ec | 78       : ld  a,b
        19ed | fe 08    : cp  $08
        19ef | 20 05    : jr  nz,$19F6
        19f1 | 7e       : ld  a,(hl)    // play sound
        19f2 | f6 80    : or  $80
        19f4 | 18 06    : jr  $19FC
        19f6 | fe 04    : cp  $04
        19f8 | 20 05    : jr  nz,$19FF
        19fa | 3e ff    : ld  a,$FF     // stop sound
        19fc | 32 00 b8 : ld  ($B800),a // send sound code
        19ff | 18 c2    : jr  $19C3
        -->
    </script>
    <script state="run">
        <output format="----- mouser sound test mode -----" line="10" align="center" />
        <output format="left : decrease code -01"           line="11" align="center" />
        <output format="right : increase code +01"          line="12" align="center" />
        <output format="down : decrease code -10"           line="13" align="center" />
        <output format="up : increase code +10"             line="14" align="center" />
        <output format="button 1 : play sound"              line="15" align="center" />
        <output format="start : stop sound"                 line="16" align="center" />
        <output format="----------------------------"       line="17" align="center" />
        <output format="&lt;&lt; sound code %2.2X &gt;&gt;" line="19" align="center"  >
            <argument>maincpu.pb@6200</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.ob@05d4 =               23</action>
        <action>maincpu.ob@02ae =               3c</action>
        <action>maincpu.ob@0a62 =               3e</action>
        <action>maincpu.mw@0251 =             0336</action>
        <action>maincpu.oq@19c0 = ffffffffffffffff</action>
        <action>maincpu.mq@19c0 = ffffffffffffffff</action>
        <action>maincpu.oq@19c8 = ffffffffffffffff</action>
        <action>maincpu.mq@19c8 = ffffffffffffffff</action>
        <action>maincpu.oq@19d0 = ffffffffffffffff</action>
        <action>maincpu.mq@19d0 = ffffffffffffffff</action>
        <action>maincpu.oq@19d8 = ffffffffffffffff</action>
        <action>maincpu.mq@19d8 = ffffffffffffffff</action>
        <action>maincpu.oq@19e0 = ffffffffffffffff</action>
        <action>maincpu.mq@19e0 = ffffffffffffffff</action>
        <action>maincpu.oq@19e8 = ffffffffffffffff</action>
        <action>maincpu.mq@19e8 = ffffffffffffffff</action>
        <action>maincpu.oq@19f0 = ffffffffffffffff</action>
        <action>maincpu.mq@19f0 = ffffffffffffffff</action>
        <action>maincpu.oq@19f8 = ffffffffffffffff</action>
        <action>maincpu.mq@19f8 = ffffffffffffffff</action>
        <action>maincpu.oq@1a00 = ffffffffffffffff</action>
        <action>maincpu.mq@1a00 = ffffffffffffffff</action>
    </script>
</cheat>
"sound test mode" : rewrite routine. reallocate address. add up/down key (code ±10). change sound stop button from up to start.
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[mouserc] Mouser (Cosmos)

Post by jman »

I confirm that mouserc has the same address and code as mouser. The following codes are for mouserc.

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>maincpu.ob@22f4 = c9</action> <!-- fall down -->
        <action>maincpu.ob@3d79 = c9</action> <!-- moving block -->
        <action>maincpu.ob@3e5c = c9</action> <!-- enemy -->
    </script>
    <script state="off">
        <action>maincpu.ob@22f4 = d8</action>
        <action>maincpu.ob@3d79 = af</action>
        <action>maincpu.ob@3e5c = c8</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter min="0x01" max="0x05" step="0x01" />
    <script state="on">
        <action>maincpu.mw@1e0f =             1990</action>
        <action>maincpu.oq@1990 = 10c1ffffcdc5ff06</action>
        <action>maincpu.mq@1990 = ffff210affff00ff</action>
        <action>maincpu.oq@1998 = ffffffffffffc9ff</action>
        <action>maincpu.mq@1998 = fffffffffffffff9</action>
        <!--
        1990 | 06 xx    : ld   b,$xx
        1992 | c5       : push bc
        1993 | cd 0a 21 : call $210A
        1996 | c1       : pop  bc
        1997 | 10 f9    : djnz $1992
        1999 | c9       : ret
        -->
    </script>
    <script state="change">
        <action>maincpu.mb@1991 = param</action>
    </script>
    <script state="off">
        <action>maincpu.mw@1e0f =             210a</action>
        <action>maincpu.oq@1990 = ffffffffffffffff</action>
        <action>maincpu.mq@1990 = ffffffffffffffff</action>
        <action>maincpu.oq@1998 = ffffffffffffffff</action>
        <action>maincpu.mq@1998 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="multiple jump">
    <script state="on">
        <action>maincpu.mw@210f =             19a0</action>
        <action>maincpu.oq@19a0 = c3ffffda17ffff3a</action>
        <action>maincpu.mq@19a0 = ff21bbffff6010ff</action>
        <action>maincpu.oq@19a8 = ffffffffffffffff</action>
        <action>maincpu.mq@19a8 = ffffffffffff21ff</action>
        <!--
        19a0 | 3a 10 60 : ld  a,($6010)
        19a3 | 17       : rla
        19a4 | da bb 21 : jp  c,$21BB
        19a7 | c3 ff 21 : jp  $21FF
        -->
    </script>
    <script state="off">
        <action>maincpu.mw@210f =             21ff</action>
        <action>maincpu.oq@19a0 = ffffffffffffffff</action>
        <action>maincpu.mq@19a0 = ffffffffffffffff</action>
        <action>maincpu.oq@19a8 = ffffffffffffffff</action>
        <action>maincpu.mq@19a8 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="avoid crash after level 21">
    <script state="on">
        <action>maincpu.ob@16a7 =               cd</action>
        <action>maincpu.mw@16a8 =             19b0</action>
        <action>maincpu.ob@34c2 =               cd</action>
        <action>maincpu.mw@34c3 =             19b0</action>
        <action>maincpu.oq@19b0 = ff3ed8fffeffff3a</action>
        <action>maincpu.mq@19b0 = 05ffff06ff6229ff</action>
        <action>maincpu.oq@19b8 = ffffffffffffffc9</action>
        <action>maincpu.mq@19b8 = ffffffffffffffff</action>
        <!--
        19b0 | 3a 29 62 : ld  a,($6229)
        19b3 | fe 06    : cp  $06
        19b5 | d8       : ret c
        19b6 | 3e 05    : ld  a,$05
        19b8 | c9       : ret
        -->
    </script>
    <script state="off">
        <action>maincpu.ob@16a7 =               3a</action>
        <action>maincpu.mw@16a8 =             6229</action>
        <action>maincpu.ob@34c2 =               3a</action>
        <action>maincpu.mw@34c3 =             6229</action>
        <action>maincpu.oq@19b0 = ffffffffffffffff</action>
        <action>maincpu.mq@19b0 = ffffffffffffffff</action>
        <action>maincpu.oq@19b8 = ffffffffffffffff</action>
        <action>maincpu.mq@19b8 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="sound test mode">
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action>maincpu.ob@05d4 =               c9</action> <!-- disable 2nd sequence -->
        <action>maincpu.ob@02ae =               c9</action> <!-- disable 1UP string -->
        <action>maincpu.ob@0a62 =               c9</action> <!-- disable 1UP string -->
        <action>maincpu.mw@0251 =             19c0</action>
        <action>maincpu.oq@19c0 = e62fffff3affff21</action>
        <action>maincpu.mq@19c0 = ffffa800ff6200ff</action>
        <action>maincpu.oq@19c8 = 47b8b1ffff3a4fff</action>
        <action>maincpu.mq@19c8 = ffffffa000ffff04</action>
        <action>maincpu.oq@19d0 = fe35ff20fffeff28</action>
        <action>maincpu.mq@19d0 = ffff01ff40fff1ff</action>
        <action>maincpu.oq@19d8 = ff20fffe34ff20ff</action>
        <action>maincpu.mq@19d8 = 04ff20ffff01ff80</action>
        <action>maincpu.oq@19e0 = ff20fffeff18ff3e</action>
        <action>maincpu.mq@19e0 = 05ff10ff06fff0ff</action>
        <action>maincpu.oq@19e8 = 20fffe787786ff3e</action>
        <action>maincpu.mq@19e8 = ff08ffffffff10ff</action>
        <action>maincpu.oq@19f0 = fffeff18fff67eff</action>
        <action>maincpu.mq@19f0 = 04ff06ff80ffff05</action>
        <action>maincpu.oq@19f8 = 18ffff32ff3eff20</action>
        <action>maincpu.mq@19f8 = ffb800ffffff05ff</action>
        <action>maincpu.oq@1a00 = ffffffffffffffff</action>
        <action>maincpu.mq@1a00 = ffffffffffffffc2</action>
        <!--
        19c0 | 21 00 62 : ld  hl,$6200  // sound code address
        19c3 | 3a 00 a8 : ld  a,($A800) // read start button
        19c6 | 2f       : cpl
        19c7 | e6 04    : and $04
        19c9 | 4f       : ld  c,a
        19ca | 3a 00 a0 : ld  a,($A000) // read other inputs
        19cd | b1       : or  c
        19ce | b8       : cp  b
        19cf | 47       : ld  b,a
        19d0 | 28 f1    : jr  z,$19C3
        19d2 | fe 40    : cp  $40
        19d4 | 20 01    : jr  nz,$19D7
        19d6 | 35       : dec (hl)      // decrease code -01
        19d7 | fe 80    : cp  $80
        19d9 | 20 01    : jr  nz,$19DC
        19db | 34       : inc (hl)      // increase code +01
        19dc | fe 20    : cp  $20
        19de | 20 04    : jr  nz,$19E4
        19e0 | 3e f0    : ld  a,$F0     // decrease code -10
        19e2 | 18 06    : jr  $19EA
        19e4 | fe 10    : cp  $10
        19e6 | 20 05    : jr  nz,$19ED
        19e8 | 3e 10    : ld  a,$10     // increase code +10
        19ea | 86       : add a,(hl)
        19eb | 77       : ld  (hl),a
        19ec | 78       : ld  a,b
        19ed | fe 08    : cp  $08
        19ef | 20 05    : jr  nz,$19F6
        19f1 | 7e       : ld  a,(hl)    // play sound
        19f2 | f6 80    : or  $80
        19f4 | 18 06    : jr  $19FC
        19f6 | fe 04    : cp  $04
        19f8 | 20 05    : jr  nz,$19FF
        19fa | 3e ff    : ld  a,$FF     // stop sound
        19fc | 32 00 b8 : ld  ($B800),a // send sound code
        19ff | 18 c2    : jr  $19C3
        -->
    </script>
    <script state="run">
        <output format="----- mouser sound test mode -----" line="10" align="center" />
        <output format="left : decrease code -01"           line="11" align="center" />
        <output format="right : increase code +01"          line="12" align="center" />
        <output format="down : decrease code -10"           line="13" align="center" />
        <output format="up : increase code +10"             line="14" align="center" />
        <output format="button 1 : play sound"              line="15" align="center" />
        <output format="start : stop sound"                 line="16" align="center" />
        <output format="----------------------------"       line="17" align="center" />
        <output format="&lt;&lt; sound code %2.2X &gt;&gt;" line="19" align="center"  >
            <argument>maincpu.pb@6200</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.ob@05d4 =               23</action>
        <action>maincpu.ob@02ae =               3c</action>
        <action>maincpu.ob@0a62 =               3e</action>
        <action>maincpu.mw@0251 =             0336</action>
        <action>maincpu.oq@19c0 = ffffffffffffffff</action>
        <action>maincpu.mq@19c0 = ffffffffffffffff</action>
        <action>maincpu.oq@19c8 = ffffffffffffffff</action>
        <action>maincpu.mq@19c8 = ffffffffffffffff</action>
        <action>maincpu.oq@19d0 = ffffffffffffffff</action>
        <action>maincpu.mq@19d0 = ffffffffffffffff</action>
        <action>maincpu.oq@19d8 = ffffffffffffffff</action>
        <action>maincpu.mq@19d8 = ffffffffffffffff</action>
        <action>maincpu.oq@19e0 = ffffffffffffffff</action>
        <action>maincpu.mq@19e0 = ffffffffffffffff</action>
        <action>maincpu.oq@19e8 = ffffffffffffffff</action>
        <action>maincpu.mq@19e8 = ffffffffffffffff</action>
        <action>maincpu.oq@19f0 = ffffffffffffffff</action>
        <action>maincpu.mq@19f0 = ffffffffffffffff</action>
        <action>maincpu.oq@19f8 = ffffffffffffffff</action>
        <action>maincpu.mq@19f8 = ffffffffffffffff</action>
        <action>maincpu.oq@1a00 = ffffffffffffffff</action>
        <action>maincpu.mq@1a00 = ffffffffffffffff</action>
    </script>
</cheat>
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[mouser]+ Mouser

Post by jman »

mouser.xml

Code: Select all

<!-- Mouser -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.ob@22F4 = C9</action> <!-- fall down -->
            <action>maincpu.ob@3D79 = C9</action> <!-- moving block -->
            <action>maincpu.ob@3E5C = C9</action> <!-- enemy -->
        </script>
        <script state="off">
            <action>maincpu.ob@22F4 = D8</action>
            <action>maincpu.ob@3D79 = AF</action>
            <action>maincpu.ob@3E5C = C8</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.mw@1E0F = 1990            </action>
            <action>maincpu.oq@1990 = 10C1FFFFCDC5FF06</action>
            <action>maincpu.mq@1990 = FFFF210AFFFF00FF</action>
            <action>maincpu.oq@1998 = FFFFFFFFFFFFC9FF</action>
            <action>maincpu.mq@1998 = FFFFFFFFFFFFFFF9</action>
            <!--
            1990 | 06 xx    : ld   b,$xx
            1992 | C5       : push bc
            1993 | CD 0A 21 : call $210A
            1996 | C1       : pop  bc
            1997 | 10 F9    : djnz $1992
            1999 | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@1991 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@1E0F = 210A            </action>
            <action>maincpu.oq@1990 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1990 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@1998 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1998 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="multiple jump">
        <script state="on">
            <action>maincpu.mw@210F = 19A0            </action>
            <action>maincpu.oq@19A0 = C3FFFFDA17FFFF3A</action>
            <action>maincpu.mq@19A0 = FF21BBFFFF6010FF</action>
            <action>maincpu.oq@19A8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@19A8 = FFFFFFFFFFFF21FF</action>
            <!--
            19A0 | 3A 10 60 : ld   a,($6010)
            19A3 | 17       : rla
            19A4 | DA BB 21 : jp   c,$21BB
            19A7 | C3 FF 21 : jp   $21FF
            -->
        </script>
        <script state="off">
            <action>maincpu.mw@210F = 21FF            </action>
            <action>maincpu.oq@19A0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@19A0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@19A8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@19A8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="avoid crash after level 21">
        <script state="on">
            <action>maincpu.ob@16A7 = CD              </action>
            <action>maincpu.mw@16A8 = 19B0            </action>
            <action>maincpu.ob@34C2 = CD              </action>
            <action>maincpu.mw@34C3 = 19B0            </action>
            <action>maincpu.oq@19B0 = FF3ED8FFFEFFFF3A</action>
            <action>maincpu.mq@19B0 = 05FFFF06FF6229FF</action>
            <action>maincpu.oq@19B8 = FFFFFFFFFFFFFFC9</action>
            <action>maincpu.mq@19B8 = FFFFFFFFFFFFFFFF</action>
            <!--
            19B0 | 3A 29 62 : ld   a,($6229)
            19B3 | FE 06    : cp   $06
            19B5 | D8       : ret  c
            19B6 | 3E 05    : ld   a,$05
            19B8 | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.ob@16A7 = 3A              </action>
            <action>maincpu.mw@16A8 = 6229            </action>
            <action>maincpu.ob@34C2 = 3A              </action>
            <action>maincpu.mw@34C3 = 6229            </action>
            <action>maincpu.oq@19B0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@19B0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@19B8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@19B8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
<!--        <action>maincpu.ob@0529 = 3A              </action> --> <!-- disable 1st sequence (buggy?) -->
            <action>maincpu.ob@05D4 = C9              </action> <!-- disable 2nd sequence -->
            <action>maincpu.ob@02AE = C9              </action> <!-- disable strings -->
            <action>maincpu.ob@0A62 = C9              </action> <!-- disable strings -->
            <action>maincpu.mw@0251 = 19C0            </action>
            <action>maincpu.oq@19C0 = E62FFFFF3AFFFF21</action>
            <action>maincpu.mq@19C0 = FFFFA800FF6000FF</action>
            <action>maincpu.oq@19C8 = 47B8B1FFFF3A4FFF</action>
            <action>maincpu.mq@19C8 = FFFFFFA000FFFF04</action>
            <action>maincpu.oq@19D0 = FE35FF20FFFEFF28</action>
            <action>maincpu.mq@19D0 = FFFF01FF40FFF1FF</action>
            <action>maincpu.oq@19D8 = FF20FFFE34FF20FF</action>
            <action>maincpu.mq@19D8 = 04FF20FFFF01FF80</action>
            <action>maincpu.oq@19E0 = FF20FFFEFF18FF3E</action>
            <action>maincpu.mq@19E0 = 05FF10FF06FFF0FF</action>
            <action>maincpu.oq@19E8 = 20FFFE787786FF3E</action>
            <action>maincpu.mq@19E8 = FF08FFFFFFFF10FF</action>
            <action>maincpu.oq@19F0 = FFFEFF18FFF67EFF</action>
            <action>maincpu.mq@19F0 = 04FF06FF80FFFF05</action>
            <action>maincpu.oq@19F8 = 18FFFF32FF3EFF20</action>
            <action>maincpu.mq@19F8 = FFB800FFFFFF05FF</action>
            <action>maincpu.oq@1A00 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1A00 = FFFFFFFFFFFFFFC2</action>
            <!--
            19C0 | 21 00 60 : ld   hl,$6000  // sound code address
            19C3 | 3A 00 A8 : ld   a,($A800) // read start button
            19C6 | 2F       : cpl
            19C7 | E6 04    : and  $04
            19C9 | 4F       : ld   c,a
            19CA | 3A 00 A0 : ld   a,($A000) // read other inputs
            19CD | B1       : or   c
            19CE | B8       : cp   b
            19CF | 47       : ld   b,a
            19D0 | 28 F1    : jr   z,$19C3
            19D2 | FE 40    : cp   $40
            19D4 | 20 01    : jr   nz,$19D7
            19D6 | 35       : dec  (hl)      // decrease code -01
            19D7 | FE 80    : cp   $80
            19D9 | 20 01    : jr   nz,$19DC
            19DB | 34       : inc  (hl)      // increase code +01
            19DC | FE 20    : cp   $20
            19DE | 20 04    : jr   nz,$19E4
            19E0 | 3E F0    : ld   a,$F0     // decrease code -10
            19E2 | 18 06    : jr   $19EA
            19E4 | FE 10    : cp   $10
            19E6 | 20 05    : jr   nz,$19ED
            19E8 | 3E 10    : ld   a,$10     // increase code +10
            19EA | 86       : add  a,(hl)
            19EB | 77       : ld   (hl),a
            19EC | 78       : ld   a,b
            19ED | FE 08    : cp   $08
            19EF | 20 05    : jr   nz,$19F6
            19F1 | 7E       : ld   a,(hl)    // play sound
            19F2 | F6 80    : or   $80
            19F4 | 18 06    : jr   $19FC
            19F6 | FE 04    : cp   $04
            19F8 | 20 05    : jr   nz,$19FF
            19FA | 3E FF    : ld   a,$FF     // stop sound
            19FC | 32 00 B8 : ld   ($B800),a // send sound code
            19FF | 18 C2    : jr   $19C3
            -->
        </script>
        <script state="run">
            <output format="----- mouser 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="1P start : stop sound"              line="16" align="center" />
            <output format="----------------------------"       line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;"  line="19" align="center"  >
                <argument>maincpu.pb@6000</argument>
            </output>
        </script>
        <script state="off">
<!--        <action>maincpu.ob@0529 = 32              </action> -->
            <action>maincpu.ob@05D4 = 23              </action>
            <action>maincpu.ob@02AE = 3C              </action>
            <action>maincpu.ob@0A62 = 3E              </action>
            <action>maincpu.mw@0251 = 0336            </action>
            <action>maincpu.oq@19C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@19C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@19C8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@19C8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@19D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@19D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@19D8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@19D8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@19E0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@19E0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@19E8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@19E8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@19F0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@19F0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@19F8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@19F8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@1A00 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1A00 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
mouserc.xml

Code: Select all

<!-- Mouser (Cosmos) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.ob@22F4 = C9</action> <!-- fall down -->
            <action>maincpu.ob@3D79 = C9</action> <!-- moving block -->
            <action>maincpu.ob@3E5C = C9</action> <!-- enemy -->
        </script>
        <script state="off">
            <action>maincpu.ob@22F4 = D8</action>
            <action>maincpu.ob@3D79 = AF</action>
            <action>maincpu.ob@3E5C = C8</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.mw@1E0F = 1990            </action>
            <action>maincpu.oq@1990 = 10C1FFFFCDC5FF06</action>
            <action>maincpu.mq@1990 = FFFF210AFFFF00FF</action>
            <action>maincpu.oq@1998 = FFFFFFFFFFFFC9FF</action>
            <action>maincpu.mq@1998 = FFFFFFFFFFFFFFF9</action>
            <!--
            1990 | 06 xx    : ld   b,$xx
            1992 | C5       : push bc
            1993 | CD 0A 21 : call $210A
            1996 | C1       : pop  bc
            1997 | 10 F9    : djnz $1992
            1999 | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@1991 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@1E0F = 210A            </action>
            <action>maincpu.oq@1990 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1990 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@1998 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1998 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="multiple jump">
        <script state="on">
            <action>maincpu.mw@210F = 19A0            </action>
            <action>maincpu.oq@19A0 = C3FFFFDA17FFFF3A</action>
            <action>maincpu.mq@19A0 = FF21BBFFFF6010FF</action>
            <action>maincpu.oq@19A8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@19A8 = FFFFFFFFFFFF21FF</action>
            <!--
            19A0 | 3A 10 60 : ld   a,($6010)
            19A3 | 17       : rla
            19A4 | DA BB 21 : jp   c,$21BB
            19A7 | C3 FF 21 : jp   $21FF
            -->
        </script>
        <script state="off">
            <action>maincpu.mw@210F = 21FF            </action>
            <action>maincpu.oq@19A0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@19A0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@19A8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@19A8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="avoid crash after level 21">
        <script state="on">
            <action>maincpu.ob@16A7 = CD              </action>
            <action>maincpu.mw@16A8 = 19B0            </action>
            <action>maincpu.ob@34C2 = CD              </action>
            <action>maincpu.mw@34C3 = 19B0            </action>
            <action>maincpu.oq@19B0 = FF3ED8FFFEFFFF3A</action>
            <action>maincpu.mq@19B0 = 05FFFF06FF6229FF</action>
            <action>maincpu.oq@19B8 = FFFFFFFFFFFFFFC9</action>
            <action>maincpu.mq@19B8 = FFFFFFFFFFFFFFFF</action>
            <!--
            19B0 | 3A 29 62 : ld   a,($6229)
            19B3 | FE 06    : cp   $06
            19B5 | D8       : ret  c
            19B6 | 3E 05    : ld   a,$05
            19B8 | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.ob@16A7 = 3A              </action>
            <action>maincpu.mw@16A8 = 6229            </action>
            <action>maincpu.ob@34C2 = 3A              </action>
            <action>maincpu.mw@34C3 = 6229            </action>
            <action>maincpu.oq@19B0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@19B0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@19B8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@19B8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
<!--        <action>maincpu.ob@0529 = 3A              </action> --> <!-- disable 1st sequence (buggy?) -->
            <action>maincpu.ob@05D4 = C9              </action> <!-- disable 2nd sequence -->
            <action>maincpu.ob@02AE = C9              </action> <!-- disable strings -->
            <action>maincpu.ob@0A62 = C9              </action> <!-- disable strings -->
            <action>maincpu.mw@0251 = 19C0            </action>
            <action>maincpu.oq@19C0 = E62FFFFF3AFFFF21</action>
            <action>maincpu.mq@19C0 = FFFFA800FF6000FF</action>
            <action>maincpu.oq@19C8 = 47B8B1FFFF3A4FFF</action>
            <action>maincpu.mq@19C8 = FFFFFFA000FFFF04</action>
            <action>maincpu.oq@19D0 = FE35FF20FFFEFF28</action>
            <action>maincpu.mq@19D0 = FFFF01FF40FFF1FF</action>
            <action>maincpu.oq@19D8 = FF20FFFE34FF20FF</action>
            <action>maincpu.mq@19D8 = 04FF20FFFF01FF80</action>
            <action>maincpu.oq@19E0 = FF20FFFEFF18FF3E</action>
            <action>maincpu.mq@19E0 = 05FF10FF06FFF0FF</action>
            <action>maincpu.oq@19E8 = 20FFFE787786FF3E</action>
            <action>maincpu.mq@19E8 = FF08FFFFFFFF10FF</action>
            <action>maincpu.oq@19F0 = FFFEFF18FFF67EFF</action>
            <action>maincpu.mq@19F0 = 04FF06FF80FFFF05</action>
            <action>maincpu.oq@19F8 = 18FFFF32FF3EFF20</action>
            <action>maincpu.mq@19F8 = FFB800FFFFFF05FF</action>
            <action>maincpu.oq@1A00 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1A00 = FFFFFFFFFFFFFFC2</action>
            <!--
            19C0 | 21 00 60 : ld   hl,$6000  // sound code address
            19C3 | 3A 00 A8 : ld   a,($A800) // read start button
            19C6 | 2F       : cpl
            19C7 | E6 04    : and  $04
            19C9 | 4F       : ld   c,a
            19CA | 3A 00 A0 : ld   a,($A000) // read other inputs
            19CD | B1       : or   c
            19CE | B8       : cp   b
            19CF | 47       : ld   b,a
            19D0 | 28 F1    : jr   z,$19C3
            19D2 | FE 40    : cp   $40
            19D4 | 20 01    : jr   nz,$19D7
            19D6 | 35       : dec  (hl)      // decrease code -01
            19D7 | FE 80    : cp   $80
            19D9 | 20 01    : jr   nz,$19DC
            19DB | 34       : inc  (hl)      // increase code +01
            19DC | FE 20    : cp   $20
            19DE | 20 04    : jr   nz,$19E4
            19E0 | 3E F0    : ld   a,$F0     // decrease code -10
            19E2 | 18 06    : jr   $19EA
            19E4 | FE 10    : cp   $10
            19E6 | 20 05    : jr   nz,$19ED
            19E8 | 3E 10    : ld   a,$10     // increase code +10
            19EA | 86       : add  a,(hl)
            19EB | 77       : ld   (hl),a
            19EC | 78       : ld   a,b
            19ED | FE 08    : cp   $08
            19EF | 20 05    : jr   nz,$19F6
            19F1 | 7E       : ld   a,(hl)    // play sound
            19F2 | F6 80    : or   $80
            19F4 | 18 06    : jr   $19FC
            19F6 | FE 04    : cp   $04
            19F8 | 20 05    : jr   nz,$19FF
            19FA | 3E FF    : ld   a,$FF     // stop sound
            19FC | 32 00 B8 : ld   ($B800),a // send sound code
            19FF | 18 C2    : jr   $19C3
            -->
        </script>
        <script state="run">
            <output format="----- mouser 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="1P start : stop sound"              line="16" align="center" />
            <output format="----------------------------"       line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;"  line="19" align="center"  >
                <argument>maincpu.pb@6000</argument>
            </output>
        </script>
        <script state="off">
<!--        <action>maincpu.ob@0529 = 32              </action> -->
            <action>maincpu.ob@05D4 = 23              </action>
            <action>maincpu.ob@02AE = 3C              </action>
            <action>maincpu.ob@0A62 = 3E              </action>
            <action>maincpu.mw@0251 = 0336            </action>
            <action>maincpu.oq@19C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@19C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@19C8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@19C8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@19D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@19D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@19D8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@19D8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@19E0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@19E0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@19E8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@19E8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@19F0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@19F0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@19F8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@19F8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@1A00 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1A00 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
Post Reply