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="<< sound code %02X >>" 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="<< sound code %02X >>" 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>