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.
jman
Posts: 869 Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 1 time
Post
by jman » Sun Dec 19, 2021 1:38 pm
Code: Select all
<cheat desc="no hit">
<script state="on">
<action>maincpu.mw@a758 = 1216</action> <!-- enemy -->
<action>maincpu.mb@a82d = 20</action> <!-- iron ball -->
<action>maincpu.mb@ac05 = 20</action> <!-- bullet -->
</script>
<script state="off">
<action>maincpu.mw@a758 = 1024</action>
<action>maincpu.mb@a82d = 24</action>
<action>maincpu.mb@ac05 = 24</action>
</script>
</cheat>
<cheat desc="no hit - pcu">
<script state="on">
<action>maincpu.mb@a6ec = 20</action> <!-- enemy -->
<action>maincpu.mb@a71f = 00</action> <!-- iron ball -->
<action>maincpu.mb@abbb = 20</action> <!-- bullet -->
</script>
<script state="off">
<action>maincpu.mb@a6ec = 24</action>
<action>maincpu.mb@a71f = ce</action>
<action>maincpu.mb@abbb = 24</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@96b5 = 01</action> <!-- shot -->
<action>maincpu.mb@96fd = 19</action> <!-- grenade/missile -->
<action>maincpu.mb@a30b = 19</action> <!-- pcu 1 -->
<action>maincpu.mb@a33e = 19</action> <!-- pcu 2 -->
<action>maincpu.mb@a372 = 19</action> <!-- pcu 3 -->
</script>
<script state="off">
<action>maincpu.mb@96b5 = 18</action>
<action>maincpu.mb@96fd = 18</action>
<action>maincpu.mb@a30b = 18</action>
<action>maincpu.mb@a33e = 18</action>
<action>maincpu.mb@a372 = 18</action>
</script>
</cheat>
<cheat desc="multiple jump">
<script state="on">
<action>maincpu.mw@8a9f = fd10</action>
<action>maincpu.mq@fd10 = 961885202704bd8c</action>
<action>maincpu.mq@fd18 = 6939bd8ec239ffff</action>
<!--
fd10 | 96 18 : LDA $18
fd12 | 85 20 : BITA #$20
fd14 | 27 04 : BEQ $FD1A
fd16 | bd 8c 69 : JSR $8C69
fd19 | 39 : RTS
fd1a | bd 8e c2 : JSR $8EC2
fd1d | 39 : RTS
-->
</script>
<script state="off">
<action>maincpu.mw@8a9f = 8ec2</action>
<action>maincpu.mq@fd10 = ffffffffffffffff</action>
<action>maincpu.mq@fd18 = ffffffffffffffff</action>
</script>
</cheat>
<cheat desc="timer speed">
<parameter>
<item value="0x7f">01 (slow)</item>
<item value="0x3f">02 </item>
<item value="0x1f">03 </item>
<item value="0x0f">04 </item>
<item value="0x01">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@88f1 = param</action>
</script>
<script state="off">
<action>maincpu.mb@88f1 = 3f</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mw@808e = fd20</action>
<action>maincpu.mq@fd20 = d711f63c00d11127</action>
<action>maincpu.mq@fd28 = f7c1fb26020a10c1</action>
<action>maincpu.mq@fd30 = f726020c10c1ef26</action>
<action>maincpu.mq@fd38 = 0496102006c1df26</action>
<action>maincpu.mq@fd40 = 058601b73d8020d8</action>
<!--
fd20 | d7 11 : STB $11
fd22 | f6 3c 00 : LDB $3C00 // read input
fd25 | d1 11 : CMPB $11
fd27 | 27 f7 : BEQ $FD20
fd29 | c1 fb : CMPB #$FB
fd2b | 26 02 : BNE $FD2F
fd2d | 0a 10 : DEC $10 // decrease code
fd2f | c1 f7 : CMPB #$F7
fd31 | 26 02 : BNE $FD35
fd33 | 0c 10 : INC $10 // increase code
fd35 | c1 ef : CMPB #$EF
fd37 | 26 04 : BNE $FD3D
fd39 | 96 10 : LDA $10 // play sound
fd3b | 20 06 : BRA $FD43
fd3d | c1 df : CMPB #$DF
fd3f | 26 05 : BNE $FD46
fd41 | 86 01 : LDA #$01 // stop sound
fd43 | b7 3d 80 : STA $3D80 // send sound code
fd46 | 20 d8 : BRA $FD20
-->
</script>
<script state="run">
<output format="----- psycho-nics oscar 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="<< sound code %2.2X >>" line="17" align="center">
<argument>maincpu.pb@0010</argument>
</output>
</script>
<script state="off">
<action>maincpu.mw@808e = f45b</action>
<action>maincpu.mq@fd20 = ffffffffffffffff</action>
<action>maincpu.mq@fd28 = ffffffffffffffff</action>
<action>maincpu.mq@fd30 = ffffffffffffffff</action>
<action>maincpu.mq@fd38 = ffffffffffffffff</action>
<action>maincpu.mq@fd40 = ffffffffffffffff</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.mw@8057 = 8059</action>
<action> sub.mb@f937 = 39</action>
</script>
<script state="off">
<action>maincpu.mw@8057 = f8f6</action>
<action> sub.mb@f937 = 8e</action>
</script>
</cheat>
jman
Posts: 869 Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 1 time
Post
by jman » Fri Dec 30, 2022 12:39 am
Code: Select all
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mw@808e = fd20</action>
<action>maincpu.mq@fd20 = 9711b63c00911127</action>
<action>maincpu.mq@fd28 = f7d61081fb26015a</action>
<action>maincpu.mq@fd30 = 81f726015c81fd26</action>
<action>maincpu.mq@fd38 = 02c01081fe2602cb</action>
<action>maincpu.mq@fd40 = 10d71081ef270681</action>
<action>maincpu.mq@fd48 = df2605c601f73d80</action>
<action>maincpu.mq@fd50 = 20ceffffffffffff</action>
<!--
fd20 | 97 11 : STA $11
fd22 | b6 3c 00 : LDA $3C00 // read input
fd25 | 91 11 : CMPA $11
fd27 | 27 f7 : BEQ $FD20
fd29 | d6 10 : LDB $10
fd2b | 81 fb : CMPA #$FB
fd2d | 26 01 : BNE $FD30
fd2f | 5a : DECB // decrease code -01
fd30 | 81 f7 : CMPA #$F7
fd32 | 26 01 : BNE $FD35
fd34 | 5c : INCB // increase code +01
fd35 | 81 fd : CMPA #$FD
fd37 | 26 02 : BNE $FD3B
fd39 | c0 10 : SUBB #$10 // decrease code -10
fd3b | 81 fe : CMPA #$FE
fd3d | 26 02 : BNE $FD41
fd3f | cb 10 : ADDB #$10 // increase code +10
fd41 | d7 10 : STB $10
fd43 | 81 ef : CMPA #$EF
fd45 | 27 06 : BEQ $FD4D
fd47 | 81 df : CMPA #$DF
fd49 | 26 05 : BNE $FD50
fd4b | c6 01 : LDB #$01 // stop sound
fd4d | f7 3d 80 : STB $3D80 // send sound code
fd50 | 20 ce : BRA $FD20
-->
</script>
<script state="run">
<output format="----- psycho-nics oscar 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="<< sound code %2.2X >>" line="19" align="center" >
<argument>maincpu.pb@0010</argument>
</output>
</script>
<script state="off">
<action>maincpu.mw@808e = f45b</action>
<action>maincpu.mq@fd20 = ffffffffffffffff</action>
<action>maincpu.mq@fd28 = ffffffffffffffff</action>
<action>maincpu.mq@fd30 = ffffffffffffffff</action>
<action>maincpu.mq@fd38 = ffffffffffffffff</action>
<action>maincpu.mq@fd40 = ffffffffffffffff</action>
<action>maincpu.mq@fd48 = ffffffffffffffff</action>
<action>maincpu.mq@fd50 = ffffffffffffffff</action>
</script>
</cheat>
"sound test mode" : rewrite routine. add up/down key (code ±10).
jman
Posts: 869 Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 1 time
Post
by jman » Thu Mar 07, 2024 1:21 am
oscar.xml
Code: Select all
<!-- Psycho-Nics Oscar (World revision 0) -->
<mamecheat version="1">
<cheat desc="no hit - player">
<script state="on">
<action>maincpu.mw@A755 = 1216</action> <!-- enemy -->
<action>maincpu.mw@A82A = 2054</action> <!-- iron ball -->
<action>maincpu.mw@AC02 = 205F</action> <!-- bullet -->
</script>
<script state="off">
<action>maincpu.mw@A755 = 1024</action>
<action>maincpu.mw@A82A = 2454</action>
<action>maincpu.mw@AC02 = 245F</action>
</script>
</cheat>
<cheat desc="no hit - pcu">
<script state="on">
<action>maincpu.mb@A6E9 = 20</action> <!-- enemy -->
<action>maincpu.mb@A71C = 00</action> <!-- iron ball -->
<action>maincpu.mb@ABB8 = 20</action> <!-- bullet -->
</script>
<script state="off">
<action>maincpu.mb@A6E9 = 24</action>
<action>maincpu.mb@A71C = CE</action>
<action>maincpu.mb@ABB8 = 24</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@96B2 = 01</action> <!-- shot -->
<action>maincpu.mb@96FA = 19</action> <!-- grenade/missile -->
<action>maincpu.mb@A308 = 19</action> <!-- pcu 1 -->
<action>maincpu.mb@A33B = 19</action> <!-- pcu 2 -->
<action>maincpu.mb@A36F = 19</action> <!-- pcu 3 -->
</script>
<script state="off">
<action>maincpu.mb@96B2 = 18</action>
<action>maincpu.mb@96FA = 18</action>
<action>maincpu.mb@A308 = 18</action>
<action>maincpu.mb@A33B = 18</action>
<action>maincpu.mb@A36F = 18</action>
</script>
</cheat>
<cheat desc="multiple jump">
<script state="on">
<action>maincpu.mw@8A9C = FD10 </action>
<action>maincpu.mq@FD10 = 961885202704BD8C</action>
<action>maincpu.mq@FD18 = 6639BD8EBF39FFFF</action>
<!--
FD10 | 96 18 : LDA $18
FD12 | 85 20 : BITA #$20
FD14 | 27 04 : BEQ $FD1A
FD16 | BD 8C 66 : JSR $8C66
FD19 | 39 : RTS
FD1A | BD 8E BF : JSR $8EBF
FD1D | 39 : RTS
-->
</script>
<script state="off">
<action>maincpu.mw@8A9C = 8EBF </action>
<action>maincpu.mq@FD10 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FD18 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="timer speed">
<parameter>
<item value="0x7f">01 (slow)</item>
<item value="0x3f">02 </item>
<item value="0x1f">03 </item>
<item value="0x0f">04 </item>
<item value="0x01">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@88EE = param</action>
</script>
<script state="off">
<action>maincpu.mb@88EE = 3F</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mw@808E = FD20 </action>
<action>maincpu.mq@FD20 = 9701B63C00910127</action>
<action>maincpu.mq@FD28 = F7D60081FB26015A</action>
<action>maincpu.mq@FD30 = 81F726015C81FD26</action>
<action>maincpu.mq@FD38 = 02C01081FE2602CB</action>
<action>maincpu.mq@FD40 = 10D70081EF270681</action>
<action>maincpu.mq@FD48 = DF2605C601F73D80</action>
<action>maincpu.mq@FD50 = 20CEFFFFFFFFFFFF</action>
<!--
FD20 | 97 01 : STA $01
FD22 | B6 3C 00 : LDA $3C00 // read input
FD25 | 91 01 : CMPA $01
FD27 | 27 F7 : BEQ $FD20
FD29 | D6 00 : LDB $00
FD2B | 81 FB : CMPA #$FB
FD2D | 26 01 : BNE $FD30
FD2F | 5A : DECB // decrease code -01
FD30 | 81 F7 : CMPA #$F7
FD32 | 26 01 : BNE $FD35
FD34 | 5C : INCB // increase code +01
FD35 | 81 FD : CMPA #$FD
FD37 | 26 02 : BNE $FD3B
FD39 | C0 10 : SUBB #$10 // decrease code -10
FD3B | 81 FE : CMPA #$FE
FD3D | 26 02 : BNE $FD41
FD3F | CB 10 : ADDB #$10 // increase code +10
FD41 | D7 00 : STB $00
FD43 | 81 EF : CMPA #$EF
FD45 | 27 06 : BEQ $FD4D // play sound
FD47 | 81 DF : CMPA #$DF
FD49 | 26 05 : BNE $FD50
FD4B | C6 01 : LDB #$01 // stop sound
FD4D | F7 3D 80 : STB $3D80 // send sound code
FD50 | 20 CE : BRA $FD20
-->
</script>
<script state="run">
<output format="----- psycho-nics oscar 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="<< sound code %02X >>" line="19" align="center" >
<argument>maincpu.pb@0000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mw@808E = F458 </action>
<action>maincpu.mq@FD20 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FD28 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FD30 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FD38 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FD40 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FD48 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FD50 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.mw@8057 = 8059</action>
<action> sub.mb@F937 = 39 </action>
</script>
<script state="off">
<action>maincpu.mw@8057 = F8F3</action>
<action> sub.mb@F937 = 8E </action>
</script>
</cheat>
</mamecheat>
oscarbl.xml
Code: Select all
<!-- Psycho-Nics Oscar (World revision 0, bootleg) -->
<mamecheat version="1">
<cheat desc="no hit - player">
<script state="on">
<action>maincpu.mw@A755 = 1216</action> <!-- enemy -->
<action>maincpu.mw@A82A = 2054</action> <!-- iron ball -->
<action>maincpu.mw@AC02 = 205F</action> <!-- bullet -->
</script>
<script state="off">
<action>maincpu.mw@A755 = 1024</action>
<action>maincpu.mw@A82A = 2454</action>
<action>maincpu.mw@AC02 = 245F</action>
</script>
</cheat>
<cheat desc="no hit - pcu">
<script state="on">
<action>maincpu.mb@A6E9 = 20</action> <!-- enemy -->
<action>maincpu.mb@A71C = 00</action> <!-- iron ball -->
<action>maincpu.mb@ABB8 = 20</action> <!-- bullet -->
</script>
<script state="off">
<action>maincpu.mb@A6E9 = 24</action>
<action>maincpu.mb@A71C = CE</action>
<action>maincpu.mb@ABB8 = 24</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@96B2 = 01</action> <!-- shot -->
<action>maincpu.mb@96FA = 19</action> <!-- grenade/missile -->
<action>maincpu.mb@A308 = 19</action> <!-- pcu 1 -->
<action>maincpu.mb@A33B = 19</action> <!-- pcu 2 -->
<action>maincpu.mb@A36F = 19</action> <!-- pcu 3 -->
</script>
<script state="off">
<action>maincpu.mb@96B2 = 18</action>
<action>maincpu.mb@96FA = 18</action>
<action>maincpu.mb@A308 = 18</action>
<action>maincpu.mb@A33B = 18</action>
<action>maincpu.mb@A36F = 18</action>
</script>
</cheat>
<cheat desc="multiple jump">
<script state="on">
<action>maincpu.mw@8A9C = FD10 </action>
<action>maincpu.mq@FD10 = 961885202704BD8C</action>
<action>maincpu.mq@FD18 = 6639BD8EBF39FFFF</action>
<!--
FD10 | 96 18 : LDA $18
FD12 | 85 20 : BITA #$20
FD14 | 27 04 : BEQ $FD1A
FD16 | BD 8C 66 : JSR $8C66
FD19 | 39 : RTS
FD1A | BD 8E BF : JSR $8EBF
FD1D | 39 : RTS
-->
</script>
<script state="off">
<action>maincpu.mw@8A9C = 8EC2 </action>
<action>maincpu.mq@FD10 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FD18 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="timer speed">
<parameter>
<item value="0x7f">01 (slow)</item>
<item value="0x3f">02 </item>
<item value="0x1f">03 </item>
<item value="0x0f">04 </item>
<item value="0x01">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@88EE = param</action>
</script>
<script state="off">
<action>maincpu.mb@88EE = 3F</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mw@808E = FD20 </action>
<action>maincpu.mq@FD20 = 9701B63C00910127</action>
<action>maincpu.mq@FD28 = F7D60081FB26015A</action>
<action>maincpu.mq@FD30 = 81F726015C81FD26</action>
<action>maincpu.mq@FD38 = 02C01081FE2602CB</action>
<action>maincpu.mq@FD40 = 10D70081EF270681</action>
<action>maincpu.mq@FD48 = DF2605C601F73D80</action>
<action>maincpu.mq@FD50 = 20CEFFFFFFFFFFFF</action>
<!--
FD20 | 97 01 : STA $01
FD22 | B6 3C 00 : LDA $3C00 // read input
FD25 | 91 01 : CMPA $01
FD27 | 27 F7 : BEQ $FD20
FD29 | D6 00 : LDB $00
FD2B | 81 FB : CMPA #$FB
FD2D | 26 01 : BNE $FD30
FD2F | 5A : DECB // decrease code -01
FD30 | 81 F7 : CMPA #$F7
FD32 | 26 01 : BNE $FD35
FD34 | 5C : INCB // increase code +01
FD35 | 81 FD : CMPA #$FD
FD37 | 26 02 : BNE $FD3B
FD39 | C0 10 : SUBB #$10 // decrease code -10
FD3B | 81 FE : CMPA #$FE
FD3D | 26 02 : BNE $FD41
FD3F | CB 10 : ADDB #$10 // increase code +10
FD41 | D7 00 : STB $00
FD43 | 81 EF : CMPA #$EF
FD45 | 27 06 : BEQ $FD4D // play sound
FD47 | 81 DF : CMPA #$DF
FD49 | 26 05 : BNE $FD50
FD4B | C6 01 : LDB #$01 // stop sound
FD4D | F7 3D 80 : STB $3D80 // send sound code
FD50 | 20 CE : BRA $FD20
-->
</script>
<script state="run">
<output format="----- psycho-nics oscar 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="<< sound code %02X >>" line="19" align="center" >
<argument>maincpu.pb@0000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mw@808E = F458 </action>
<action>maincpu.mq@FD20 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FD28 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FD30 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FD38 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FD40 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FD48 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FD50 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.mw@8057 = 8059</action>
<action> sub.mb@F937 = 39 </action>
</script>
<script state="off">
<action>maincpu.mw@8057 = F8F3</action>
<action> sub.mb@F937 = 8E </action>
</script>
</cheat>
</mamecheat>
oscaru.xml
Code: Select all
<!-- Psycho-Nics Oscar (US) -->
<mamecheat version="1">
<cheat desc="no hit - player">
<script state="on">
<action>maincpu.mw@A755 = 1216</action> <!-- enemy -->
<action>maincpu.mw@A82A = 2054</action> <!-- iron ball -->
<action>maincpu.mw@AC02 = 205F</action> <!-- bullet -->
</script>
<script state="off">
<action>maincpu.mw@A755 = 1024</action>
<action>maincpu.mw@A82A = 2454</action>
<action>maincpu.mw@AC02 = 245F</action>
</script>
</cheat>
<cheat desc="no hit - pcu">
<script state="on">
<action>maincpu.mb@A6E9 = 20</action> <!-- enemy -->
<action>maincpu.mb@A71C = 00</action> <!-- iron ball -->
<action>maincpu.mb@ABB8 = 20</action> <!-- bullet -->
</script>
<script state="off">
<action>maincpu.mb@A6E9 = 24</action>
<action>maincpu.mb@A71C = CE</action>
<action>maincpu.mb@ABB8 = 24</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@96B2 = 01</action> <!-- shot -->
<action>maincpu.mb@96FA = 19</action> <!-- grenade/missile -->
<action>maincpu.mb@A308 = 19</action> <!-- pcu 1 -->
<action>maincpu.mb@A33B = 19</action> <!-- pcu 2 -->
<action>maincpu.mb@A36F = 19</action> <!-- pcu 3 -->
</script>
<script state="off">
<action>maincpu.mb@96B2 = 18</action>
<action>maincpu.mb@96FA = 18</action>
<action>maincpu.mb@A308 = 18</action>
<action>maincpu.mb@A33B = 18</action>
<action>maincpu.mb@A36F = 18</action>
</script>
</cheat>
<cheat desc="multiple jump">
<script state="on">
<action>maincpu.mw@8A9C = FD20 </action>
<action>maincpu.mq@FD20 = 961885202704BD8C</action>
<action>maincpu.mq@FD28 = 6639BD8EBF39FFFF</action>
<!--
FD20 | 96 18 : LDA $18
FD22 | 85 20 : BITA #$20
FD24 | 27 04 : BEQ $FD2A
FD26 | BD 8C 66 : JSR $8C66
FD29 | 39 : RTS
FD2A | BD 8E BF : JSR $8EBF
FD2D | 39 : RTS
-->
</script>
<script state="off">
<action>maincpu.mw@8A9C = 8EBF </action>
<action>maincpu.mq@FD20 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FD28 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="timer speed">
<parameter>
<item value="0x7f">01 (slow)</item>
<item value="0x3f">02 </item>
<item value="0x1f">03 </item>
<item value="0x0f">04 </item>
<item value="0x01">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@88EE = param</action>
</script>
<script state="off">
<action>maincpu.mb@88EE = 3F</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mw@808E = FD30 </action>
<action>maincpu.mq@FD30 = 9701B63C00910127</action>
<action>maincpu.mq@FD38 = F7D60081FB26015A</action>
<action>maincpu.mq@FD40 = 81F726015C81FD26</action>
<action>maincpu.mq@FD48 = 02C01081FE2602CB</action>
<action>maincpu.mq@FD50 = 10D70081EF270681</action>
<action>maincpu.mq@FD58 = DF2605C601F73D80</action>
<action>maincpu.mq@FD60 = 20CEFFFFFFFFFFFF</action>
<!--
FD30 | 97 01 : STA $01
FD32 | B6 3C 00 : LDA $3C00 // read input
FD35 | 91 01 : CMPA $01
FD37 | 27 F7 : BEQ $FD30
FD39 | D6 00 : LDB $00
FD3B | 81 FB : CMPA #$FB
FD3D | 26 01 : BNE $FD40
FD3F | 5A : DECB // decrease code -01
FD40 | 81 F7 : CMPA #$F7
FD42 | 26 01 : BNE $FD45
FD44 | 5C : INCB // increase code +01
FD45 | 81 FD : CMPA #$FD
FD47 | 26 02 : BNE $FD4B
FD49 | C0 10 : SUBB #$10 // decrease code -10
FD4B | 81 FE : CMPA #$FE
FD4D | 26 02 : BNE $FD51
FD4F | CB 10 : ADDB #$10 // increase code +10
FD51 | D7 00 : STB $00
FD53 | 81 EF : CMPA #$EF
FD55 | 27 06 : BEQ $FD5D // play sound
FD57 | 81 DF : CMPA #$DF
FD59 | 26 05 : BNE $FD60
FD5B | C6 01 : LDB #$01 // stop sound
FD5D | F7 3D 80 : STB $3D80 // send sound code
FD60 | 20 CE : BRA $FD30
-->
</script>
<script state="run">
<output format="----- psycho-nics oscar 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="<< sound code %02X >>" line="19" align="center" >
<argument>maincpu.pb@0000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mw@808E = F46C </action>
<action>maincpu.mq@FD30 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FD38 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FD40 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FD48 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FD50 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FD58 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FD60 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.mw@8057 = 8059</action>
<action> sub.mb@FB15 = 39 </action>
</script>
<script state="off">
<action>maincpu.mw@8057 = F902</action>
<action> sub.mb@FB15 = 8E </action>
</script>
</cheat>
</mamecheat>
oscarj1.xml
Code: Select all
<!-- Psycho-Nics Oscar (Japan revision 1) -->
<mamecheat version="1">
<cheat desc="no hit - player">
<script state="on">
<action>maincpu.mw@A755 = 1216</action> <!-- enemy -->
<action>maincpu.mw@A825 = 2050</action> <!-- iron ball -->
<action>maincpu.mw@ABF9 = 205B</action> <!-- bullet -->
</script>
<script state="off">
<action>maincpu.mw@A755 = 1024</action>
<action>maincpu.mw@A825 = 2450</action>
<action>maincpu.mw@ABF9 = 245B</action>
</script>
</cheat>
<cheat desc="no hit - pcu">
<script state="on">
<action>maincpu.mb@A6E9 = 20</action> <!-- enemy -->
<action>maincpu.mb@A71C = 00</action> <!-- iron ball -->
<action>maincpu.mb@ABAF = 20</action> <!-- bullet -->
</script>
<script state="off">
<action>maincpu.mb@A6E9 = 24</action>
<action>maincpu.mb@A71C = CE</action>
<action>maincpu.mb@ABAF = 24</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@96B2 = 01</action> <!-- shot -->
<action>maincpu.mb@96FA = 19</action> <!-- grenade/missile -->
<action>maincpu.mb@A308 = 19</action> <!-- pcu 1 -->
<action>maincpu.mb@A33B = 19</action> <!-- pcu 2 -->
<action>maincpu.mb@A36F = 19</action> <!-- pcu 3 -->
</script>
<script state="off">
<action>maincpu.mb@96B2 = 18</action>
<action>maincpu.mb@96FA = 18</action>
<action>maincpu.mb@A308 = 18</action>
<action>maincpu.mb@A33B = 18</action>
<action>maincpu.mb@A36F = 18</action>
</script>
</cheat>
<cheat desc="multiple jump">
<script state="on">
<action>maincpu.mw@8A9C = FD00 </action>
<action>maincpu.mq@FD00 = 961885202704BD8C</action>
<action>maincpu.mq@FD08 = 6639BD8EBF39FFFF</action>
<!--
FD00 | 96 18 : LDA $18
FD02 | 85 20 : BITA #$20
FD04 | 27 04 : BEQ $FD0A
FD06 | BD 8C 66 : JSR $8C66
FD09 | 39 : RTS
FD0A | BD 8E BF : JSR $8EBF
FD0D | 39 : RTS
-->
</script>
<script state="off">
<action>maincpu.mw@8A9C = 8EBF </action>
<action>maincpu.mq@FD00 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FD08 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="timer speed">
<parameter>
<item value="0x7f">01 (slow)</item>
<item value="0x3f">02 </item>
<item value="0x1f">03 </item>
<item value="0x0f">04 </item>
<item value="0x01">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@88EE = param</action>
</script>
<script state="off">
<action>maincpu.mb@88EE = 3F</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mw@808E = FD10 </action>
<action>maincpu.mq@FD10 = 9701B63C00910127</action>
<action>maincpu.mq@FD18 = F7D60081FB26015A</action>
<action>maincpu.mq@FD20 = 81F726015C81FD26</action>
<action>maincpu.mq@FD28 = 02C01081FE2602CB</action>
<action>maincpu.mq@FD30 = 10D70081EF270681</action>
<action>maincpu.mq@FD38 = DF2605C601F73D80</action>
<action>maincpu.mq@FD40 = 20CEFFFFFFFFFFFF</action>
<!--
FD10 | 97 01 : STA $01
FD12 | B6 3C 00 : LDA $3C00 // read input
FD15 | 91 01 : CMPA $01
FD17 | 27 F7 : BEQ $FD10
FD19 | D6 00 : LDB $00
FD1B | 81 FB : CMPA #$FB
FD1D | 26 01 : BNE $FD20
FD1F | 5A : DECB // decrease code -01
FD20 | 81 F7 : CMPA #$F7
FD22 | 26 01 : BNE $FD25
FD24 | 5C : INCB // increase code +01
FD25 | 81 FD : CMPA #$FD
FD27 | 26 02 : BNE $FD2B
FD29 | C0 10 : SUBB #$10 // decrease code -10
FD2B | 81 FE : CMPA #$FE
FD2D | 26 02 : BNE $FD31
FD2F | CB 10 : ADDB #$10 // increase code +10
FD31 | D7 00 : STB $00
FD33 | 81 EF : CMPA #$EF
FD35 | 27 06 : BEQ $FD3D // play sound
FD37 | 81 DF : CMPA #$DF
FD39 | 26 05 : BNE $FD40
FD3B | C6 01 : LDB #$01 // stop sound
FD3D | F7 3D 80 : STB $3D80 // send sound code
FD40 | 20 CE : BRA $FD10
-->
</script>
<script state="run">
<output format="----- psycho-nics oscar 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="<< sound code %02X >>" line="19" align="center" >
<argument>maincpu.pb@0000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mw@808E = F44B </action>
<action>maincpu.mq@FD10 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FD18 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FD20 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FD28 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FD30 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FD38 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FD40 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.mw@8057 = 8059</action>
<action> sub.mb@F937 = 39 </action>
</script>
<script state="off">
<action>maincpu.mw@8057 = F8E6</action>
<action> sub.mb@F937 = 8E </action>
</script>
</cheat>
</mamecheat>
oscarj2.xml
Code: Select all
<!-- Psycho-Nics Oscar (Japan revision 2) -->
<mamecheat version="1">
<cheat desc="no hit - player">
<script state="on">
<action>maincpu.mw@A758 = 1216</action> <!-- enemy -->
<action>maincpu.mw@A82D = 2054</action> <!-- iron ball -->
<action>maincpu.mw@AC05 = 205F</action> <!-- bullet -->
</script>
<script state="off">
<action>maincpu.mw@A758 = 1024</action>
<action>maincpu.mw@A82D = 2454</action>
<action>maincpu.mw@AC05 = 245F</action>
</script>
</cheat>
<cheat desc="no hit - pcu">
<script state="on">
<action>maincpu.mb@A6EC = 20</action> <!-- enemy -->
<action>maincpu.mb@A71F = 00</action> <!-- iron ball -->
<action>maincpu.mb@ABBB = 20</action> <!-- bullet -->
</script>
<script state="off">
<action>maincpu.mb@A6EC = 24</action>
<action>maincpu.mb@A71F = CE</action>
<action>maincpu.mb@ABBB = 24</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@96B5 = 01</action> <!-- shot -->
<action>maincpu.mb@96FD = 19</action> <!-- grenade/missile -->
<action>maincpu.mb@A30B = 19</action> <!-- pcu 1 -->
<action>maincpu.mb@A33E = 19</action> <!-- pcu 2 -->
<action>maincpu.mb@A372 = 19</action> <!-- pcu 3 -->
</script>
<script state="off">
<action>maincpu.mb@96B5 = 18</action>
<action>maincpu.mb@96FD = 18</action>
<action>maincpu.mb@A30B = 18</action>
<action>maincpu.mb@A33E = 18</action>
<action>maincpu.mb@A372 = 18</action>
</script>
</cheat>
<cheat desc="multiple jump">
<script state="on">
<action>maincpu.mw@8A9F = FD10 </action>
<action>maincpu.mq@FD10 = 961885202704BD8C</action>
<action>maincpu.mq@FD18 = 6939BD8EC239FFFF</action>
<!--
FD10 | 96 18 : LDA $18
FD12 | 85 20 : BITA #$20
FD14 | 27 04 : BEQ $FD1A
FD16 | BD 8C 69 : JSR $8C69
FD19 | 39 : RTS
FD1A | BD 8E C2 : JSR $8EC2
FD1D | 39 : RTS
-->
</script>
<script state="off">
<action>maincpu.mw@8A9F = 8EC2 </action>
<action>maincpu.mq@FD10 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FD18 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="timer speed">
<parameter>
<item value="0x7f">01 (slow)</item>
<item value="0x3f">02 </item>
<item value="0x1f">03 </item>
<item value="0x0f">04 </item>
<item value="0x01">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@88F1 = param</action>
</script>
<script state="off">
<action>maincpu.mb@88F1 = 3F</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mw@808E = FD20 </action>
<action>maincpu.mq@FD20 = 9701B63C00910127</action>
<action>maincpu.mq@FD28 = F7D60081FB26015A</action>
<action>maincpu.mq@FD30 = 81F726015C81FD26</action>
<action>maincpu.mq@FD38 = 02C01081FE2602CB</action>
<action>maincpu.mq@FD40 = 10D70081EF270681</action>
<action>maincpu.mq@FD48 = DF2605C601F73D80</action>
<action>maincpu.mq@FD50 = 20CEFFFFFFFFFFFF</action>
<!--
FD20 | 97 01 : STA $01
FD22 | B6 3C 00 : LDA $3C00 // read input
FD25 | 91 01 : CMPA $01
FD27 | 27 F7 : BEQ $FD20
FD29 | D6 00 : LDB $00
FD2B | 81 FB : CMPA #$FB
FD2D | 26 01 : BNE $FD30
FD2F | 5A : DECB // decrease code -01
FD30 | 81 F7 : CMPA #$F7
FD32 | 26 01 : BNE $FD35
FD34 | 5C : INCB // increase code +01
FD35 | 81 FD : CMPA #$FD
FD37 | 26 02 : BNE $FD3B
FD39 | C0 10 : SUBB #$10 // decrease code -10
FD3B | 81 FE : CMPA #$FE
FD3D | 26 02 : BNE $FD41
FD3F | CB 10 : ADDB #$10 // increase code +10
FD41 | D7 00 : STB $00
FD43 | 81 EF : CMPA #$EF
FD45 | 27 06 : BEQ $FD4D // play sound
FD47 | 81 DF : CMPA #$DF
FD49 | 26 05 : BNE $FD50
FD4B | C6 01 : LDB #$01 // stop sound
FD4D | F7 3D 80 : STB $3D80 // send sound code
FD50 | 20 CE : BRA $FD20
-->
</script>
<script state="run">
<output format="----- psycho-nics oscar 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="<< sound code %02X >>" line="19" align="center" >
<argument>maincpu.pb@0000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mw@808E = F45B </action>
<action>maincpu.mq@FD20 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FD28 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FD30 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FD38 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FD40 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FD48 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FD50 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.mw@8057 = 8059</action>
<action> sub.mb@F937 = 39 </action>
</script>
<script state="off">
<action>maincpu.mw@8057 = F8F6</action>
<action> sub.mb@F937 = 8E </action>
</script>
</cheat>
</mamecheat>