[btlfield] Time Soldiers/Battle Field

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: 870
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 1 time

[btlfield] Time Soldiers/Battle Field

Post by jman »

Code: Select all

<!-- Battle Field (Japan) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@e452 = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mb@e452 = 66</action>
        </script>
    </cheat>

    <cheat desc="auto fire - main shot">
        <script state="on">
            <action>maincpu.mb@132fd = 00</action> <!-- power-up -->
            <action>maincpu.mb@13305 = 00</action> <!-- normal -->
        </script>
        <script state="off">
            <action>maincpu.mb@132fd = 06</action>
            <action>maincpu.mb@13305 = 20</action>
        </script>
    </cheat>

    <cheat desc="auto fire - sub weapon">
        <script state="on">
            <action>maincpu.mb@13411 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@13411 = 20</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x000c">01 (slow)</item>
            <item value="0x0018">02       </item>
            <item value="0x0030">03       </item>
            <item value="0x0048">04       </item>
            <item value="0x0060">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mw@e31a = 143c</action>
        </script>
        <script state="change">
            <action>maincpu.mw@e31c = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@e31a = 142c000e</action>
        </script>
    </cheat>

    <cheat desc="sub weapon">
        <parameter>
            <item value="0x0000">none     </item>
            <item value="0x0001">beam 1   </item>
            <item value="0x0002">5-way 1  </item>
            <item value="0x0003">missile 1</item>
            <item value="0x0005">beam 2   </item>
            <item value="0x0006">5-way 2  </item>
            <item value="0x0007">missile 2</item>
            <item value="0x0009">beam 3   </item>
            <item value="0x000a">5-way 3  </item>
            <item value="0x000b">missile 3</item>
        </parameter>
        <script state="on">
            <action>maincpu.mw@133e2 =     600e</action> <!-- check sub weapon and ammo -->
            <action>maincpu.mw@13426 =     103c</action>
            <action>maincpu.md@1347c = 60000006</action> <!-- beam 1 -->
            <action>maincpu.md@1365c = 60000006</action> <!-- 5-way 1 -->
            <action>maincpu.md@13ab8 = 60000006</action> <!-- missile 1 -->
            <action>maincpu.md@1352c = 60000006</action> <!-- beam 2 -->
            <action>maincpu.md@137d0 = 60000006</action> <!-- 5-way 2 -->
            <action>maincpu.md@13b30 = 60000006</action> <!-- missile 2 -->
            <action>maincpu.md@135ac = 60000006</action> <!-- beam 3 -->
            <action>maincpu.md@13944 = 60000006</action> <!-- 5-way 3 -->
            <action>maincpu.md@13ba8 = 60000006</action> <!-- missile 3 -->
        </script>
        <script state="change">
            <action>maincpu.mw@13428 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@133e2 =     4a2c</action>
            <action>maincpu.md@13426 = 102c001c</action>
            <action>maincpu.md@1347c = 6500079a</action>
            <action>maincpu.md@1365c = 650005ba</action>
            <action>maincpu.md@13ab8 = 6500015e</action>
            <action>maincpu.md@1352c = 650006ea</action>
            <action>maincpu.md@137d0 = 65000446</action>
            <action>maincpu.md@13b30 = 650000e6</action>
            <action>maincpu.md@135ac = 6500066a</action>
            <action>maincpu.md@13944 = 650002d2</action>
            <action>maincpu.md@13ba8 = 6500006e</action>
        </script>
    </cheat>

    <cheat desc="joystick hack">
        <script state="on">
            <action>maincpu.mq@0e272 = 4eb90003b3204e71</action> <!-- P1 -->
            <action>maincpu.mq@0e284 = 4eb90003b3264e71</action> <!-- P2 -->
            <action>maincpu.mq@3b320 = 102e010c6004102e</action>
            <action>maincpu.mq@3b328 = 010d0240000f670a</action>
            <action>maincpu.mq@3b330 = 123b000e1941001d</action>
            <action>maincpu.mq@3b338 = 4e75122c001d4e75</action>
            <action>maincpu.mq@3b340 = ff0006ff090a07ff</action>
            <action>maincpu.mq@3b348 = 030104ffffffffff</action>
            <!--
            3b320 | 102e 010c : move.b ($10c,A6),D0    // P1
            3b324 | 6004      : bra    $3b32a
            3b326 | 102e 010d : move.b ($10d,A6),D0    // P2
            3b32a | 0240 000f : andi.w #$f,D0
            3b32e | 670a      : beq    $3b33a
            3b330 | 123b 000e : move.b ($e,PC,D0.w),D1
            3b334 | 1941 001d : move.b D1,($1d,A4)
            3b338 | 4e75      : rts
            3b33a | 122c 001d : move.b ($1d,A4),D1
            3b33e | 4e75      : rts
            3b340 - 3b34a     : input/direction conversion table
                input  direction
                  01     00   : up
                  02     06   : down
                  03     ff   : (none)
                  04     09   : left
                  05     0a   : upper-left
                  06     07   : lower-left
                  07     ff   : (none)
                  08     03   : right
                  09     01   : upper-right
                  0a     04   : lower-right
            -->
        </script>
        <script state="off">
            <action>maincpu.mq@0e272 = 102e010c122e0016</action>
            <action>maincpu.mq@0e284 = 102e010d122e0017</action>
            <action>maincpu.mq@3b320 = ffffffffffffffff</action>
            <action>maincpu.mq@3b328 = ffffffffffffffff</action>
            <action>maincpu.mq@3b330 = ffffffffffffffff</action>
            <action>maincpu.mq@3b338 = ffffffffffffffff</action>
            <action>maincpu.mq@3b340 = ffffffffffffffff</action>
            <action>maincpu.mq@3b348 = ffffffffffffffff</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mq@09f10 = 4ef90003b3504e71</action>
            <action>maincpu.mq@3b350 = 41f90004010043f9</action>
            <action>maincpu.mq@3b358 = 0008000112001011</action>
            <action>maincpu.mq@3b360 = b20067f80c000004</action>
            <action>maincpu.mq@3b368 = 660253100c000008</action>
            <action>maincpu.mq@3b370 = 660252100c000002</action>
            <action>maincpu.mq@3b378 = 6604041000100c00</action>
            <action>maincpu.mq@3b380 = 0001660406100010</action>
            <action>maincpu.mq@3b388 = 0c00001066021290</action>
            <action>maincpu.mq@3b390 = 0c000020660412bc</action>
            <action>maincpu.mq@3b398 = 000f60c0ffffffff</action>
            <!--
            3b350 | 41f9 0004 0100 : lea    $40100.l,A0 // sound code address
            3b356 | 43f9 0008 0001 : lea    $80001.l,A1 // sound latch address
            3b35c | 1200           : move.b D0,D1
            3b35e | 1011           : move.b (A1),D0     // read input
            3b360 | b200           : cmp.b  D0,D1
            3b362 | 67f8           : beq    $3b35c
            3b364 | 0c00 0004      : cmpi.b #$4,D0
            3b368 | 6602           : bne    $3b36c
            3b36a | 5310           : subq.b #1,(A0)     // decrease code -01
            3b36c | 0c00 0008      : cmpi.b #$8,D0
            3b370 | 6602           : bne    $3b374
            3b372 | 5210           : addq.b #1,(A0)     // increase code +01
            3b374 | 0c00 0002      : cmpi.b #$2,D0
            3b378 | 6604           : bne    $3b37e
            3b37a | 0410 0010      : subi.b #$10,(A0)   // decrease code -10
            3b37e | 0c00 0001      : cmpi.b #$1,D0
            3b382 | 6604           : bne    $3b388
            3b384 | 0610 0010      : addi.b #$10,(A0)   // increase code +10
            3b388 | 0c00 0010      : cmpi.b #$10,D0
            3b38c | 6602           : bne    $3b390
            3b38e | 1290           : move.b (A0),(A1)   // play sound
            3b390 | 0c00 0020      : cmpi.b #$20,D0
            3b394 | 6604           : bne    $3b39a
            3b396 | 12bc 000f      : move.b #$f,(A1)    // stop sound
            3b39a | 60c0           : bra    $3b35c
            -->
        </script>
        <script state="run">
            <output format="----- battle field 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 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@40100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@09f10 = 3e3c0100426e0006</action>
            <action>maincpu.mq@3b350 = ffffffffffffffff</action>
            <action>maincpu.mq@3b358 = ffffffffffffffff</action>
            <action>maincpu.mq@3b360 = ffffffffffffffff</action>
            <action>maincpu.mq@3b368 = ffffffffffffffff</action>
            <action>maincpu.mq@3b370 = ffffffffffffffff</action>
            <action>maincpu.mq@3b378 = ffffffffffffffff</action>
            <action>maincpu.mq@3b380 = ffffffffffffffff</action>
            <action>maincpu.mq@3b388 = ffffffffffffffff</action>
            <action>maincpu.mq@3b390 = ffffffffffffffff</action>
            <action>maincpu.mq@3b398 = ffffffffffffffff</action>
        </script>
    </cheat>

    <cheat desc="skip rom check">
        <script state="on">
            <action>maincpu.md@903a = 600000c0</action> <!-- rom check -->
            <action>maincpu.mw@9242 =     601c</action> <!-- wait -->
            <action>maincpu.mw@96c4 =     4e71</action> <!-- wait -->
        </script>
        <script state="off">
            <action>maincpu.md@903a = 41f80080</action>
            <action>maincpu.mw@9242 =     3c3c</action>
            <action>maincpu.mw@96c4 =     4e40</action>
        </script>
    </cheat>
