Small clean up.
Code: Select all
<!-- Andro Dunos (NGM-049 ~ NGH-049) -->
<mamecheat version="1">
<cheat desc="no hit - player">
<script state="on">
<action>maincpu.rw@57BA = 58D8</action> <!-- enemy -->
<action>maincpu.rw@57D2 = 58D8</action> <!-- bullet -->
<action>maincpu.rw@57EA = 58D8</action> <!-- enemy -->
<action>maincpu.rw@5AD4 = 601E</action> <!-- capture beam -->
<action>maincpu.rw@D464 = 6000</action> <!-- background -->
</script>
<script state="off">
<action>maincpu.rw@57BA = 581A</action>
<action>maincpu.rw@57D2 = 581A</action>
<action>maincpu.rw@57EA = 581A</action>
<action>maincpu.rw@5AD4 = 4EB9</action>
<action>maincpu.rw@D464 = 6700</action>
</script>
</cheat>
<cheat desc="no hit - subunits">
<script state="on">
<action>maincpu.rb@578B = D8</action> <!-- enemy -->
<action>maincpu.rb@57A3 = D8</action> <!-- bullet -->
</script>
<script state="off">
<action>maincpu.rb@578B = 1A</action>
<action>maincpu.rb@57A3 = 1A</action>
</script>
</cheat>
<cheat desc="auto fire">
<parameter>
<item value="0x4e">unchargeable</item>
<item value="0x02"> chargeable</item>
</parameter>
<script state="change">
<action> maincpu.rb@E175 = param</action>
<action condition="param == 4e">maincpu.rb@E191 = AD </action>
<action condition="param == 02">maincpu.rb@E191 = ED </action>
</script>
<script state="off">
<action>maincpu.rb@E175 = 4E</action>
<action>maincpu.rb@E191 = ED</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x0080">01 (slow)</item>
<item value="0x0280">02 </item>
<item value="0x0400">03 </item>
<item value="0x0580">04 </item>
<item value="0x0700">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.rq@0D5FE = 4EB9000303204E71</action>
<action>maincpu.rq@30320 = 323C00004A426706</action>
<action>maincpu.rq@30328 = 6A0244413401323C</action>
<action>maincpu.rq@30330 = 00004A4367066A02</action>
<action>maincpu.rq@30338 = 444136013B42000C</action>
<action>maincpu.rq@30340 = 3B43000E4E750000</action>
<!--
30320 | 323C xxxx : move.w #$xx, D1 // x position
30324 | 4A42 : tst.w D2
30326 | 6706 : beq $3032e
30328 | 6A02 : bpl $3032c
3032A | 4441 : neg.w D1
3032C | 3401 : move.w D1, D2
3032E | 323C xxxx : move.w #$xx, D1 // y position
30332 | 4A43 : tst.w D3
30334 | 6706 : beq $3033c
30336 | 6A02 : bpl $3033a
30338 | 4441 : neg.w D1
3033A | 3601 : move.w D1, D3
3033C | 3B42 000C : move.w D2, ($c,A5)
30340 | 3B43 000E : move.w D3, ($e,A5)
30344 | 4E75 : rts
-->
</script>
<script state="change">
<action>maincpu.rw@30322 = param</action>
<action>maincpu.rw@30330 = param</action>
</script>
<script state="off">
<action>maincpu.rq@0D5FE = 3B42000C3B43000E</action>
<action>maincpu.rq@30320 = 0000000000000000</action>
<action>maincpu.rq@30328 = 0000000000000000</action>
<action>maincpu.rq@30330 = 0000000000000000</action>
<action>maincpu.rq@30338 = 0000000000000000</action>
<action>maincpu.rq@30340 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="bullet speed - main shot (test)">
<!-- unverified -->
<parameter min="0x01" max="0x05" step="0x01" />
<script state="on">
<action>maincpu.rd@03BE2 = 000303E0 </action>
<action>maincpu.rq@303E0 = 42440C1500066602</action>
<action>maincpu.rq@303E8 = 78014EB83F3451CC</action>
<action>maincpu.rq@303F0 = FFFA4E7500000000</action>
<!--
303E0 | 4244 : clr.w D4
303E2 | 0C15 0006 : cmpi.b #$6, (A5)
303E6 | 6602 : bne $303ea
303E8 | 78xx : moveq #$xx, D4
303EA | 4EB8 3F34 : jsr $3f34.w
303EE | 51CC FFFA : dbra D4, $303ea
303F2 | 4E75 : rts
-->
</script>
<script state="change">
<action>maincpu.rb@303E9 = param - 1</action>
</script>
<script state="off">
<action>maincpu.rd@03BE2 = 00003F34 </action>
<action>maincpu.rq@303E0 = 0000000000000000</action>
<action>maincpu.rq@303E8 = 0000000000000000</action>
<action>maincpu.rq@303F0 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="max bullets up - main shot">
<script state="on">
<action>maincpu.rb@E18F = 02</action>
</script>
<script state="off">
<action>maincpu.rb@E18F = 34</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- don't play code 0x01, 0x03 and 0x10 because of no sound response -->
<!-- valid bank number seems to be 0x00 and 0x08 -->
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.rd@00A8A = 00030350 </action>
<action>maincpu.rq@30350 = 46FC200041F90010</action>
<action>maincpu.rq@30358 = 800043E80001347C</action>
<action>maincpu.rq@30360 = 3BA2140112390030</action>
<action>maincpu.rq@30368 = 0000B40167F40C01</action>
<action>maincpu.rq@30370 = 00FB660253100C01</action>
<action>maincpu.rq@30378 = 00F7660252100C01</action>
<action>maincpu.rq@30380 = 00FD660404100010</action>
<action>maincpu.rq@30388 = 0C0100FE66040610</action>
<action>maincpu.rq@30390 = 00100C0100BB6602</action>
<action>maincpu.rq@30398 = 53110C0100B76602</action>
<action>maincpu.rq@303A0 = 52110211000F0C01</action>
<action>maincpu.rq@303A8 = 00EF660E10116706</action>
<action>maincpu.rq@303B0 = 060000104E921010</action>
<action>maincpu.rq@303B8 = 4E920C0100DF6612</action>
<action>maincpu.rq@303C0 = 103C00014E92103C</action>
<action>maincpu.rq@303C8 = 00034E92103C0007</action>
<action>maincpu.rq@303D0 = 4E92608E00000000</action>
<!--
30350 | 46FC 2000 : move #$2000, SR // enable interrupt
30354 | 41F9 0010 8000 : lea $108000.l, A0 // sound code address
3035A | 43E8 0001 : lea ($1,A0), A1 // bank address ($108001)
3035E | 347C 3BA2 : movea.w #$3ba2, A2 // sound latch routine address
30362 | 1401 : move.b D1, D2
30364 | 1239 0030 0000 : move.b $300000.l, D1 // read input
3036A | B401 : cmp.b D1, D2
3036C | 67F4 : beq $30362
3036E | 0C01 00FB : cmpi.b #-$5, D1
30372 | 6602 : bne $30376
30374 | 5310 : subq.b #1, (A0) // decrease code -01
30376 | 0C01 00F7 : cmpi.b #-$9, D1
3037A | 6602 : bne $3037e
3037C | 5210 : addq.b #1, (A0) // increase code +01
3037E | 0C01 00FD : cmpi.b #-$3, D1
30382 | 6604 : bne $30388
30384 | 0410 0010 : subi.b #$10, (A0) // decrease code -10
30388 | 0C01 00FE : cmpi.b #-$2, D1
3038C | 6604 : bne $30392
3038E | 0610 0010 : addi.b #$10, (A0) // increase code +10
30392 | 0C01 00BB : cmpi.b #-$45, D1
30396 | 6602 : bne $3039a
30398 | 5311 : subq.b #1, (A1) // decrease bank -01
3039A | 0C01 00B7 : cmpi.b #-$49, D1
3039E | 6602 : bne $303a2
303A0 | 5211 : addq.b #1, (A1) // increase bank +01
303A2 | 0211 000F : andi.b #$f, (A1)
303A6 | 0C01 00EF : cmpi.b #-$11, D1
303AA | 660E : bne $303ba
303AC | 1011 : move.b (A1), D0 // play sound
303AE | 6706 : beq $303b6
303B0 | 0600 0010 : addi.b #$10, D0
303B4 | 4E92 : jsr (A2)
303B6 | 1010 : move.b (A0), D0
303B8 | 4E92 : jsr (A2)
303BA | 0C01 00DF : cmpi.b #-$21, D1
303BE | 6612 : bne $303d2
303C0 | 103C 0001 : move.b #$1, D0 // stop sound
303C4 | 4E92 : jsr (A2)
303C6 | 103C 0003 : move.b #$3, D0
303CA | 4E92 : jsr (A2)
303CC | 103C 0007 : move.b #$7, D0
303D0 | 4E92 : jsr (A2)
303D2 | 608E : bra $30362
-->
</script>
<script state="run">
<output format="----- andro dunos 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@00A8A = 00000AD4 </action>
<action>maincpu.rq@30350 = 0000000000000000</action>
<action>maincpu.rq@30358 = 0000000000000000</action>
<action>maincpu.rq@30360 = 0000000000000000</action>
<action>maincpu.rq@30368 = 0000000000000000</action>
<action>maincpu.rq@30370 = 0000000000000000</action>
<action>maincpu.rq@30378 = 0000000000000000</action>
<action>maincpu.rq@30380 = 0000000000000000</action>
<action>maincpu.rq@30388 = 0000000000000000</action>
<action>maincpu.rq@30390 = 0000000000000000</action>
<action>maincpu.rq@30398 = 0000000000000000</action>
<action>maincpu.rq@303A0 = 0000000000000000</action>
<action>maincpu.rq@303A8 = 0000000000000000</action>
<action>maincpu.rq@303B0 = 0000000000000000</action>
<action>maincpu.rq@303B8 = 0000000000000000</action>
<action>maincpu.rq@303C0 = 0000000000000000</action>
<action>maincpu.rq@303C8 = 0000000000000000</action>
<action>maincpu.rq@303D0 = 0000000000000000</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>
"bullet speed" : Added new as test code. Unverified.