Page 1 of 1

[ooparts] OOPArts

Posted: Thu Sep 30, 2021 10:06 am
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".

[ooparts] OOPArts (update)

Posted: Sat Dec 24, 2022 12:29 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.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).