jman
Posts: 870
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 1 time

[timesold]+ Time Soldiers/Battle Field

Post by jman »

timesold.xml

Code: Select all

<!-- Time Soldiers (US Rev 3) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@E640 = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mb@E640 = 66</action>
        </script>
    </cheat>

    <cheat desc="auto fire - main shot">
        <script state="on">
            <action>maincpu.mb@134F3 = 00</action> <!-- power-up -->
            <action>maincpu.mb@134FB = 00</action> <!-- normal -->
        </script>
        <script state="off">
            <action>maincpu.mb@134F3 = 06</action>
            <action>maincpu.mb@134FB = 20</action>
        </script>
    </cheat>

    <cheat desc="auto fire - sub weapon">
        <script state="on">
            <action>maincpu.mb@13607 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@13607 = 20</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x000c">01 (slow)</item>
            <item value="0x0018">02       </item>
            <item value="0x0030">03       </item>
            <item value="0x0048">04       </item>
            <item value="0x0060">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mw@E508 = 143C</action>
        </script>
        <script state="change">
            <action>maincpu.mw@E50A = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@E508 = 142C000E</action>
        </script>
    </cheat>

    <cheat desc="sub weapon">
        <parameter>
            <item value="0x0000">none     </item>
            <item value="0x0001">beam 1   </item>
            <item value="0x0002">5-way 1  </item>
            <item value="0x0003">missile 1</item>
            <item value="0x0005">beam 2   </item>
            <item value="0x0006">5-way 2  </item>
            <item value="0x0007">missile 2</item>
            <item value="0x0009">beam 3   </item>
            <item value="0x000a">5-way 3  </item>
            <item value="0x000b">missile 3</item>
        </parameter>
        <script state="on">
            <action>maincpu.mw@135D8 = 600E    </action> <!-- check sub weapon and ammo -->
            <action>maincpu.mw@1361C = 103C    </action>
            <action>maincpu.md@13672 = 60000006</action> <!-- beam 1 -->
            <action>maincpu.md@13852 = 60000006</action> <!-- 5-way 1 -->
            <action>maincpu.md@13CAE = 60000006</action> <!-- missile 1 -->
            <action>maincpu.md@13722 = 60000006</action> <!-- beam 2 -->
            <action>maincpu.md@139C6 = 60000006</action> <!-- 5-way 2 -->
            <action>maincpu.md@13D26 = 60000006</action> <!-- missile 2 -->
            <action>maincpu.md@137A2 = 60000006</action> <!-- beam 3 -->
            <action>maincpu.md@13B3A = 60000006</action> <!-- 5-way 3 -->
            <action>maincpu.md@13D9E = 60000006</action> <!-- missile 3 -->
        </script>
        <script state="change">
            <action>maincpu.mw@1361E = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@135D8 = 4A2C    </action>
            <action>maincpu.md@1361C = 102C001C</action>
            <action>maincpu.md@13672 = 6500079A</action>
            <action>maincpu.md@13852 = 650005BA</action>
            <action>maincpu.md@13CAE = 6500015E</action>
            <action>maincpu.md@13722 = 650006EA</action>
            <action>maincpu.md@139C6 = 65000446</action>
            <action>maincpu.md@13D26 = 650000E6</action>
            <action>maincpu.md@137A2 = 6500066A</action>
            <action>maincpu.md@13B3A = 650002D2</action>
            <action>maincpu.md@13D9E = 6500006E</action>
        </script>
    </cheat>

    <cheat desc="joystick hack">
        <script state="on">
            <action>maincpu.mq@0E460 = 4EB90003B3204E71</action> <!-- P1 -->
            <action>maincpu.mq@0E472 = 4EB90003B3264E71</action> <!-- P2 -->
            <action>maincpu.mq@3B320 = 102E010C6004102E</action>
            <action>maincpu.mq@3B328 = 010D0240000F670A</action>
            <action>maincpu.mq@3B330 = 123B000E1941001D</action>
            <action>maincpu.mq@3B338 = 4E75122C001D4E75</action>
            <action>maincpu.mq@3B340 = FF0006FF090A07FF</action>
            <action>maincpu.mq@3B348 = 030104FFFFFFFFFF</action>
            <!--
            3B320 | 102E 010C : move.b  ($10c,A6), D0    // P1
            3B324 | 6004      : bra     $3b32a
            3B326 | 102E 010D : move.b  ($10d,A6), D0    // P2
            3B32A | 0240 000F : andi.w  #$f, D0
            3B32E | 670A      : beq     $3b33a
            3B330 | 123B 000E : move.b  ($e,PC,D0.w), D1 // read table
            3B334 | 1941 001D : move.b  D1, ($1d,A4)
            3B338 | 4E75      : rts
            3B33A | 122C 001D : move.b  ($1d,A4), D1
            3B33E | 4E75      : rts
            3B340 - 3B34A     : input/direction conversion table
                input  direction
                  01     00   : up
                  02     06   : down
                  03     ff   : (none)
                  04     09   : left
                  05     0a   : upper-left
                  06     07   : lower-left
                  07     ff   : (none)
                  08     03   : right
                  09     01   : upper-right
                  0a     04   : lower-right
            -->
        </script>
        <script state="off">
            <action>maincpu.mq@0E460 = 102E010C122E0016</action>
            <action>maincpu.mq@0E472 = 102E010D122E0017</action>
            <action>maincpu.mq@3B320 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B328 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B330 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B338 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B340 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B348 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <!-- you can't stop samples (0x61 or later) by sound stop button -->
        <comment>set &quot;skip rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mq@09FAA = 4EF90003B3504E71</action>
            <action>maincpu.mq@3B350 = 41F90004010043F9</action>
            <action>maincpu.mq@3B358 = 0008000112001011</action>
            <action>maincpu.mq@3B360 = B20067F80C0000FB</action>
            <action>maincpu.mq@3B368 = 660253100C0000F7</action>
            <action>maincpu.mq@3B370 = 660252100C0000FD</action>
            <action>maincpu.mq@3B378 = 6604041000100C00</action>
            <action>maincpu.mq@3B380 = 00FE660406100010</action>
            <action>maincpu.mq@3B388 = 0C0000EF66021290</action>
            <action>maincpu.mq@3B390 = 0C0000DF660412BC</action>
            <action>maincpu.mq@3B398 = 000F60C0FFFFFFFF</action>
            <!--
            3B350 | 41F9 0004 0100 : lea     $40100.l, A0 // sound code address
            3B356 | 43F9 0008 0001 : lea     $80001.l, A1 // sound latch address
            3B35C | 1200           : move.b  D0, D1
            3B35E | 1011           : move.b  (A1), D0
            3B360 | B200           : cmp.b   D0, D1
            3B362 | 67F8           : beq     $3b35c
            3B364 | 0C00 00FB      : cmpi.b  #-$5, D0
            3B368 | 6602           : bne     $3b36c
            3B36A | 5310           : subq.b  #1, (A0)     // decrease code -01
            3B36C | 0C00 00F7      : cmpi.b  #-$9, D0
            3B370 | 6602           : bne     $3b374
            3B372 | 5210           : addq.b  #1, (A0)     // increase code +01
            3B374 | 0C00 00FD      : cmpi.b  #-$3, D0
            3B378 | 6604           : bne     $3b37e
            3B37A | 0410 0010      : subi.b  #$10, (A0)   // decrease code -10
            3B37E | 0C00 00FE      : cmpi.b  #-$2, D0
            3B382 | 6604           : bne     $3b388
            3B384 | 0610 0010      : addi.b  #$10, (A0)   // increase code +10
            3B388 | 0C00 00EF      : cmpi.b  #-$11, D0
            3B38C | 6602           : bne     $3b390
            3B38E | 1290           : move.b  (A0), (A1)   // play sound
            3B390 | 0C00 00DF      : cmpi.b  #-$21, D0
            3B394 | 6604           : bne     $3b39a
            3B396 | 12BC 000F      : move.b  #$f, (A1)    // stop sound
            3B39A | 60C0           : bra     $3b35c
            -->
        </script>
        <script state="run">
            <output format="----- time soldiers 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 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 %02X &gt;&gt;"         line="19" align="center"  >
                <argument>maincpu.pb@40100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@09FAA = 3E3C0100426E0006</action>
            <action>maincpu.mq@3B350 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B358 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B360 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B368 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B370 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B378 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B380 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B388 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B390 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B398 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip rom check">
        <script state="on">
            <action>maincpu.md@903A = 600000C0</action> <!-- rom check -->
            <action>maincpu.mw@9242 = 601C    </action> <!-- wait -->
            <action>maincpu.mw@9726 = 4E71    </action> <!-- wait -->
        </script>
        <script state="off">
            <action>maincpu.md@903A = 41F80080</action>
            <action>maincpu.mw@9242 = 3C3C    </action>
            <action>maincpu.mw@9726 = 4E40    </action>
        </script>
    </cheat>

