[ooparts] OOPArts

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

[ooparts] OOPArts

Post by jman »

ooparts is added in 0.236.

Code: Select all

<cheat desc="invincibility">
    <script state="on">
        <action>maincpu.md@719a = 6000014e</action>
    </script>
    <script state="off">
        <action>maincpu.md@719a = 08390000</action>
    </script>
</cheat>

<cheat desc="ball speed">
    <parameter>
        <item value="0x0080">01 (slow)</item>
        <item value="0x0180">02       </item>
        <item value="0x0280">03       </item>
        <item value="0x0380">04       </item>
        <item value="0x0480">05 (fast)</item>
    </parameter>
    <script state="on">
        <action>maincpu.mq@09c08 = 4ef9000dc0c04e71</action>
        <action>maincpu.mq@dc0c0 = 217c00000000003e</action>
        <action>maincpu.mq@dc0c8 = 4ef900009c40ffff</action>
        <!--
        dc0c0 | 217c xxxx 0000 003e : move.l #$xxxx0000,($3e,A0)
        dc0c8 | 4ef9 0000 9c40      : jmp    $9c40.l 
        -->
    </script>
    <script state="change">
        <action>maincpu.mw@dc0c2 = param</action>
    </script>
    <script state="off">
        <action>maincpu.mq@09c08 = d3a8003e60000032</action>
        <action>maincpu.mq@dc0c0 = ffffffffffffffff</action>
        <action>maincpu.mq@dc0c8 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="sound test mode">
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action>maincpu.mq@02202 = 4ef9000dc0d033fc</action>
        <action>maincpu.mq@dc0d0 = 41f8800042101401</action>
        <action>maincpu.mq@dc0d8 = 123900840001b401</action>
        <action>maincpu.mq@dc0e0 = 67f40c01007f6602</action>
        <action>maincpu.mq@dc0e8 = 53100c0100bf6602</action>
        <action>maincpu.mq@dc0f0 = 52100c0100fe6604</action>
        <action>maincpu.mq@dc0f8 = 101060080c0100fd</action>
        <action>maincpu.mq@dc100 = 660842004eb90010</action>
        <action>maincpu.mq@dc108 = 000c60caffffffff</action>
        <!--
        dc0d0 | 41f8 8000      : lea    $8000.w,A0   // sound code address
        dc0d4 | 4210           : clr.b  (A0)
        dc0d6 | 1401           : move.b D1,D2
        dc0d8 | 1239 0084 0001 : move.b $840001.l,D1 // read input
        dc0de | b401           : cmp.b  D1,D2
        dc0e0 | 67f4           : beq    $dc0d6
        dc0e2 | 0c01 007f      : cmpi.b #$7f,D1
        dc0e6 | 6602           : bne    $dc0ea
        dc0e8 | 5310           : subq.b #1,(A0)      // decrease code
        dc0ea | 0c01 00bf      : cmpi.b #-$41,D1
        dc0ee | 6602           : bne    $dc0f2
        dc0f0 | 5210           : addq.b #1,(A0)      // increase code
        dc0f2 | 0c01 00fe      : cmpi.b #-$2,D1
        dc0f6 | 6604           : bne    $dc0fc
        dc0f8 | 1010           : move.b (A0),D0      // play sound
        dc0fa | 6008           : bra    $dc104
        dc0fc | 0c01 00fd      : cmpi.b #-$3,D1
        dc100 | 6608           : bne    $dc10a
        dc102 | 4200           : clr.b  D0           // stop sound
        dc104 | 4eb9 0010 000c : jsr    $10000c.l    // send sound code
        dc10a | 60ca           : bra    $dc0d6
        -->
    </script>
    <script state="run">
        <output format="----- ooparts 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@ff8000</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mq@02202 = 42b900ff80da33fc</action>
        <action>maincpu.mq@dc0d0 = ffffffffffffffff</action>
        <action>maincpu.mq@dc0d8 = ffffffffffffffff</action>
        <action>maincpu.mq@dc0e0 = ffffffffffffffff</action>
        <action>maincpu.mq@dc0e8 = ffffffffffffffff</action>
        <action>maincpu.mq@dc0f0 = ffffffffffffffff</action>
        <action>maincpu.mq@dc0f8 = ffffffffffffffff</action>
        <action>maincpu.mq@dc100 = ffffffffffffffff</action>
        <action>maincpu.mq@dc108 = ffffffffffffffff</action>
    </script>
