[oscarj2] Psycho-Nics Oscar

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

[oscarj2] Psycho-Nics Oscar

Post 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="&lt;&lt; sound code %2.2X &gt;&gt;"            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: 843
Joined: Tue Dec 01, 2020 1:24 pm

[oscarj2] Psycho-Nics Oscar (update)

Post 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="&lt;&lt; sound code %2.2X &gt;&gt;"            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: 843
Joined: Tue Dec 01, 2020 1:24 pm

[oscar]+ Psycho-Nics Oscar

Post 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="&lt;&lt; sound code %02X &gt;&gt;"             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="&lt;&lt; sound code %02X &gt;&gt;"             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="&lt;&lt; sound code %02X &gt;&gt;"             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="&lt;&lt; sound code %02X &gt;&gt;"             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="&lt;&lt; sound code %02X &gt;&gt;"             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>
Post Reply