[ddcrewj2] D. D. Crew

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: 864
Joined: Tue Dec 01, 2020 1:24 pm

[ddcrewj2] D. D. Crew

Post by jman »

Code: Select all

<cheat desc="no hit">
    <script state="run">
        <action>maincpu.ob@0bdce = 60</action> <!-- player vs player -->
        <action>maincpu.ob@157c8 = 60</action> <!-- machine gun (time over) -->
        <action>maincpu.ob@16490 = 60</action> <!-- normal attack -->
        <action>maincpu.ob@21b9a = 60</action> <!-- machine gun (boss 6) -->
        <action>maincpu.ob@2791c = 60</action> <!-- bazooka (boss 6) -->
        <action>maincpu.ob@27d2c = 60</action> <!-- drum (boss 5) -->
        <action>maincpu.ob@285d6 = 60</action> <!-- knife -->
        <action>maincpu.ob@28796 = 60</action> <!-- grenade -->
    </script>
    <script state="off">
        <action>maincpu.ob@0bdce = 6e</action>
        <action>maincpu.ob@157c8 = 66</action>
        <action>maincpu.ob@16490 = 6e</action>
        <action>maincpu.ob@21b9a = 66</action>
        <action>maincpu.ob@2791c = 6e</action>
        <action>maincpu.ob@27d2c = 6c</action>
        <action>maincpu.ob@285d6 = 6e</action>
        <action>maincpu.ob@28796 = 66</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="run">
        <action>maincpu.ob@864c = 60</action>
    </script>
    <script state="off">
        <action>maincpu.ob@864c = 67</action>
    </script>
</cheat>

<cheat desc="walk speed">
    <parameter>
        <item value="0x0080">01 (slow)</item>
        <item value="0x0180">02       </item>
        <item value="0x0300">03       </item>
        <item value="0x0480">04       </item>
        <item value="0x0600">05 (fast)</item>
    </parameter>
    <script state="run">
        <action>maincpu.ob@3e4e =     6e</action> <!-- patch at start point in stage 5 -->
        <action>maincpu.ow@86de =  param</action> <!-- right -->
        <action>maincpu.ow@8748 = -param</action> <!-- left -->
        <action>maincpu.ow@87c0 =  param</action> <!-- down -->
        <action>maincpu.ow@8816 = -param</action> <!-- up -->
    </script>
    <script state="off">
        <action>maincpu.ob@3e4e =   67</action>
        <action>maincpu.ow@86de = 0180</action>
        <action>maincpu.ow@8748 = fe80</action>
        <action>maincpu.ow@87c0 = 0100</action>
        <action>maincpu.ow@8816 = ff00</action>
    </script>
</cheat>

<cheat desc="action speed up">
    <script state="run">
        <action>maincpu.ob@aeef = 02</action>
    </script>
    <script state="off">
        <action>maincpu.ob@aeef = 1e</action>
    </script>
</cheat>

<cheat desc="1 hit kill">
    <script state="run">
        <action>maincpu.ob@16a1d = 02</action> <!-- normal scene -->
        <action>maincpu.ob@25387 = 02</action> <!-- bonus scene -->
    </script>
    <script state="off">
        <action>maincpu.ob@16a1d = 2c</action>
        <action>maincpu.ob@25387 = 0c</action>
    </script>
</cheat>

<cheat desc="selectable same character">
    <script state="run">
        <!-- character selection screen -->
        <action>maincpu.ob@53bf = 08</action>
        <action>maincpu.ob@5403 = 08</action>
        <!-- join -->
        <action>maincpu.ob@78ff = 08</action>
        <action>maincpu.ob@7943 = 08</action>
    </script>
    <script state="off">
        <action>maincpu.ob@53bf = e0</action>
        <action>maincpu.ob@5403 = e0</action>
        <action>maincpu.ob@78ff = e0</action>
        <action>maincpu.ob@7943 = e0</action>
    </script>
</cheat>

