[rthun2j] Rolling Thunder 2

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

[rthun2j] Rolling Thunder 2

Post by jman »

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <!-- bullet -->
        <action>maincpu.mq@06330 = 4eb900023e206620</action>
        <action>maincpu.mq@23e20 = b1fc001003506708</action>
        <action>maincpu.mq@23e28 = b1fc001003da6606</action>
        <action>maincpu.mq@23e30 = 023c00fb4e750828</action>
        <action>maincpu.mq@23e38 = 000400074e75ffff</action>
        <!--
        23e20 | b1fc 0010 0350 : cmpa.l #$100350,A0
        23e26 | 6708           : beq    $23e30
        23e28 | b1fc 0010 03da : cmpa.l #$1003da,A0
        23e2e | 6606           : bne    $23e36
        23e30 | 023c 00fb      : andi   #$fb,CCR
        23e34 | 4e75           : rts
        23e36 | 0828 0004 0007 : btst   #$4,($7,A0)
        23e3c | 4e75           : rts
        -->
        <action>maincpu.mb@069d0 = 60</action> <!-- bomb -->
        <action>maincpu.mb@06a78 = 60</action> <!-- bomb explosion -->
        <action>maincpu.mb@09de2 = 60</action> <!-- body -->
        <action>maincpu.mb@0a30c = 60</action> <!-- punch -->
        <action>maincpu.mb@0c460 = 60</action> <!-- electricity -->
        <action>maincpu.mb@0e3ca = 60</action> <!-- rolling bomb -->
        <action>maincpu.mb@0ecbe = 60</action> <!-- armadillo man -->
        <action>maincpu.mb@0eece = 60</action> <!-- drill arm (armadillo man) -->
        <action>maincpu.mb@0f97e = 60</action> <!-- last boss -->
        <action>maincpu.mb@0fd6c = 60</action> <!-- beam (last boss) -->
    </script>
    <script state="off">
        <action>maincpu.mq@06330 = 0828000400076620</action>
        <action>maincpu.mq@23e20 = ffffffffffffffff</action>
        <action>maincpu.mq@23e28 = ffffffffffffffff</action>
        <action>maincpu.mq@23e30 = ffffffffffffffff</action>
        <action>maincpu.mq@23e38 = ffffffffffffffff</action>
        <action>maincpu.mb@069d0 =               65</action>
        <action>maincpu.mb@06a78 =               65</action>
        <action>maincpu.mb@09de2 =               67</action>
        <action>maincpu.mb@0a30c =               65</action>
        <action>maincpu.mb@0c460 =               65</action>
        <action>maincpu.mb@0e3ca =               65</action>
        <action>maincpu.mb@0ecbe =               67</action>
        <action>maincpu.mb@0eece =               65</action>
        <action>maincpu.mb@0f97e =               67</action>
        <action>maincpu.mb@0fd6c =               65</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mb@0f5e = 60</action> <!-- crouch -->
        <action>maincpu.mb@4f30 = 60</action> <!-- stand -->
        <action>maincpu.mb@54ef = 44</action> <!-- stand -->
        <action>maincpu.mb@5559 = 44</action> <!-- crouch -->
    </script>
    <script state="off">
        <action>maincpu.mb@0f5e = 66</action>
        <action>maincpu.mb@4f30 = 66</action>
        <action>maincpu.mb@54ef = 46</action>
        <action>maincpu.mb@5559 = 46</action>
    </script>
</cheat>