</cheat>
"invincibility" is not "no hit". It is rather "keep a ball".
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[ooparts] OOPArts (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.mq@02202 = 4ef9000dc0d033fc</action>
        <action>maincpu.mq@dc0d0 = 41f8801014011239</action>
        <action>maincpu.mq@dc0d8 = 00840001b40167f4</action>
        <action>maincpu.mq@dc0e0 = 0c01007f66025310</action>
        <action>maincpu.mq@dc0e8 = 0c0100bf66025210</action>
        <action>maincpu.mq@dc0f0 = 0c0100ef66040410</action>
        <action>maincpu.mq@dc0f8 = 00100c0100df6604</action>
        <action>maincpu.mq@dc100 = 061000100c0100fe</action>
        <action>maincpu.mq@dc108 = 6604101060080c01</action>
        <action>maincpu.mq@dc110 = 00fd660842004eb9</action>
        <action>maincpu.mq@dc118 = 0010000c60b6ffff</action>
        <!--
        dc0d0 | 41f8 8010      : lea    $8010.w,A0   // $ff8010 : sound code address
        dc0d4 | 1401           : move.b D1,D2
        dc0d6 | 1239 0084 0001 : move.b $840001.l,D1 // read input
        dc0dc | b401           : cmp.b  D1,D2
        dc0de | 67f4           : beq    $dc0d4
        dc0e0 | 0c01 007f      : cmpi.b #$7f,D1
        dc0e4 | 6602           : bne    $dc0e8
        dc0e6 | 5310           : subq.b #1,(A0)      // decrease code -01
        dc0e8 | 0c01 00bf      : cmpi.b #-$41,D1
        dc0ec | 6602           : bne    $dc0f0
        dc0ee | 5210           : addq.b #1,(A0)      // increase code +01
        dc0f0 | 0c01 00ef      : cmpi.b #-$11,D1
        dc0f4 | 6604           : bne    $dc0fa
        dc0f6 | 0410 0010      : subi.b #$10,(A0)    // decrease code -10
        dc0fa | 0c01 00df      : cmpi.b #-$21,D1
        dc0fe | 6604           : bne    $dc104
        dc100 | 0610 0010      : addi.b #$10,(A0)    // increase code +10
        dc104 | 0c01 00fe      : cmpi.b #-$2,D1
        dc108 | 6604           : bne    $dc10e
        dc10a | 1010           : move.b (A0),D0      // play sound
        dc10c | 6008           : bra    $dc116
        dc10e | 0c01 00fd      : cmpi.b #-$3,D1
        dc112 | 6608           : bne    $dc11c
        dc114 | 4200           : clr.b  D0           // stop sound
        dc116 | 4eb9 0010 000c : jsr    $10000c.l    // send sound code
        dc11c | 60b6           : bra    $dc0d4
        -->
    </script>
    <script state="run">
        <output format="----- ooparts 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@ff8010</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mq@02202 = 42b900ff80da33fc</action>
        <action>maincpu.mq@dc0d0 = ffffffffffffffff</action>
        <action>maincpu.mq@dc0d8 = ffffffffffffffff</action>
        <action>maincpu.mq@dc0e0 = ffffffffffffffff</action>
        <action>maincpu.mq@dc0e8 = ffffffffffffffff</action>
        <action>maincpu.mq@dc0f0 = ffffffffffffffff</action>
        <action>maincpu.mq@dc0f8 = ffffffffffffffff</action>
        <action>maincpu.mq@dc100 = ffffffffffffffff</action>
        <action>maincpu.mq@dc108 = ffffffffffffffff</action>
        <action>maincpu.mq@dc110 = ffffffffffffffff</action>
        <action>maincpu.mq@dc118 = ffffffffffffffff</action>
    </script>
</cheat>
"sound test mode" : rewrite routine. add up/down key (code ±10).
Post Reply