</mamecheat>
timesold1.xml

Code: Select all

<!-- Time Soldiers (US Rev 1) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@E45E = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mb@E45E = 66</action>
        </script>
    </cheat>

    <cheat desc="auto fire - main shot">
        <script state="on">
            <action>maincpu.mb@13309 = 00</action> <!-- power-up -->
            <action>maincpu.mb@13311 = 00</action> <!-- normal -->
        </script>
        <script state="off">
            <action>maincpu.mb@13309 = 06</action>
            <action>maincpu.mb@13311 = 20</action>
        </script>
    </cheat>

    <cheat desc="auto fire - sub weapon">
        <script state="on">
            <action>maincpu.mb@1341D = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@1341D = 20</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x000c">01 (slow)</item>
            <item value="0x0018">02       </item>
            <item value="0x0030">03       </item>
            <item value="0x0048">04       </item>
            <item value="0x0060">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mw@E326 = 143C</action>
        </script>
        <script state="change">
            <action>maincpu.mw@E328 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@E326 = 142C000E</action>
        </script>
    </cheat>

    <cheat desc="sub weapon">
        <parameter>
            <item value="0x0000">none     </item>
            <item value="0x0001">beam 1   </item>
            <item value="0x0002">5-way 1  </item>
            <item value="0x0003">missile 1</item>
            <item value="0x0005">beam 2   </item>
            <item value="0x0006">5-way 2  </item>
            <item value="0x0007">missile 2</item>
            <item value="0x0009">beam 3   </item>
            <item value="0x000a">5-way 3  </item>
            <item value="0x000b">missile 3</item>
        </parameter>
        <script state="on">
            <action>maincpu.mw@133EE = 600E    </action> <!-- check sub weapon and ammo -->
            <action>maincpu.mw@13432 = 103C    </action>
            <action>maincpu.md@13488 = 60000006</action> <!-- beam 1 -->
            <action>maincpu.md@13668 = 60000006</action> <!-- 5-way 1 -->
            <action>maincpu.md@13AC4 = 60000006</action> <!-- missile 1 -->
            <action>maincpu.md@13538 = 60000006</action> <!-- beam 2 -->
            <action>maincpu.md@137DC = 60000006</action> <!-- 5-way 2 -->
            <action>maincpu.md@13B3C = 60000006</action> <!-- missile 2 -->
            <action>maincpu.md@135B8 = 60000006</action> <!-- beam 3 -->
            <action>maincpu.md@13950 = 60000006</action> <!-- 5-way 3 -->
            <action>maincpu.md@13BB4 = 60000006</action> <!-- missile 3 -->
        </script>
        <script state="change">
            <action>maincpu.mw@13434 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@133EE = 4A2C    </action>
            <action>maincpu.md@13432 = 102C001C</action>
            <action>maincpu.md@13488 = 6500079A</action>
            <action>maincpu.md@13668 = 650005BA</action>
            <action>maincpu.md@13AC4 = 6500015E</action>
            <action>maincpu.md@13538 = 650006EA</action>
            <action>maincpu.md@137DC = 65000446</action>
            <action>maincpu.md@13B3C = 650000E6</action>
            <action>maincpu.md@135B8 = 6500066A</action>
            <action>maincpu.md@13950 = 650002D2</action>
            <action>maincpu.md@13BB4 = 6500006E</action>
        </script>
    </cheat>

    <cheat desc="joystick hack">
        <script state="on">
            <action>maincpu.mq@0E27E = 4EB90003B3204E71</action> <!-- P1 -->
            <action>maincpu.mq@0E290 = 4EB90003B3264E71</action> <!-- P2 -->
            <action>maincpu.mq@3B320 = 102E010C6004102E</action>
            <action>maincpu.mq@3B328 = 010D0240000F670A</action>
            <action>maincpu.mq@3B330 = 123B000E1941001D</action>
            <action>maincpu.mq@3B338 = 4E75122C001D4E75</action>
            <action>maincpu.mq@3B340 = FF0006FF090A07FF</action>
            <action>maincpu.mq@3B348 = 030104FFFFFFFFFF</action>
            <!--
            3B320 | 102E 010C : move.b  ($10c,A6), D0    // P1
            3B324 | 6004      : bra     $3b32a
            3B326 | 102E 010D : move.b  ($10d,A6), D0    // P2
            3B32A | 0240 000F : andi.w  #$f, D0
            3B32E | 670A      : beq     $3b33a
            3B330 | 123B 000E : move.b  ($e,PC,D0.w), D1 // read table
            3B334 | 1941 001D : move.b  D1, ($1d,A4)
            3B338 | 4E75      : rts
            3B33A | 122C 001D : move.b  ($1d,A4), D1
            3B33E | 4E75      : rts
            3B340 - 3B34A     : input/direction conversion table
                input  direction
                  01     00   : up
                  02     06   : down
                  03     ff   : (none)
                  04     09   : left
                  05     0a   : upper-left
                  06     07   : lower-left
                  07     ff   : (none)
                  08     03   : right
                  09     01   : upper-right
                  0a     04   : lower-right
            -->
        </script>
        <script state="off">
            <action>maincpu.mq@0E27E = 102E010C122E0016</action>
            <action>maincpu.mq@0E290 = 102E010D122E0017</action>
            <action>maincpu.mq@3B320 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B328 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B330 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B338 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B340 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B348 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <!-- you can't stop samples (0x61 or later) by sound stop button -->
        <comment>set &quot;skip rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mq@09F14 = 4EF90003B3504E71</action>
            <action>maincpu.mq@3B350 = 41F90004010043F9</action>
            <action>maincpu.mq@3B358 = 0008000112001011</action>
            <action>maincpu.mq@3B360 = B20067F80C000004</action>
            <action>maincpu.mq@3B368 = 660253100C000008</action>
            <action>maincpu.mq@3B370 = 660252100C000002</action>
            <action>maincpu.mq@3B378 = 6604041000100C00</action>
            <action>maincpu.mq@3B380 = 0001660406100010</action>
            <action>maincpu.mq@3B388 = 0C00001066021290</action>
            <action>maincpu.mq@3B390 = 0C000020660412BC</action>
            <action>maincpu.mq@3B398 = 000F60C0FFFFFFFF</action>
            <!--
            3B350 | 41F9 0004 0100 : lea     $40100.l, A0 // sound code address
            3B356 | 43F9 0008 0001 : lea     $80001.l, A1 // sound latch address
            3B35C | 1200           : move.b  D0, D1
            3B35E | 1011           : move.b  (A1), D0
            3B360 | B200           : cmp.b   D0, D1
            3B362 | 67F8           : beq     $3b35c
            3B364 | 0C00 0004      : cmpi.b  #$4, D0
            3B368 | 6602           : bne     $3b36c
            3B36A | 5310           : subq.b  #1, (A0)     // decrease code -01
            3B36C | 0C00 0008      : cmpi.b  #$8, D0
            3B370 | 6602           : bne     $3b374
            3B372 | 5210           : addq.b  #1, (A0)     // increase code +01
            3B374 | 0C00 0002      : cmpi.b  #$2, D0
            3B378 | 6604           : bne     $3b37e
            3B37A | 0410 0010      : subi.b  #$10, (A0)   // decrease code -10
            3B37E | 0C00 0001      : cmpi.b  #$1, D0
            3B382 | 6604           : bne     $3b388
            3B384 | 0610 0010      : addi.b  #$10, (A0)   // increase code +10
            3B388 | 0C00 0010      : cmpi.b  #$10, D0
            3B38C | 6602           : bne     $3b390
            3B38E | 1290           : move.b  (A0), (A1)   // play sound
            3B390 | 0C00 0020      : cmpi.b  #$20, D0
            3B394 | 6604           : bne     $3b39a
            3B396 | 12BC 000F      : move.b  #$f, (A1)    // stop sound
            3B39A | 60C0           : bra     $3b35c
            -->
        </script>
        <script state="run">
            <output format="----- time soldiers 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 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 %02X &gt;&gt;"         line="19" align="center"  >
                <argument>maincpu.pb@40100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@09F14 = 3E3C0100426E0006</action>
            <action>maincpu.mq@3B350 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B358 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B360 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B368 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B370 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B378 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B380 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B388 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B390 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B398 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip rom check">
        <script state="on">
            <action>maincpu.md@903A = 600000C0</action> <!-- rom check -->
            <action>maincpu.mw@9242 = 601C    </action> <!-- wait -->
            <action>maincpu.mw@96C4 = 4E71    </action> <!-- wait -->
        </script>
        <script state="off">
            <action>maincpu.md@903A = 41F80080</action>
            <action>maincpu.mw@9242 = 3C3C    </action>
            <action>maincpu.mw@96C4 = 4E40    </action>
        </script>
    </cheat>

