Page 1 of 1
[oscarj2] Psycho-Nics Oscar
Posted: Sun Dec 19, 2021 1:38 pm
by jman
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>
[oscarj2] Psycho-Nics Oscar (update)
Posted: Fri Dec 30, 2022 12:39 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.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).
[oscar]+ Psycho-Nics Oscar
Posted: Thu Mar 07, 2024 1:21 am
by jman
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>