Small clean up.
Code: Select all
<!-- Zed Blade / Operation Ragnarok -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.rb@87BA = 60</action> <!-- bullet -->
<action>maincpu.rb@9328 = 60</action> <!-- enemy -->
</script>
<script state="off">
<action>maincpu.rb@87BA = 66</action>
<action>maincpu.rb@9328 = 66</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.rw@766E = 4E71</action>
</script>
<script state="off">
<action>maincpu.rw@766E = 640E</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x00008000">01 (slow)</item>
<item value="0x00028000">02 </item>
<item value="0x00048000">03 </item>
<item value="0x00068000">04 </item>
<item value="0x00088000">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.rq@6D48 = 4EB90000FAD04E71</action>
<action>maincpu.rq@FAD0 = 243C000000002230</action>
<action>maincpu.rq@FAD8 = 000067066A024482</action>
<action>maincpu.rq@FAE0 = 2202243C00000000</action>
<action>maincpu.rq@FAE8 = 2030000467066A02</action>
<action>maincpu.rq@FAF0 = 448220024E75FFFF</action>
<!--
FAD0 | 243C xxxx xxxx : move.l #$xxxx, D2 // x position
FAD6 | 2230 0000 : move.l (A0,D0.w), D1
FADA | 6706 : beq $fae2
FADC | 6A02 : bpl $fae0
FADE | 4482 : neg.l D2
FAE0 | 2202 : move.l D2, D1
FAE2 | 243C xxxx xxxx : move.l #$xxxx, D2 // y position
FAE8 | 2030 0004 : move.l ($4,A0,D0.w), D0
FAEC | 6706 : beq $faf4
FAEE | 6A02 : bpl $faf2
FAF0 | 4482 : neg.l D2
FAF2 | 2002 : move.l D2, D0
FAF4 | 4E75 : rts
-->
</script>
<script state="change">
<action>maincpu.rd@FAD2 = param</action>
<action>maincpu.rd@FAE4 = param</action>
</script>
<script state="off">
<action>maincpu.rq@6D48 = 2230000020300004</action>
<action>maincpu.rq@FAD0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.rq@FAD8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.rq@FAE0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.rq@FAE8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.rq@FAF0 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="max bullets up - main shot">
<script state="on">
<action>maincpu.rq@76C4 = 4EB90000FB003218</action>
<action>maincpu.rq@FB00 = 49F500003018E318</action>
<action>maincpu.rq@FB08 = 4E75FFFFFFFFFFFF</action>
<!--
FB00 | 49F5 0000 : lea (A5,D0.w), A4
FB04 | 3018 : move.w (A0)+, D0
FB06 | E318 : rol.b #1, D0
FB08 | 4E75 : rts
-->
</script>
<script state="off">
<action>maincpu.rq@76C4 = 49F5000030183218</action>
<action>maincpu.rq@FB00 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.rq@FB08 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="short hit mark (test)">
<!-- unverified -->
<script state="on">
<action>maincpu.rd@7604 = 4EB90000FB906002</action>
<action>maincpu.rq@FB90 = 3D7C0001003C588D</action>
<action>maincpu.rq@FB98 = 201D02800000FFFF</action>
<action>maincpu.rq@FBA0 = 66F6598D2D4D0038</action>
<action>maincpu.rq@FBA8 = 4E75FFFFFFFFFFFF</action>
<!--
FB90 | 3D7C 0001 003C : move.w #$1, ($3c,A6)
FB96 | 588D : addq.l #4, A5
FB98 | 201D : move.l (A5)+, D0
FB9A | 0280 0000 FFFF : andi.l #$ffff, D0
FBA0 | 66F6 : bne $fb98
FBA2 | 598D : subq.l #4, A5
FBA4 | 2D4D 0038 : move.l A5, ($38,A6)
FBA8 | 4E75 : rts
-->
</script>
<script state="off">
<action>maincpu.rd@7604 = 3D7C0001003C6002</action>
<action>maincpu.rq@FB90 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.rq@FB98 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.rq@FBA0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.rq@FBA8 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<!-- don't play code 0x01, 0x03, and 0x10 because of no sound response -->
<!-- valid bank number seems to be 0x00 and 0x0a -->
<script state="on">
<action>maincpu.rd@660A = 0000B61E </action> <!-- check sound code in interrupt -->
<action>maincpu.rq@60E0 = 4EF90000FB105240</action>
<action>maincpu.rq@FB10 = 41F90010800043E8</action>
<action>maincpu.rq@FB18 = 0001247C0000B578</action>
<action>maincpu.rq@FB20 = 1401123900300000</action>
<action>maincpu.rq@FB28 = B40167F40C0100FB</action>
<action>maincpu.rq@FB30 = 660253100C0100F7</action>
<action>maincpu.rq@FB38 = 660252100C0100FD</action>
<action>maincpu.rq@FB40 = 6604041000100C01</action>
<action>maincpu.rq@FB48 = 00FE660406100010</action>
<action>maincpu.rq@FB50 = 0C0100BB66025311</action>
<action>maincpu.rq@FB58 = 0C0100B766025211</action>
<action>maincpu.rq@FB60 = 0211000F0C0100EF</action>
<action>maincpu.rq@FB68 = 6610424010116706</action>
<action>maincpu.rq@FB70 = 06000010E1488010</action>
<action>maincpu.rq@FB78 = 4E920C0100DF660C</action>
<action>maincpu.rq@FB80 = 303C01034E92303C</action>
<action>maincpu.rq@FB88 = 07004E926092FFFF</action>
<!--
FB10 | 41F9 0010 8000 : lea $108000.l, A0 // sound code address
FB16 | 43E8 0001 : lea ($1,A0), A1 // bank address ($108001)
FB1A | 247C 0000 B578 : movea.l #$b578, A2 // sound latch routine address
FB20 | 1401 : move.b D1, D2
FB22 | 1239 0030 0000 : move.b $300000.l, D1 // read input
FB28 | B401 : cmp.b D1, D2
FB2A | 67F4 : beq $fb20
FB2C | 0C01 00FB : cmpi.b #-$5, D1
FB30 | 6602 : bne $fb34
FB32 | 5310 : subq.b #1, (A0) // decrease code -01
FB34 | 0C01 00F7 : cmpi.b #-$9, D1
FB38 | 6602 : bne $fb3c
FB3A | 5210 : addq.b #1, (A0) // increase code +01
FB3C | 0C01 00FD : cmpi.b #-$3, D1
FB40 | 6604 : bne $fb46
FB42 | 0410 0010 : subi.b #$10, (A0) // decrease code -10
FB46 | 0C01 00FE : cmpi.b #-$2, D1
FB4A | 6604 : bne $fb50
FB4C | 0610 0010 : addi.b #$10, (A0) // increase code +10
FB50 | 0C01 00BB : cmpi.b #-$45, D1
FB54 | 6602 : bne $fb58
FB56 | 5311 : subq.b #1, (A1) // decrease bank -01
FB58 | 0C01 00B7 : cmpi.b #-$49, D1
FB5C | 6602 : bne $fb60
FB5E | 5211 : addq.b #1, (A1) // increase bank +01
FB60 | 0211 000F : andi.b #$f, (A1)
FB64 | 0C01 00EF : cmpi.b #-$11, D1
FB68 | 6610 : bne $fb7a
FB6A | 4240 : clr.w D0 // play sound
FB6C | 1011 : move.b (A1), D0
FB6E | 6706 : beq $fb76
FB70 | 0600 0010 : addi.b #$10, D0
FB74 | E148 : lsl.w #8, D0
FB76 | 8010 : or.b (A0), D0
FB78 | 4E92 : jsr (A2)
FB7A | 0C01 00DF : cmpi.b #-$21, D1
FB7E | 660C : bne $fb8c
FB80 | 303C 0103 : move.w #$103, D0 // stop sound
FB84 | 4E92 : jsr (A2)
FB86 | 303C 0700 : move.w #$700, D0
FB8A | 4E92 : jsr (A2)
FB8C | 6092 : bra $fb20
-->
</script>
<script state="run">
<output format="----- zed blade/operation ragnarok 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 + left : decrease bank -01" line="15" align="center" />
<output format="button 3 + right : increase bank +01" line="16" align="center" />
<output format="button 1 : play sound" line="17" align="center" />
<output format="button 2 : stop sound" line="18" align="center" />
<output format="----------------------------" line="19" align="center" />
<output format="<< bank %X >>" line="21" align="center" >
<argument>maincpu.pb@108001</argument>
</output>
<output format="<< sound code %02X >>" line="23" align="center" >
<argument>maincpu.pb@108000</argument>
</output>
</script>
<script state="off">
<action>maincpu.rd@660A = 00C0044A </action>
<action>maincpu.rq@60E0 = 10390010FD895240</action>
<action>maincpu.rq@FB10 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.rq@FB18 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.rq@FB20 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.rq@FB28 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.rq@FB30 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.rq@FB38 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.rq@FB40 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.rq@FB48 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.rq@FB50 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.rq@FB58 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.rq@FB60 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.rq@FB68 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.rq@FB70 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.rq@FB78 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.rq@FB80 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.rq@FB88 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action condition="maincpu.rd@c11afc == 3a3c7fff">temp0 = C11AFC, maincpu.rd@temp0 = 60000168</action> <!-- euro, euro-s1, japan-s2, japan-s1 -->
<action condition="maincpu.rd@c10c20 == 3a3c7fff">temp0 = C10C20, maincpu.rd@temp0 = 60000168</action> <!-- asia-mv1c, japan-mv1b -->
<action condition="maincpu.rd@c10afc == 3a3c7fff">temp0 = C10AFC, maincpu.rd@temp0 = 60000168</action> <!-- asia-mv1b, japan-mv1c -->
<action condition="maincpu.rd@c11ad2 == 3a3c7fff">temp0 = C11AD2, maincpu.rd@temp0 = 60000168</action> <!-- us, us-e, us-v2, us-u4 -->
<action condition="maincpu.rd@c11abc == 3a3c7fff">temp0 = C11ABC, maincpu.rd@temp0 = 60000104</action> <!-- us-u3 -->
<action condition="maincpu.rd@c11c24 == 3a3c7fff">temp0 = C11C24, maincpu.rd@temp0 = 60000168</action> <!-- japan -->
<action condition="maincpu.rd@c11ae6 == 3a3c7fff">temp0 = C11AE6, maincpu.rd@temp0 = 60000104</action> <!-- japan-j3a -->
<action condition="maincpu.rd@c11bc6 == 3a3c7fff">temp0 = C11BC6, maincpu.rd@temp0 = 6000017C</action> <!-- japan-hotel -->
</script>
<script state="off">
<action>maincpu.rd@temp0 = 3A3C7FFF</action>
</script>
</cheat>
</mamecheat>
"short hit mark" : Added new as test code. Unverified.