</mamecheat>
btlfield.xml

Code: Select all

<!-- Battle Field (Japan) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@E452 = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mb@E452 = 66</action>
        </script>
    </cheat>

    <cheat desc="auto fire - main shot">
        <script state="on">
            <action>maincpu.mb@132FD = 00</action> <!-- power-up -->
            <action>maincpu.mb@13305 = 00</action> <!-- normal -->
        </script>
        <script state="off">
            <action>maincpu.mb@132FD = 06</action>
            <action>maincpu.mb@13305 = 20</action>
        </script>
    </cheat>

    <cheat desc="auto fire - sub weapon">
        <script state="on">
            <action>maincpu.mb@13411 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@13411 = 20</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x000c">01 (slow)</item>
            <item value="0x0018">02       </item>
            <item value="0x0030">03       </item>
            <item value="0x0048">04       </item>
            <item value="0x0060">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mw@E31A = 143C</action>
        </script>
        <script state="change">
            <action>maincpu.mw@E31C = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@E31A = 142C000E</action>
        </script>
    </cheat>

    <cheat desc="sub weapon">
        <parameter>
            <item value="0x0000">none     </item>
            <item value="0x0001">beam 1   </item>
            <item value="0x0002">5-way 1  </item>
            <item value="0x0003">missile 1</item>
            <item value="0x0005">beam 2   </item>
            <item value="0x0006">5-way 2  </item>
            <item value="0x0007">missile 2</item>
            <item value="0x0009">beam 3   </item>
            <item value="0x000a">5-way 3  </item>
            <item value="0x000b">missile 3</item>
        </parameter>
        <script state="on">
            <action>maincpu.mw@133E2 = 600E    </action> <!-- check sub weapon and ammo -->
            <action>maincpu.mw@13426 = 103C    </action>
            <action>maincpu.md@1347C = 60000006</action> <!-- beam 1 -->
            <action>maincpu.md@1365C = 60000006</action> <!-- 5-way 1 -->
            <action>maincpu.md@13AB8 = 60000006</action> <!-- missile 1 -->
            <action>maincpu.md@1352C = 60000006</action> <!-- beam 2 -->
            <action>maincpu.md@137D0 = 60000006</action> <!-- 5-way 2 -->
            <action>maincpu.md@13B30 = 60000006</action> <!-- missile 2 -->
            <action>maincpu.md@135AC = 60000006</action> <!-- beam 3 -->
            <action>maincpu.md@13944 = 60000006</action> <!-- 5-way 3 -->
            <action>maincpu.md@13BA8 = 60000006</action> <!-- missile 3 -->
        </script>
        <script state="change">
            <action>maincpu.mw@13428 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@133E2 = 4A2C    </action>
            <action>maincpu.md@13426 = 102C001C</action>
            <action>maincpu.md@1347C = 6500079A</action>
            <action>maincpu.md@1365C = 650005BA</action>
            <action>maincpu.md@13AB8 = 6500015E</action>
            <action>maincpu.md@1352C = 650006EA</action>
            <action>maincpu.md@137D0 = 65000446</action>
            <action>maincpu.md@13B30 = 650000E6</action>
            <action>maincpu.md@135AC = 6500066A</action>
            <action>maincpu.md@13944 = 650002D2</action>
            <action>maincpu.md@13BA8 = 6500006E</action>
        </script>
    </cheat>

    <cheat desc="joystick hack">
        <script state="on">
            <action>maincpu.mq@0E272 = 4EB90003B3204E71</action> <!-- P1 -->
            <action>maincpu.mq@0E284 = 4EB90003B3264E71</action> <!-- P2 -->
            <action>maincpu.mq@3B320 = 102E010C6004102E</action>
            <action>maincpu.mq@3B328 = 010D0240000F670A</action>
            <action>maincpu.mq@3B330 = 123B000E1941001D</action>
            <action>maincpu.mq@3B338 = 4E75122C001D4E75</action>
            <action>maincpu.mq@3B340 = FF0006FF090A07FF</action>
            <action>maincpu.mq@3B348 = 030104FFFFFFFFFF</action>
            <!--
            3B320 | 102E 010C : move.b  ($10c,A6), D0    // P1
            3B324 | 6004      : bra     $3b32a
            3B326 | 102E 010D : move.b  ($10d,A6), D0    // P2
            3B32A | 0240 000F : andi.w  #$f, D0
            3B32E | 670A      : beq     $3b33a
            3B330 | 123B 000E : move.b  ($e,PC,D0.w), D1 // read table
            3B334 | 1941 001D : move.b  D1, ($1d,A4)
            3B338 | 4E75      : rts
            3B33A | 122C 001D : move.b  ($1d,A4), D1
            3B33E | 4E75      : rts
            3B340 - 3B34A     : input/direction conversion table
                input  direction
                  01     00   : up
                  02     06   : down
                  03     ff   : (none)
                  04     09   : left
                  05     0a   : upper-left
                  06     07   : lower-left
                  07     ff   : (none)
                  08     03   : right
                  09     01   : upper-right
                  0a     04   : lower-right
            -->
        </script>
        <script state="off">
            <action>maincpu.mq@0E272 = 102E010C122E0016</action>
            <action>maincpu.mq@0E284 = 102E010D122E0017</action>
            <action>maincpu.mq@3B320 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B328 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B330 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B338 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B340 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B348 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <!-- you can't stop samples (0x61 or later) by sound stop button -->
        <comment>set &quot;skip rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mq@09F10 = 4EF90003B3504E71</action>
            <action>maincpu.mq@3B350 = 41F90004010043F9</action>
            <action>maincpu.mq@3B358 = 0008000112001011</action>
            <action>maincpu.mq@3B360 = B20067F80C000004</action>
            <action>maincpu.mq@3B368 = 660253100C000008</action>
            <action>maincpu.mq@3B370 = 660252100C000002</action>
            <action>maincpu.mq@3B378 = 6604041000100C00</action>
            <action>maincpu.mq@3B380 = 0001660406100010</action>
            <action>maincpu.mq@3B388 = 0C00001066021290</action>
            <action>maincpu.mq@3B390 = 0C000020660412BC</action>
            <action>maincpu.mq@3B398 = 000F60C0FFFFFFFF</action>
            <!--
            3B350 | 41F9 0004 0100 : lea     $40100.l, A0 // sound code address
            3B356 | 43F9 0008 0001 : lea     $80001.l, A1 // sound latch address
            3B35C | 1200           : move.b  D0, D1
            3B35E | 1011           : move.b  (A1), D0
            3B360 | B200           : cmp.b   D0, D1
            3B362 | 67F8           : beq     $3b35c
            3B364 | 0C00 0004      : cmpi.b  #$4, D0
            3B368 | 6602           : bne     $3b36c
            3B36A | 5310           : subq.b  #1, (A0)     // decrease code -01
            3B36C | 0C00 0008      : cmpi.b  #$8, D0
            3B370 | 6602           : bne     $3b374
            3B372 | 5210           : addq.b  #1, (A0)     // increase code +01
            3B374 | 0C00 0002      : cmpi.b  #$2, D0
            3B378 | 6604           : bne     $3b37e
            3B37A | 0410 0010      : subi.b  #$10, (A0)   // decrease code -10
            3B37E | 0C00 0001      : cmpi.b  #$1, D0
            3B382 | 6604           : bne     $3b388
            3B384 | 0610 0010      : addi.b  #$10, (A0)   // increase code +10
            3B388 | 0C00 0010      : cmpi.b  #$10, D0
            3B38C | 6602           : bne     $3b390
            3B38E | 1290           : move.b  (A0), (A1)   // play sound
            3B390 | 0C00 0020      : cmpi.b  #$20, D0
            3B394 | 6604           : bne     $3b39a
            3B396 | 12BC 000F      : move.b  #$f, (A1)    // stop sound
            3B39A | 60C0           : bra     $3b35c
            -->
        </script>
        <script state="run">
            <output format="----- battle field 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 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 %02X &gt;&gt;"        line="19" align="center"  >
                <argument>maincpu.pb@40100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@09F10 = 3E3C0100426E0006</action>
            <action>maincpu.mq@3B350 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B358 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B360 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B368 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B370 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B378 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B380 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B388 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B390 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B398 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip rom check">
        <script state="on">
            <action>maincpu.md@903A = 600000C0</action> <!-- rom check -->
            <action>maincpu.mw@9242 = 601C    </action> <!-- wait -->
            <action>maincpu.mw@96C4 = 4E71    </action> <!-- wait -->
        </script>
        <script state="off">
            <action>maincpu.md@903A = 41F80080</action>
            <action>maincpu.mw@9242 = 3C3C    </action>
            <action>maincpu.mw@96C4 = 4E40    </action>
        </script>
    </cheat>

