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="<< bank %2.2X >>" line="20" align="center" >
<argument>maincpu.pb@100102</argument>
</output>
<output format="<< sound code %2.2X >>" 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>
"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.