<cheat desc="sound test mode">
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="run">
        <!-- routine -->
        <action>maincpu.oq@0070a = 4ef9000330704e71</action>
        <action>maincpu.oq@33070 = 41f8900043f900fe</action>
        <action>maincpu.oq@33078 = 00071200103900e4</action>
        <action>maincpu.oq@33080 = 0001b20067f40c00</action>
        <action>maincpu.oq@33088 = 007f660253100c00</action>
        <action>maincpu.oq@33090 = 00bf660252100c00</action>
        <action>maincpu.oq@33098 = 00ef660404100010</action>
        <action>maincpu.oq@330a0 = 0c0000df66040610</action>
        <action>maincpu.oq@330a8 = 00100c0000fe6608</action>
        <action>maincpu.oq@330b0 = 1410000200801282</action>
        <action>maincpu.oq@330b8 = 0c0000fd66024211</action>
        <action>maincpu.oq@330c0 = 60b8ffffffffffff</action>
        <!--
        33070 | 41f8 9000      : lea    $9000.w,A0   // sound code address ($ff9000)
        33074 | 43f9 00fe 0007 : lea    $fe0007.l,A1 // sound latch address
        3307a | 1200           : move.b D0,D1
        3307c | 1039 00e4 0001 : move.b $e40001.l,D0 // read input
        33082 | b200           : cmp.b  D0,D1
        33084 | 67f4           : beq    $3307a
        33086 | 0c00 007f      : cmpi.b #$7f,D0
        3308a | 6602           : bne    $3308e
        3308c | 5310           : subq.b #1,(A0)      // decrease code -01
        3308e | 0c00 00bf      : cmpi.b #-$41,D0
        33092 | 6602           : bne    $33096
        33094 | 5210           : addq.b #1,(A0)      // increase code +01
        33096 | 0c00 00ef      : cmpi.b #-$11,D0
        3309a | 6604           : bne    $330a0
        3309c | 0410 0010      : subi.b #$10,(A0)    // decrease code -10
        330a0 | 0c00 00df      : cmpi.b #-$21,D0
        330a4 | 6604           : bne    $330aa
        330a6 | 0610 0010      : addi.b #$10,(A0)    // increase code +10
        330aa | 0c00 00fe      : cmpi.b #-$2,D0
        330ae | 6608           : bne    $330b8
        330b0 | 1410           : move.b (A0),D2      // play sound
        330b2 | 0002 0080      : ori.b  #$80,D2
        330b6 | 1282           : move.b D2,(A1)
        330b8 | 0c00 00fd      : cmpi.b #-$3,D0
        330bc | 6602           : bne    $330c0
        330be | 4211           : clr.b  (A1)         // stop sound
        330c0 | 60b8           : bra    $3307a
        -->
        <!-- display -->
        <output format="----- d.d. crew 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="up : increase code +10"                line="13" align="center" />
        <output format="down : decrease 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@ff9000</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.oq@0070a = 610001a0610005c6</action>
        <action>maincpu.oq@33070 = ad20a482ad80a422</action>
        <action>maincpu.oq@33078 = ad20a590a482ad20</action>
        <action>maincpu.oq@33080 = a482a590a482a590</action>
        <action>maincpu.oq@33088 = a422ad20a422a482</action>
        <action>maincpu.oq@33090 = ad20a422ad20a482</action>
        <action>maincpu.oq@33098 = a422a422a482a482</action>
        <action>maincpu.oq@330a0 = a5a0a422ad20a5a0</action>
        <action>maincpu.oq@330a8 = ad20a482ad20ad20</action>
        <action>maincpu.oq@330b0 = ad80a5a0a422a5a0</action>
        <action>maincpu.oq@330b8 = a482a5a0a422a422</action>
        <action>maincpu.oq@330c0 = a422ad20a422a482</action>
    </script>
</cheat>
"selectable same character" is unique. Normally, this game doesn't allow you to select the same character. This code breaks that rule.
Image

Code: Select all

<cheat desc="infinite time">
    <script state="run">
        <action>maincpu.pw@ffcc18 = 0000</action>
    </script>
</cheat>

<cheat desc="time over now">
    <script state="on">
        <action>maincpu.pw@ffcc18 = 0708</action>
    </script>
</cheat>
This game has the timer (2 bytes. not decrease but increase). Boss character who has the machine gun appears soon (and kills you) when you set "time over now" code.
Post Reply