<cheat desc="multiple jump">
    <script state="on">
        <action>maincpu.mq@04c30 = 4eb900023e404e71</action>
        <action>maincpu.mq@23e40 = 0c6e0016000c6710</action>
        <action>maincpu.mq@23e48 = 0c6e0018000c6708</action>
        <action>maincpu.mq@23e50 = 0c6e0032000c6612</action>
        <action>maincpu.mq@23e58 = 3039001001460240</action>
        <action>maincpu.mq@23e60 = 002067063d7c0012</action>
        <action>maincpu.mq@23e68 = 000c306e000c3068</action>
        <action>maincpu.mq@23e70 = 143e4e75ffffffff</action>
        <!--
        23e40 | 0c6e 0016 000c : cmpi.w  #$16,($c,A6)  // jump (rise)
        23e46 | 6710           : beq     $23e58
        23e48 | 0c6e 0018 000c : cmpi.w  #$18,($c,A6)  // jump (fall)
        23e4e | 6708           : beq     $23e58
        23e50 | 0c6e 0032 000c : cmpi.w  #$32,($c,A6)  // fall down
        23e56 | 6612           : bne     $23e6a
        23e58 | 3039 0010 0146 : move.w  $100146.l,D0
        23e5e | 0240 0020      : andi.w  #$20,D0
        23e62 | 6706           : beq     $23e6a
        23e64 | 3d7c 0012 000c : move.w  #$12,($c,A6)
        23e6a | 306e 000c      : movea.w ($c,A6),A0
        23e6e | 3068 143e      : movea.w ($143e,A0),A0
        23e72 | 4e75           : rts
        -->
    </script>
    <script state="off">
        <action>maincpu.mq@04c30 = 306e000c3068143e</action>
        <action>maincpu.mq@23e40 = ffffffffffffffff</action>
        <action>maincpu.mq@23e48 = ffffffffffffffff</action>
        <action>maincpu.mq@23e50 = ffffffffffffffff</action>
        <action>maincpu.mq@23e58 = ffffffffffffffff</action>
        <action>maincpu.mq@23e60 = ffffffffffffffff</action>
        <action>maincpu.mq@23e68 = ffffffffffffffff</action>
        <action>maincpu.mq@23e70 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="action speed up (test)">
    <script state="on">
        <!-- shot (stand) -->
        <action>maincpu.mb@09c3 = 00</action>
        <action>maincpu.mb@09e7 = 00</action>
        <action>maincpu.mb@0a0f = 00</action>
        <action>maincpu.mb@4f8f = 00</action>
        <action>maincpu.mb@5503 = 00</action>
        <!-- shot (crouch) -->
        <action>maincpu.mb@0fbb = 00</action>
        <action>maincpu.mb@0fe1 = 00</action>
        <action>maincpu.mb@1003 = 00</action>
        <action>maincpu.mb@1029 = 00</action>
        <action>maincpu.mb@556d = 00</action>
        <!-- machine gun (stand) -->
        <action>maincpu.mb@124d = 00</action>
        <action>maincpu.mb@126d = 00</action>
        <action>maincpu.mb@1291 = 00</action>
        <action>maincpu.mb@527d = 00</action>
        <action>maincpu.mb@5535 = 00</action>
        <!-- machine gun (crouch) -->
        <action>maincpu.mb@133d = 00</action>
        <action>maincpu.mb@1361 = 00</action>
        <action>maincpu.mb@1381 = 00</action>
        <action>maincpu.mb@13a5 = 00</action>
        <action>maincpu.mb@559f = 00</action>
        <!-- enter at the door -->
        <action>maincpu.mb@1179 = 00</action>
        <action>maincpu.mb@11c1 = 00</action>
        <action>maincpu.mb@11fb = 00</action>
        <action>maincpu.mb@4d79 = 00</action>
        <action>maincpu.mb@4fb3 = 00</action>
        <action>maincpu.mb@4fd9 = 00</action>
    </script>
    <script state="off">
        <action>maincpu.mb@09c3 = 08</action>
        <action>maincpu.mb@09e7 = 04</action>
        <action>maincpu.mb@0a0f = 04</action>
        <action>maincpu.mb@4f8f = 02</action>
        <action>maincpu.mb@5503 = 01</action>
        <action>maincpu.mb@0fbb = 02</action>
        <action>maincpu.mb@0fe1 = 08</action>
        <action>maincpu.mb@1003 = 04</action>
        <action>maincpu.mb@1029 = 04</action>
        <action>maincpu.mb@556d = 01</action>
        <action>maincpu.mb@124d = 04</action>
        <action>maincpu.mb@126d = 04</action>
        <action>maincpu.mb@1291 = 04</action>
        <action>maincpu.mb@527d = 02</action>
        <action>maincpu.mb@5535 = 01</action>
        <action>maincpu.mb@133d = 02</action>
        <action>maincpu.mb@1361 = 04</action>
        <action>maincpu.mb@1381 = 04</action>
        <action>maincpu.mb@13a5 = 04</action>
        <action>maincpu.mb@559f = 01</action>
        <action>maincpu.mb@1179 = 16</action>
        <action>maincpu.mb@11c1 = 14</action>
        <action>maincpu.mb@11fb = 14</action>
        <action>maincpu.mb@4d79 = 04</action>
        <action>maincpu.mb@4fb3 = 16</action>
        <action>maincpu.mb@4fd9 = 04</action>
    </script>