</mamecheat>
btlfieldb.xml

Code: Select all

<!-- Battle Field (bootleg) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@E452 = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mb@E452 = 66</action>
        </script>
    </cheat>

    <cheat desc="auto fire - main shot">
        <script state="on">
            <action>maincpu.mb@132FD = 00</action> <!-- power-up -->
            <action>maincpu.mb@13305 = 00</action> <!-- normal -->
        </script>
        <script state="off">
            <action>maincpu.mb@132FD = 06</action>
            <action>maincpu.mb@13305 = 20</action>
        </script>
    </cheat>

    <cheat desc="auto fire - sub weapon">
        <script state="on">
            <action>maincpu.mb@13411 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@13411 = 20</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x000c">01 (slow)</item>
            <item value="0x0018">02       </item>
            <item value="0x0030">03       </item>
            <item value="0x0048">04       </item>
            <item value="0x0060">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mw@E31A = 143C</action>
        </script>
        <script state="change">
            <action>maincpu.mw@E31C = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@E31A = 142C000E</action>
        </script>
    </cheat>

    <cheat desc="sub weapon">
        <parameter>
            <item value="0x0000">none     </item>
            <item value="0x0001">beam 1   </item>
            <item value="0x0002">5-way 1  </item>
            <item value="0x0003">missile 1</item>
            <item value="0x0005">beam 2   </item>
            <item value="0x0006">5-way 2  </item>
            <item value="0x0007">missile 2</item>
            <item value="0x0009">beam 3   </item>
            <item value="0x000a">5-way 3  </item>
            <item value="0x000b">missile 3</item>
        </parameter>
        <script state="on">
            <action>maincpu.mw@133E2 = 600E    </action> <!-- check sub weapon and ammo -->
            <action>maincpu.mw@13426 = 103C    </action>
            <action>maincpu.md@1347C = 60000006</action> <!-- beam 1 -->
            <action>maincpu.md@1365C = 60000006</action> <!-- 5-way 1 -->
            <action>maincpu.md@13AB8 = 60000006</action> <!-- missile 1 -->
            <action>maincpu.md@1352C = 60000006</action> <!-- beam 2 -->
            <action>maincpu.md@137D0 = 60000006</action> <!-- 5-way 2 -->
            <action>maincpu.md@13B30 = 60000006</action> <!-- missile 2 -->
            <action>maincpu.md@135AC = 60000006</action> <!-- beam 3 -->
            <action>maincpu.md@13944 = 60000006</action> <!-- 5-way 3 -->
            <action>maincpu.md@13BA8 = 60000006</action> <!-- missile 3 -->
        </script>
        <script state="change">
            <action>maincpu.mw@13428 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@133E2 = 4A2C    </action>
            <action>maincpu.md@13426 = 102C001C</action>
            <action>maincpu.md@1347C = 6500079A</action>
            <action>maincpu.md@1365C = 650005BA</action>
            <action>maincpu.md@13AB8 = 6500015E</action>
            <action>maincpu.md@1352C = 650006EA</action>
            <action>maincpu.md@137D0 = 65000446</action>
            <action>maincpu.md@13B30 = 650000E6</action>
            <action>maincpu.md@135AC = 6500066A</action>
            <action>maincpu.md@13944 = 650002D2</action>
            <action>maincpu.md@13BA8 = 6500006E</action>
        </script>
    </cheat>

    <cheat desc="joystick hack">
        <script state="on">
            <action>maincpu.mq@0E272 = 4EB90003B3204E71</action> <!-- P1 -->
            <action>maincpu.mq@0E284 = 4EB90003B3264E71</action> <!-- P2 -->
            <action>maincpu.mq@3B320 = 102E010C6004102E</action>
            <action>maincpu.mq@3B328 = 010D0240000F670A</action>
            <action>maincpu.mq@3B330 = 123B000E1941001D</action>
            <action>maincpu.mq@3B338 = 4E75122C001D4E75</action>
            <action>maincpu.mq@3B340 = FF0006FF090A07FF</action>
            <action>maincpu.mq@3B348 = 030104FFFFFFFFFF</action>
            <!--
            3B320 | 102E 010C : move.b  ($10c,A6), D0    // P1
            3B324 | 6004      : bra     $3b32a
            3B326 | 102E 010D : move.b  ($10d,A6), D0    // P2
            3B32A | 0240 000F : andi.w  #$f, D0
            3B32E | 670A      : beq     $3b33a
            3B330 | 123B 000E : move.b  ($e,PC,D0.w), D1 // read table
            3B334 | 1941 001D : move.b  D1, ($1d,A4)
            3B338 | 4E75      : rts
            3B33A | 122C 001D : move.b  ($1d,A4), D1
            3B33E | 4E75      : rts
            3B340 - 3B34A     : input/direction conversion table
                input  direction
                  01     00   : up
                  02     06   : down
                  03     ff   : (none)
                  04     09   : left
                  05     0a   : upper-left
                  06     07   : lower-left
                  07     ff   : (none)
                  08     03   : right
                  09     01   : upper-right
                  0a     04   : lower-right
            -->
        </script>
        <script state="off">
            <action>maincpu.mq@0E272 = 102E010C122E0016</action>
            <action>maincpu.mq@0E284 = 102E010D122E0017</action>
            <action>maincpu.mq@3B320 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B328 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B330 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B338 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B340 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B348 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <!-- you can't stop samples (0x61 or later) by sound stop button -->
        <comment>set &quot;skip rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mq@09F10 = 4EF90003B3504E71</action>
            <action>maincpu.mq@3B350 = 41F90004010043F9</action>
            <action>maincpu.mq@3B358 = 0008000112001011</action>
            <action>maincpu.mq@3B360 = B20067F80C000004</action>
            <action>maincpu.mq@3B368 = 660253100C000008</action>
            <action>maincpu.mq@3B370 = 660252100C000002</action>
            <action>maincpu.mq@3B378 = 6604041000100C00</action>
            <action>maincpu.mq@3B380 = 0001660406100010</action>
            <action>maincpu.mq@3B388 = 0C00001066021290</action>
            <action>maincpu.mq@3B390 = 0C000020660412BC</action>
            <action>maincpu.mq@3B398 = 000F60C0FFFFFFFF</action>
            <!--
            3B350 | 41F9 0004 0100 : lea     $40100.l, A0 // sound code address
            3B356 | 43F9 0008 0001 : lea     $80001.l, A1 // sound latch address
            3B35C | 1200           : move.b  D0, D1
            3B35E | 1011           : move.b  (A1), D0
            3B360 | B200           : cmp.b   D0, D1
            3B362 | 67F8           : beq     $3b35c
            3B364 | 0C00 0004      : cmpi.b  #$4, D0
            3B368 | 6602           : bne     $3b36c
            3B36A | 5310           : subq.b  #1, (A0)     // decrease code -01
            3B36C | 0C00 0008      : cmpi.b  #$8, D0
            3B370 | 6602           : bne     $3b374
            3B372 | 5210           : addq.b  #1, (A0)     // increase code +01
            3B374 | 0C00 0002      : cmpi.b  #$2, D0
            3B378 | 6604           : bne     $3b37e
            3B37A | 0410 0010      : subi.b  #$10, (A0)   // decrease code -10
            3B37E | 0C00 0001      : cmpi.b  #$1, D0
            3B382 | 6604           : bne     $3b388
            3B384 | 0610 0010      : addi.b  #$10, (A0)   // increase code +10
            3B388 | 0C00 0010      : cmpi.b  #$10, D0
            3B38C | 6602           : bne     $3b390
            3B38E | 1290           : move.b  (A0), (A1)   // play sound
            3B390 | 0C00 0020      : cmpi.b  #$20, D0
            3B394 | 6604           : bne     $3b39a
            3B396 | 12BC 000F      : move.b  #$f, (A1)    // stop sound
            3B39A | 60C0           : bra     $3b35c
            -->
        </script>
        <script state="run">
            <output format="----- battle field 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 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 %02X &gt;&gt;"        line="19" align="center"  >
                <argument>maincpu.pb@40100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@09F10 = 3E3C0100426E0006</action>
            <action>maincpu.mq@3B350 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B358 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B360 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B368 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B370 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B378 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B380 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B388 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B390 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B398 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip rom check">
        <script state="on">
            <action>maincpu.md@903A = 600000C0</action> <!-- rom check -->
            <action>maincpu.mw@9242 = 601C    </action> <!-- wait -->
            <action>maincpu.mw@96C4 = 4E71    </action> <!-- wait -->
        </script>
        <script state="off">
            <action>maincpu.md@903A = 41F80080</action>
            <action>maincpu.mw@9242 = 3C3C    </action>
            <action>maincpu.mw@96C4 = 4E40    </action>
        </script>
    </cheat>

</mamecheat>
Post Reply