</cheat>

<cheat desc="timer speed">
    <parameter>
        <item value="0x0200">01 (slow)</item>
        <item value="0x0100">02       </item>
        <item value="0x0080">03       </item>
        <item value="0x003c">04       </item>
        <item value="0x0000">05 (fast)</item>
    </parameter>
    <script state="change">
        <action>maincpu.mw@a50c = param</action> <!-- initialize -->
        <action>maincpu.mw@a534 = param</action> <!-- main -->
    </script>
    <script state="off">
        <action>maincpu.mw@a50c = 003c</action>
        <action>maincpu.mw@a534 = 003c</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@0407a = 4ef900023e8067f8</action>
        <action>maincpu.mq@23e80 = 41f90010010043f9</action>
        <action>maincpu.mq@23e88 = 0046000045e80002</action>
        <action>maincpu.mq@23e90 = 47e9022049e90420</action>
        <action>maincpu.mq@23e98 = 4be9082014013211</action>
        <action>maincpu.mq@23ea0 = b40167f80c010002</action>
        <action>maincpu.mq@23ea8 = 660253500c010001</action>
        <action>maincpu.mq@23eb0 = 660252500c010004</action>
        <action>maincpu.mq@23eb8 = 6604045000100c01</action>
        <action>maincpu.mq@23ec0 = 0008660406500010</action>
        <action>maincpu.mq@23ec8 = 025001ff0c010040</action>
        <action>maincpu.mq@23ed0 = 6604061200800c01</action>
        <action>maincpu.mq@23ed8 = 0010662c30100c40</action>
        <action>maincpu.mq@23ee0 = 00806404224b6014</action>
        <action>maincpu.mq@23ee8 = 0c40010064080440</action>
        <action>maincpu.mq@23ef0 = 0080224c60060440</action>
        <action>maincpu.mq@23ef8 = 0100224d13d20046</action>
        <action>maincpu.mq@23f00 = 0ff332c032bc0040</action>
        <action>maincpu.mq@23f08 = 0c010020661226bc</action>
        <action>maincpu.mq@23f10 = 00ff004028bc00ff</action>
        <action>maincpu.mq@23f18 = 00402abc00fe0040</action>
        <action>maincpu.mq@23f20 = 6000ff5effffffff</action>
        <!--
        23e80 | 41f9 0010 0100 : lea     $100100.l,A0   // $100100 : sound code address
        23e86 | 43f9 0046 0000 : lea     $460000.l,A1   // $460000 : input address
        23e8c | 45e8 0002      : lea     ($2,A0),A2     // $100102 : bank number address
        23e90 | 47e9 0220      : lea     ($220,A1),A3   // $460220 : sound latch address 1
        23e94 | 49e9 0420      : lea     ($420,A1),A4   // $460420 : sound latch address 2
        23e98 | 4be9 0820      : lea     ($820,A1),A5   // $460820 : sound latch address 3
        23e9c | 1401           : move.b  D1,D2
        23e9e | 3211           : move.w  (A1),D1
        23ea0 | b401           : cmp.b   D1,D2
        23ea2 | 67f8           : beq     $23e9c
        23ea4 | 0c01 0002      : cmpi.b  #$2,D1
        23ea8 | 6602           : bne     $23eac
        23eaa | 5350           : subq.w  #1,(A0)        // decrease code -01
        23eac | 0c01 0001      : cmpi.b  #$1,D1
        23eb0 | 6602           : bne     $23eb4
        23eb2 | 5250           : addq.w  #1,(A0)        // increase code +01
        23eb4 | 0c01 0004      : cmpi.b  #$4,D1
        23eb8 | 6604           : bne     $23ebe
        23eba | 0450 0010      : subi.w  #$10,(A0)      // decrease code -10
        23ebe | 0c01 0008      : cmpi.b  #$8,D1
        23ec2 | 6604           : bne     $23ec8
        23ec4 | 0650 0010      : addi.w  #$10,(A0)      // increase code +10
        23ec8 | 0250 01ff      : andi.w  #$1ff,(A0)
        23ecc | 0c01 0040      : cmpi.b  #$40,D1
        23ed0 | 6604           : bne     $23ed6
        23ed2 | 0612 0080      : addi.b  #-$80,(A2)     // switch bank
        23ed6 | 0c01 0010      : cmpi.b  #$10,D1
        23eda | 662c           : bne     $23f08
        23edc | 3010           : move.w  (A0),D0        // play sound
        23ede | 0c40 0080      : cmpi.w  #$80,D0
        23ee2 | 6404           : bcc     $23ee8
        23ee4 | 224b           : movea.l A3,A1          // 0x0000 - 0x007f : FM part
        23ee6 | 6014           : bra     $23efc
        23ee8 | 0c40 0100      : cmpi.w  #$100,D0
        23eec | 6408           : bcc     $23ef6
        23eee | 0440 0080      : subi.w  #$80,D0        // 0x0080 - 0x00ff : FM and C140 part
        23ef2 | 224c           : movea.l A4,A1
        23ef4 | 6006           : bra     $23efc
        23ef6 | 0440 0100      : subi.w  #$100,D0       // 0x0100 - 0x01ff : C140 part
        23efa | 224d           : movea.l A5,A1
        23efc | 13d2 0046 0ff3 : move.b  (A2),$460ff3.l // set bank
        23f02 | 32c0           : move.w  D0,(A1)+       // send sound code
        23f04 | 32bc 0040      : move.w  #$40,(A1)      // enable sound
        23f08 | 0c01 0020      : cmpi.b  #$20,D1
        23f0c | 6612           : bne     $23f20
        23f0e | 26bc 00ff 0040 : move.l  #$ff0040,(A3)  // stop sounds
        23f14 | 28bc 00ff 0040 : move.l  #$ff0040,(A4)
        23f1a | 2abc 00fe 0040 : move.l  #$fe0040,(A5)
        23f20 | 6000 ff5e      : bra     $23e80
        -->
    </script>
    <script state="run">
        <output format="----- rolling thunder 2 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 3 : switch bank"                        line="15" align="center" />
        <output format="button 1 : play sound"                         line="16" align="center" />
        <output format="button 2 : stop sound"                         line="17" align="center" />
        <output format="----------------------------"                  line="18" align="center" />
        <output format="&lt;&lt; bank %2.2X &gt;&gt;"                  line="20" align="center"  >
            <argument>maincpu.pb@100102</argument>
        </output>
        <output format="&lt;&lt; sound code %2.2X &gt;&gt;"            line="22" align="center"  >
            <argument>maincpu.pw@100100</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mq@0407a = 4a790010000267f8</action>
        <action>maincpu.mq@23e80 = ffffffffffffffff</action>
        <action>maincpu.mq@23e88 = ffffffffffffffff</action>
        <action>maincpu.mq@23e90 = ffffffffffffffff</action>
        <action>maincpu.mq@23e98 = ffffffffffffffff</action>
        <action>maincpu.mq@23ea0 = ffffffffffffffff</action>
        <action>maincpu.mq@23ea8 = ffffffffffffffff</action>
        <action>maincpu.mq@23eb0 = ffffffffffffffff</action>
        <action>maincpu.mq@23eb8 = ffffffffffffffff</action>
        <action>maincpu.mq@23ec0 = ffffffffffffffff</action>
        <action>maincpu.mq@23ec8 = ffffffffffffffff</action>
        <action>maincpu.mq@23ed0 = ffffffffffffffff</action>
        <action>maincpu.mq@23ed8 = ffffffffffffffff</action>
        <action>maincpu.mq@23ee0 = ffffffffffffffff</action>
        <action>maincpu.mq@23ee8 = ffffffffffffffff</action>
        <action>maincpu.mq@23ef0 = ffffffffffffffff</action>
        <action>maincpu.mq@23ef8 = ffffffffffffffff</action>
        <action>maincpu.mq@23f00 = ffffffffffffffff</action>
        <action>maincpu.mq@23f08 = ffffffffffffffff</action>
        <action>maincpu.mq@23f10 = ffffffffffffffff</action>
        <action>maincpu.mq@23f18 = ffffffffffffffff</action>
        <action>maincpu.mq@23f20 = ffffffffffffffff</action>
        <action>maincpu.mq@23f28 = ffffffffffffffff</action>
    </script>
</cheat>
"auto fire" : "auto fire" is valid even in case of "no ammo".
Image
"action speed up" : this is test code because of unverified.
"sound test mode" : some musics require another bank to play. For example, round 1 music is bank 0x80 + code 0x96 though no sound if bank 0x00 + code 0x96.
Post Reply