[edf] E.D.F. : Earth Defense Force

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

[edf] E.D.F. : Earth Defense Force

Post by jman »

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>maincpu.mb@0a4a3 = 62</action> <!-- bullet -->
        <action>maincpu.mb@0a4e7 = 1e</action> <!-- enemy -->
        <action>maincpu.mb@0a51d = e8</action> <!-- large enemy -->
        <action>maincpu.mb@0a553 = b2</action> <!-- boss -->
        <action>maincpu.mb@a0b02 = 60</action> <!-- background -->
    </script>
    <script state="off">
        <action>maincpu.mb@0a4a3 = 64</action>
        <action>maincpu.mb@0a4e7 = 20</action>
        <action>maincpu.mb@0a51d = ea</action>
        <action>maincpu.mb@0a553 = b4</action>
        <action>maincpu.mb@a0b02 = 67</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mb@d753 = 00</action>
    </script>
    <script state="off">
        <action>maincpu.mb@d753 = 04</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter>
        <item value="0x01">01 (slow)</item>
        <item value="0x02">02       </item>
        <item value="0x04">03       </item>
        <item value="0x06">04       </item>
        <item value="0x08">05 (fast)</item>
    </parameter>
    <script state="change">
        <action>maincpu.mb@c487 = param</action>
    </script>
    <script state="off">
        <action>maincpu.mb@c487 = 02</action>
    </script>
</cheat>

<cheat desc="bullet speed - main shot">
    <parameter>
        <item value="0x01">01 (slow)</item>
        <item value="0x08">02       </item>
        <item value="0x10">03       </item>
        <item value="0x18">04       </item>
        <item value="0x20">05 (fast)</item>
    </parameter>
    <script state="change">
        <action>maincpu.mb@d7dd = param</action>
    </script>
    <script state="off">
        <action>maincpu.mb@d7dd = 0a</action>
    </script>
</cheat>

<cheat desc="bullet speed - vulcan">
    <parameter>
        <item value="0x01">01 (slow)</item>
        <item value="0x08">02       </item>
        <item value="0x10">03       </item>
        <item value="0x18">04       </item>
        <item value="0x20">05 (fast)</item>
    </parameter>
    <script state="change">
        <action>maincpu.mb@dc0b = param</action>
        <action>maincpu.mb@dd1d = param</action>
        <action>maincpu.mb@de15 = param</action>
        <action>maincpu.mb@df09 = param</action>
    </script>
    <script state="off">
        <action>maincpu.mb@dc0b = 09</action>
        <action>maincpu.mb@dd1d = 09</action>
        <action>maincpu.mb@de15 = 09</action>
        <action>maincpu.mb@df09 = 09</action>
    </script>
</cheat>

<cheat desc="bullet speed - atomic">
    <parameter>
        <item value="0x01">01 (slow)</item>
        <item value="0x08">02       </item>
        <item value="0x10">03       </item>
        <item value="0x18">04       </item>
        <item value="0x20">05 (fast)</item>
    </parameter>
    <script state="change">
        <action>maincpu.mb@ea6b = param</action>
        <action>maincpu.mb@ec6f = param</action>
    </script>
    <script state="off">
        <action>maincpu.mb@ea6b = 08</action>
        <action>maincpu.mb@ec6f = 08</action>
    </script>
</cheat>

<cheat desc="bullet speed - homing">
    <parameter min="0x01" max="0x05" step="0x01" />
    <script state="on">
        <action>maincpu.mq@0f632 = 4eb9000bf7d04e71</action>
        <action>maincpu.mq@0f91a = 4eb9000bf7d04e71</action>
        <action>maincpu.mq@bf7d0 = 76004a4467066a02</action>
        <action>maincpu.mq@bf7d8 = 4443d843d86b000a</action>
        <action>maincpu.mq@bf7e0 = 76004a4567066a02</action>
        <action>maincpu.mq@bf7e8 = 4443da43da6b000c</action>
        <action>maincpu.mq@bf7f0 = 4e75ffffffffffff</action>
        <!--
        bf7d0 | 76xx      : moveq #$xx,D3
        bf7d2 | 4a44      : tst.w D4
        bf7d4 | 6706      : beq   $bf7dc
        bf7d6 | 6a02      : bpl   $bf7da
        bf7d8 | 4443      : neg.w D3
        bf7da | d843      : add.w D3,D4
        bf7dc | d86b 000a : add.w ($a,A3),D4
        bf7e0 | 76xx      : moveq #$xx,D3
        bf7e2 | 4a45      : tst.w D5
        bf7e4 | 6706      : beq   $bf7ec
        bf7e6 | 6a02      : bpl   $bf7ea
        bf7e8 | 4443      : neg.w D3
        bf7ea | da43      : add.w D3,D5
        bf7ec | da6b 000c : add.w ($c,A3),D5
        bf7f0 | 4e75      : rts
        -->
    </script>
    <script state="change">
        <action>maincpu.mb@bf7d1 = param</action>
        <action>maincpu.mb@bf7e1 = param</action>
    </script>
    <script state="off">
        <action>maincpu.mq@0f632 = d86b000ada6b000c</action>
        <action>maincpu.mq@0f91a = d86b000ada6b000c</action>
        <action>maincpu.mq@bf7d0 = ffffffffffffffff</action>
        <action>maincpu.mq@bf7d8 = ffffffffffffffff</action>
        <action>maincpu.mq@bf7e0 = ffffffffffffffff</action>
        <action>maincpu.mq@bf7e8 = ffffffffffffffff</action>
        <action>maincpu.mq@bf7f0 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="sound test mode (test)">
    <!-- many sfxs are endless playing -->
    <!-- incorrect sfx stop by stop button (code 0x11 etc) -->
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action>maincpu.md@00414 =         000bf800</action>
        <action>maincpu.mq@bf800 = 41f90006100043f9</action>
        <action>maincpu.mq@bf808 = 000443084eb85488</action>
        <action>maincpu.mq@bf810 = 1200103900066003</action>
        <action>maincpu.mq@bf818 = b20067f00c0000fd</action>
        <action>maincpu.mq@bf820 = 660253500c0000fe</action>
        <action>maincpu.mq@bf828 = 660252500c0000fb</action>
        <action>maincpu.mq@bf830 = 6604045000100c00</action>
        <action>maincpu.mq@bf838 = 00f7660406500010</action>
        <action>maincpu.mq@bf840 = 0c0000ef66023290</action>
        <action>maincpu.mq@bf848 = 0c0000df66024251</action>
        <action>maincpu.mq@bf850 = 60baffffffffffff</action>
        <!--
        bf800 | 41f9 0006 1000 : lea    $61000.l,A0 // sound code address
        bf806 | 43f9 0004 4308 : lea    $44308.l,A1 // sound latch address
        bf80c | 4eb8 5488      : jsr    $5488.w     // interpret input from mcu
        bf810 | 1200           : move.b D0,D1
        bf812 | 1039 0006 6003 : move.b $66003.l,D0 // read input
        bf818 | b200           : cmp.b  D0,D1
        bf81a | 67f0           : beq    $bf80c
        bf81c | 0c00 00fd      : cmpi.b #-$3,D0
        bf820 | 6602           : bne    $bf824
        bf822 | 5350           : subq.w #1,(A0)     // decrease code -01
        bf824 | 0c00 00fe      : cmpi.b #-$2,D0
        bf828 | 6602           : bne    $bf82c
        bf82a | 5250           : addq.w #1,(A0)     // increase code +01
        bf82c | 0c00 00fb      : cmpi.b #-$5,D0
        bf830 | 6604           : bne    $bf836
        bf832 | 0450 0010      : subi.w #$10,(A0)   // decrease code -10
        bf836 | 0c00 00f7      : cmpi.b #-$9,D0
        bf83a | 6604           : bne    $bf840
        bf83c | 0650 0010      : addi.w #$10,(A0)   // increase code +10
        bf840 | 0c00 00ef      : cmpi.b #-$11,D0
        bf844 | 6602           : bne    $bf848
        bf846 | 3290           : move.w (A0),(A1)   // play sound
        bf848 | 0c00 00df      : cmpi.b #-$21,D0
        bf84c | 6602           : bne    $bf850
        bf84e | 4251           : clr.w  (A1)        // stop sound
        bf850 | 60ba           : bra    $bf80c
        -->
    </script>
    <script state="run">
        <output format="----- e.d.f. 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 %4.4X &gt;&gt;" line="19" align="center"  >
            <argument>maincpu.pw@61000</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.md@00414 =         0000212a</action>
        <action>maincpu.mq@bf800 = ffffffffffffffff</action>
        <action>maincpu.mq@bf808 = ffffffffffffffff</action>
        <action>maincpu.mq@bf810 = ffffffffffffffff</action>
        <action>maincpu.mq@bf818 = ffffffffffffffff</action>
        <action>maincpu.mq@bf820 = ffffffffffffffff</action>
        <action>maincpu.mq@bf828 = ffffffffffffffff</action>
        <action>maincpu.mq@bf830 = ffffffffffffffff</action>
        <action>maincpu.mq@bf838 = ffffffffffffffff</action>
        <action>maincpu.mq@bf840 = ffffffffffffffff</action>
        <action>maincpu.mq@bf848 = ffffffffffffffff</action>
        <action>maincpu.mq@bf850 = ffffffffffffffff</action>
    </script>
</cheat>
jman
Posts: 874
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 3 times

[edf]+ E.D.F. : Earth Defense Force

Post by jman »

edf.xml

Code: Select all

<!-- E.D.F. : Earth Defense Force (set 1) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@0A4A3 = 62</action> <!-- P1 bullet -->
            <action>maincpu.mb@0A4E7 = 1E</action> <!-- P1 enemy -->
            <action>maincpu.mb@0A51D = E8</action> <!-- P1 large enemy -->
            <action>maincpu.mb@0A553 = B2</action> <!-- P1 boss -->
            <action>maincpu.mb@0A7E9 = 1C</action> <!-- P2 bullet -->
            <action>maincpu.mb@0A827 = DE</action> <!-- P2 enemy -->
            <action>maincpu.mb@0A85D = A8</action> <!-- P2 large enemy -->
            <action>maincpu.mb@0A893 = 72</action> <!-- P2 boss -->
            <action>maincpu.mb@A0B02 = 60</action> <!-- background -->
        </script>
        <script state="off">
            <action>maincpu.mb@0A4A3 = 64</action>
            <action>maincpu.mb@0A4E7 = 20</action>
            <action>maincpu.mb@0A51D = EA</action>
            <action>maincpu.mb@0A553 = B4</action>
            <action>maincpu.mb@0A7E9 = 1E</action>
            <action>maincpu.mb@0A827 = E0</action>
            <action>maincpu.mb@0A85D = AA</action>
            <action>maincpu.mb@0A893 = 74</action>
            <action>maincpu.mb@A0B02 = 67</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@D753 = 00</action> <!-- others -->
            <action>maincpu.mb@E40B = 00</action> <!-- laser -->
        </script>
        <script state="off">
            <action>maincpu.mb@D753 = 04</action>
            <action>maincpu.mb@E40B = 1E</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x02">02       </item>
            <item value="0x04">03       </item>
            <item value="0x06">04       </item>
            <item value="0x08">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@C487 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@C487 = 02</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x08">02       </item>
            <item value="0x10">03       </item>
            <item value="0x18">04       </item>
            <item value="0x20">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@D7DD = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@D7DD = 0A</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - sub weapon (test)">
        <comment>Also explosion speed for atomic has influence</comment>
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.mq@0D8BA = 4EB9000BF7D04E75</action>
            <action>maincpu.mq@BF7D0 = 26730000700048E7</action>
            <action>maincpu.mq@BF7D8 = 80104E934CDF0801</action>
            <action>maincpu.mq@BF7E0 = 51C8FFF44E75FFFF</action>
            <!--
            BF7D0 | 2673 0000 : movea.l (A3,D0.w), A3
            BF7D4 | 70xx      : moveq   #$xx, D0
            BF7D6 | 48E7 8010 : movem.l D0/A3, -(A7)
            BF7DA | 4E93      : jsr     (A3)
            BF7DC | 4CDF 0801 : movem.l (A7)+, D0/A3
            BF7E0 | 51C8 FFF4 : dbra    D0, $bf7d6
            BF7E4 | 4E75      : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@BF7D5 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@0D8BA = 267300004E934E75</action>
            <action>maincpu.mq@BF7D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BF7D8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BF7E0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>


    <cheat desc="main shot in docking mode">
        <script state="on">
            <action>maincpu.mw@D75C = 4E71</action>
        </script>
        <script state="off">
            <action>maincpu.mw@D75C = 6756</action>
        </script>
    </cheat>

    <cheat desc="sound test mode (test)">
        <!-- many sfxs are endless playing -->
        <!-- incorrect sfx stop by stop button (code 0x11 etc) -->
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.md@00414 = 000BF800        </action>
            <action>maincpu.mq@BF800 = 41F90006100043F9</action>
            <action>maincpu.mq@BF808 = 000443084EB85488</action>
            <action>maincpu.mq@BF810 = 120010285003B200</action>
            <action>maincpu.mq@BF818 = 67F20C0000FD6602</action>
            <action>maincpu.mq@BF820 = 53500C0000FE6602</action>
            <action>maincpu.mq@BF828 = 52500C0000FB6604</action>
            <action>maincpu.mq@BF830 = 045000100C0000F7</action>
            <action>maincpu.mq@BF838 = 6604065000100C00</action>
            <action>maincpu.mq@BF840 = 00EF660232900C00</action>
            <action>maincpu.mq@BF848 = 00DF6602425160BC</action>
            <!--
            BF800 | 41F9 0006 1000 : lea     $61000.l, A0   // sound code address
            BF806 | 43F9 0004 4308 : lea     $44308.l, A1   // sound latch address
            BF80C | 4EB8 5488      : jsr     $5488.w        // interpret input from mcu
            BF810 | 1200           : move.b  D0, D1
            BF812 | 1028 5003      : move.b  ($5003,A0), D0 // read input
            BF816 | B200           : cmp.b   D0, D1
            BF818 | 67F2           : beq     $bf80c
            BF81A | 0C00 00FD      : cmpi.b  #-$3, D0
            BF81E | 6602           : bne     $bf822
            BF820 | 5350           : subq.w  #1, (A0)       // decrease code -01
            BF822 | 0C00 00FE      : cmpi.b  #-$2, D0
            BF826 | 6602           : bne     $bf82a
            BF828 | 5250           : addq.w  #1, (A0)       // increase code +01
            BF82A | 0C00 00FB      : cmpi.b  #-$5, D0
            BF82E | 6604           : bne     $bf834
            BF830 | 0450 0010      : subi.w  #$10, (A0)     // decrease code -10
            BF834 | 0C00 00F7      : cmpi.b  #-$9, D0
            BF838 | 6604           : bne     $bf83e
            BF83A | 0650 0010      : addi.w  #$10, (A0)     // increase code +10
            BF83E | 0C00 00EF      : cmpi.b  #-$11, D0
            BF842 | 6602           : bne     $bf846
            BF844 | 3290           : move.w  (A0), (A1)     // play sound
            BF846 | 0C00 00DF      : cmpi.b  #-$21, D0
            BF84A | 6602           : bne     $bf84e
            BF84C | 4251           : clr.w   (A1)           // stop sound
            BF84E | 60BC           : bra     $bf80c
            -->
        </script>
        <script state="run">
            <output format="----- e.d.f. 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 %04X &gt;&gt;"  line="19" align="center"  >
                <argument>maincpu.pw@61000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@00414 = 0000212A        </action>
            <action>maincpu.mq@BF800 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BF808 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BF810 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BF818 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BF820 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BF828 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BF830 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BF838 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BF840 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BF848 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
edfa.xml

Code: Select all

<!-- E.D.F. : Earth Defense Force (set 2) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@0A437 = 62</action> <!-- P1 bullet -->
            <action>maincpu.mb@0A47B = 1E</action> <!-- P1 enemy -->
            <action>maincpu.mb@0A4B1 = E8</action> <!-- P1 large enemy -->
            <action>maincpu.mb@0A4E7 = B2</action> <!-- P1 boss -->
            <action>maincpu.mb@0A77D = 1C</action> <!-- P2 bullet -->
            <action>maincpu.mb@0A7BB = DE</action> <!-- P2 enemy -->
            <action>maincpu.mb@0A7F1 = A8</action> <!-- P2 large enemy -->
            <action>maincpu.mb@0A827 = 72</action> <!-- P2 boss -->
            <action>maincpu.mb@A0B02 = 60</action> <!-- background -->
        </script>
        <script state="off">
            <action>maincpu.mb@0A437 = 64</action>
            <action>maincpu.mb@0A47B = 20</action>
            <action>maincpu.mb@0A4B1 = EA</action>
            <action>maincpu.mb@0A4E7 = B4</action>
            <action>maincpu.mb@0A77D = 1E</action>
            <action>maincpu.mb@0A7BB = E0</action>
            <action>maincpu.mb@0A7F1 = AA</action>
            <action>maincpu.mb@0A827 = 74</action>
            <action>maincpu.mb@A0B02 = 67</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@D6D3 = 00</action> <!-- others -->
            <action>maincpu.mb@E38B = 00</action> <!-- laser -->
        </script>
        <script state="off">
            <action>maincpu.mb@D6D3 = 04</action>
            <action>maincpu.mb@E38B = 1E</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x02">02       </item>
            <item value="0x04">03       </item>
            <item value="0x06">04       </item>
            <item value="0x08">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@C407 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@C407 = 02</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x08">02       </item>
            <item value="0x10">03       </item>
            <item value="0x18">04       </item>
            <item value="0x20">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@D75D = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@D75D = 0A</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - sub weapon (test)">
        <comment>Also explosion speed for atomic has influence</comment>
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.mq@0D83A = 4EB9000B0B704E75</action>
            <action>maincpu.mq@B0B70 = 26730000700048E7</action>
            <action>maincpu.mq@B0B78 = 80104E934CDF0801</action>
            <action>maincpu.mq@B0B80 = 51C8FFF44E75FFFF</action>
            <!--
            B0B70 | 2673 0000 : movea.l (A3,D0.w), A3
            B0B74 | 70xx      : moveq   #$xx, D0
            B0B76 | 48E7 8010 : movem.l D0/A3, -(A7)
            B0B7A | 4E93      : jsr     (A3)
            B0B7C | 4CDF 0801 : movem.l (A7)+, D0/A3
            B0B80 | 51C8 FFF4 : dbra    D0, $bf7d6
            B0B84 | 4E75      : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@B0B75 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@0D83A = 267300004E934E75</action>
            <action>maincpu.mq@B0B70 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@B0B78 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@B0B80 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>


    <cheat desc="main shot in docking mode">
        <script state="on">
            <action>maincpu.mw@D6DC = 4E71</action>
        </script>
        <script state="off">
            <action>maincpu.mw@D6DC = 6756</action>
        </script>
    </cheat>

    <cheat desc="sound test mode (test)">
        <!-- many sfxs are endless playing -->
        <!-- incorrect sfx stop by stop button (code 0x11 etc) -->
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.md@00414 = 000B0B90        </action>
            <action>maincpu.mq@B0B90 = 41F90006100043F9</action>
            <action>maincpu.mq@B0B98 = 000443084EB85488</action>
            <action>maincpu.mq@B0BA0 = 120010285003B200</action>
            <action>maincpu.mq@B0BA8 = 67F20C0000FD6602</action>
            <action>maincpu.mq@B0BB0 = 53500C0000FE6602</action>
            <action>maincpu.mq@B0BB8 = 52500C0000FB6604</action>
            <action>maincpu.mq@B0BC0 = 045000100C0000F7</action>
            <action>maincpu.mq@B0BC8 = 6604065000100C00</action>
            <action>maincpu.mq@B0BD0 = 00EF660232900C00</action>
            <action>maincpu.mq@B0BD8 = 00DF6602425160BC</action>
            <!--
            B0B90 | 41F9 0006 1000 : lea     $61000.l, A0   // sound code address
            B0B96 | 43F9 0004 4308 : lea     $44308.l, A1   // sound latch address
            B0B9C | 4EB8 5488      : jsr     $5488.w        // interpret input from mcu
            B0BA0 | 1200           : move.b  D0, D1
            B0BA2 | 1028 5003      : move.b  ($5003,A0), D0 // read input
            B0BA6 | B200           : cmp.b   D0, D1
            B0BA8 | 67F2           : beq     $bf80c
            B0BAA | 0C00 00FD      : cmpi.b  #-$3, D0
            B0BAE | 6602           : bne     $bf822
            B0BB0 | 5350           : subq.w  #1, (A0)       // decrease code -01
            B0BB2 | 0C00 00FE      : cmpi.b  #-$2, D0
            B0BB6 | 6602           : bne     $bf82a
            B0BB8 | 5250           : addq.w  #1, (A0)       // increase code +01
            B0BBA | 0C00 00FB      : cmpi.b  #-$5, D0
            B0BBE | 6604           : bne     $bf834
            B0BC0 | 0450 0010      : subi.w  #$10, (A0)     // decrease code -10
            B0BC4 | 0C00 00F7      : cmpi.b  #-$9, D0
            B0BC8 | 6604           : bne     $bf83e
            B0BCA | 0650 0010      : addi.w  #$10, (A0)     // increase code +10
            B0BCE | 0C00 00EF      : cmpi.b  #-$11, D0
            B0BD2 | 6602           : bne     $bf846
            B0BD4 | 3290           : move.w  (A0), (A1)     // play sound
            B0BD6 | 0C00 00DF      : cmpi.b  #-$21, D0
            B0BDA | 6602           : bne     $bf84e
            B0BDC | 4251           : clr.w   (A1)           // stop sound
            B0BDE | 60BC           : bra     $bf80c
            -->
        </script>
        <script state="run">
            <output format="----- e.d.f. 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 %04X &gt;&gt;"  line="19" align="center"  >
                <argument>maincpu.pw@61000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@00414 = 0000212A        </action>
            <action>maincpu.mq@B0B90 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@B0B98 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@B0BA0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@B0BA8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@B0BB0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@B0BB8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@B0BC0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@B0BC8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@B0BD0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@B0BD8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
edfu.xml

Code: Select all

<!-- E.D.F. : Earth Defense Force (North America) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@0A4A3 = 62</action> <!-- P1 bullet -->
            <action>maincpu.mb@0A4E7 = 1E</action> <!-- P1 enemy -->
            <action>maincpu.mb@0A51D = E8</action> <!-- P1 large enemy -->
            <action>maincpu.mb@0A553 = B2</action> <!-- P1 boss -->
            <action>maincpu.mb@0A7E9 = 1C</action> <!-- P2 bullet -->
            <action>maincpu.mb@0A827 = DE</action> <!-- P2 enemy -->
            <action>maincpu.mb@0A85D = A8</action> <!-- P2 large enemy -->
            <action>maincpu.mb@0A893 = 72</action> <!-- P2 boss -->
            <action>maincpu.mb@A0B02 = 60</action> <!-- background -->
        </script>
        <script state="off">
            <action>maincpu.mb@0A4A3 = 64</action>
            <action>maincpu.mb@0A4E7 = 20</action>
            <action>maincpu.mb@0A51D = EA</action>
            <action>maincpu.mb@0A553 = B4</action>
            <action>maincpu.mb@0A7E9 = 1E</action>
            <action>maincpu.mb@0A827 = E0</action>
            <action>maincpu.mb@0A85D = AA</action>
            <action>maincpu.mb@0A893 = 74</action>
            <action>maincpu.mb@A0B02 = 67</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@D753 = 00</action> <!-- others -->
            <action>maincpu.mb@E40B = 00</action> <!-- laser -->
        </script>
        <script state="off">
            <action>maincpu.mb@D753 = 04</action>
            <action>maincpu.mb@E40B = 1E</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x02">02       </item>
            <item value="0x04">03       </item>
            <item value="0x06">04       </item>
            <item value="0x08">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@C487 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@C487 = 02</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x08">02       </item>
            <item value="0x10">03       </item>
            <item value="0x18">04       </item>
            <item value="0x20">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@D7DD = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@D7DD = 0A</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - sub weapon (test)">
        <comment>Also explosion speed for atomic has influence</comment>
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.mq@0D8BA = 4EB9000BF7D04E75</action>
            <action>maincpu.mq@BF7D0 = 26730000700048E7</action>
            <action>maincpu.mq@BF7D8 = 80104E934CDF0801</action>
            <action>maincpu.mq@BF7E0 = 51C8FFF44E75FFFF</action>
            <!--
            BF7D0 | 2673 0000 : movea.l (A3,D0.w), A3
            BF7D4 | 70xx      : moveq   #$xx, D0
            BF7D6 | 48E7 8010 : movem.l D0/A3, -(A7)
            BF7DA | 4E93      : jsr     (A3)
            BF7DC | 4CDF 0801 : movem.l (A7)+, D0/A3
            BF7E0 | 51C8 FFF4 : dbra    D0, $bf7d6
            BF7E4 | 4E75      : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@BF7D5 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@0D8BA = 267300004E934E75</action>
            <action>maincpu.mq@BF7D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BF7D8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BF7E0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>


    <cheat desc="main shot in docking mode">
        <script state="on">
            <action>maincpu.mw@D75C = 4E71</action>
        </script>
        <script state="off">
            <action>maincpu.mw@D75C = 6756</action>
        </script>
    </cheat>

    <cheat desc="sound test mode (test)">
        <!-- many sfxs are endless playing -->
        <!-- incorrect sfx stop by stop button (code 0x11 etc) -->
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.md@00414 = 000BF800        </action>
            <action>maincpu.mq@BF800 = 41F90006100043F9</action>
            <action>maincpu.mq@BF808 = 000443084EB85488</action>
            <action>maincpu.mq@BF810 = 120010285003B200</action>
            <action>maincpu.mq@BF818 = 67F20C0000FD6602</action>
            <action>maincpu.mq@BF820 = 53500C0000FE6602</action>
            <action>maincpu.mq@BF828 = 52500C0000FB6604</action>
            <action>maincpu.mq@BF830 = 045000100C0000F7</action>
            <action>maincpu.mq@BF838 = 6604065000100C00</action>
            <action>maincpu.mq@BF840 = 00EF660232900C00</action>
            <action>maincpu.mq@BF848 = 00DF6602425160BC</action>
            <!--
            BF800 | 41F9 0006 1000 : lea     $61000.l, A0   // sound code address
            BF806 | 43F9 0004 4308 : lea     $44308.l, A1   // sound latch address
            BF80C | 4EB8 5488      : jsr     $5488.w        // interpret input from mcu
            BF810 | 1200           : move.b  D0, D1
            BF812 | 1028 5003      : move.b  ($5003,A0), D0 // read input
            BF816 | B200           : cmp.b   D0, D1
            BF818 | 67F2           : beq     $bf80c
            BF81A | 0C00 00FD      : cmpi.b  #-$3, D0
            BF81E | 6602           : bne     $bf822
            BF820 | 5350           : subq.w  #1, (A0)       // decrease code -01
            BF822 | 0C00 00FE      : cmpi.b  #-$2, D0
            BF826 | 6602           : bne     $bf82a
            BF828 | 5250           : addq.w  #1, (A0)       // increase code +01
            BF82A | 0C00 00FB      : cmpi.b  #-$5, D0
            BF82E | 6604           : bne     $bf834
            BF830 | 0450 0010      : subi.w  #$10, (A0)     // decrease code -10
            BF834 | 0C00 00F7      : cmpi.b  #-$9, D0
            BF838 | 6604           : bne     $bf83e
            BF83A | 0650 0010      : addi.w  #$10, (A0)     // increase code +10
            BF83E | 0C00 00EF      : cmpi.b  #-$11, D0
            BF842 | 6602           : bne     $bf846
            BF844 | 3290           : move.w  (A0), (A1)     // play sound
            BF846 | 0C00 00DF      : cmpi.b  #-$21, D0
            BF84A | 6602           : bne     $bf84e
            BF84C | 4251           : clr.w   (A1)           // stop sound
            BF84E | 60BC           : bra     $bf80c
            -->
        </script>
        <script state="run">
            <output format="----- e.d.f. 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 %04X &gt;&gt;"  line="19" align="center"  >
                <argument>maincpu.pw@61000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@00414 = 0000212A        </action>
            <action>maincpu.mq@BF800 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BF808 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BF810 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BF818 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BF820 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BF828 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BF830 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BF838 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BF840 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BF848 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
edfbl.xml

Code: Select all

<!-- E.D.F. : Earth Defense Force (bootleg) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@0A4A3 = 62</action> <!-- P1 bullet -->
            <action>maincpu.mb@0A4E7 = 1E</action> <!-- P1 enemy -->
            <action>maincpu.mb@0A51D = E8</action> <!-- P1 large enemy -->
            <action>maincpu.mb@0A553 = B2</action> <!-- P1 boss -->
            <action>maincpu.mb@0A7E9 = 1C</action> <!-- P2 bullet -->
            <action>maincpu.mb@0A827 = DE</action> <!-- P2 enemy -->
            <action>maincpu.mb@0A85D = A8</action> <!-- P2 large enemy -->
            <action>maincpu.mb@0A893 = 72</action> <!-- P2 boss -->
            <action>maincpu.mb@A0B02 = 60</action> <!-- background -->
        </script>
        <script state="off">
            <action>maincpu.mb@0A4A3 = 64</action>
            <action>maincpu.mb@0A4E7 = 20</action>
            <action>maincpu.mb@0A51D = EA</action>
            <action>maincpu.mb@0A553 = B4</action>
            <action>maincpu.mb@0A7E9 = 1E</action>
            <action>maincpu.mb@0A827 = E0</action>
            <action>maincpu.mb@0A85D = AA</action>
            <action>maincpu.mb@0A893 = 74</action>
            <action>maincpu.mb@A0B02 = 67</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@D753 = 00</action> <!-- others -->
            <action>maincpu.mb@E40B = 00</action> <!-- laser -->
        </script>
        <script state="off">
            <action>maincpu.mb@D753 = 04</action>
            <action>maincpu.mb@E40B = 1E</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x02">02       </item>
            <item value="0x04">03       </item>
            <item value="0x06">04       </item>
            <item value="0x08">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@C487 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@C487 = 02</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x08">02       </item>
            <item value="0x10">03       </item>
            <item value="0x18">04       </item>
            <item value="0x20">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@D7DD = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@D7DD = 0A</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - sub weapon (test)">
        <comment>Also explosion speed for atomic has influence</comment>
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.mq@0D8BA = 4EB9000BF7D04E75</action>
            <action>maincpu.mq@BF7D0 = 26730000700048E7</action>
            <action>maincpu.mq@BF7D8 = 80104E934CDF0801</action>
            <action>maincpu.mq@BF7E0 = 51C8FFF44E75FFFF</action>
            <!--
            BF7D0 | 2673 0000 : movea.l (A3,D0.w), A3
            BF7D4 | 70xx      : moveq   #$xx, D0
            BF7D6 | 48E7 8010 : movem.l D0/A3, -(A7)
            BF7DA | 4E93      : jsr     (A3)
            BF7DC | 4CDF 0801 : movem.l (A7)+, D0/A3
            BF7E0 | 51C8 FFF4 : dbra    D0, $bf7d6
            BF7E4 | 4E75      : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@BF7D5 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@0D8BA = 267300004E934E75</action>
            <action>maincpu.mq@BF7D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BF7D8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BF7E0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>


    <cheat desc="main shot in docking mode">
        <script state="on">
            <action>maincpu.mw@D75C = 4E71</action>
        </script>
        <script state="off">
            <action>maincpu.mw@D75C = 6756</action>
        </script>
    </cheat>

    <cheat desc="sound test mode (test)">
        <!-- many sfxs are endless playing -->
        <!-- incorrect sfx stop by stop button (code 0x11 etc) -->
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.md@00414 = 000BF800        </action>
            <action>maincpu.mq@BF800 = 41F90006100043F9</action>
            <action>maincpu.mq@BF808 = 000443084EB85488</action>
            <action>maincpu.mq@BF810 = 120010285003B200</action>
            <action>maincpu.mq@BF818 = 67F20C0000FD6602</action>
            <action>maincpu.mq@BF820 = 53500C0000FE6602</action>
            <action>maincpu.mq@BF828 = 52500C0000FB6604</action>
            <action>maincpu.mq@BF830 = 045000100C0000F7</action>
            <action>maincpu.mq@BF838 = 6604065000100C00</action>
            <action>maincpu.mq@BF840 = 00EF660232900C00</action>
            <action>maincpu.mq@BF848 = 00DF6602425160BC</action>
            <!--
            BF800 | 41F9 0006 1000 : lea     $61000.l, A0   // sound code address
            BF806 | 43F9 0004 4308 : lea     $44308.l, A1   // sound latch address
            BF80C | 4EB8 5488      : jsr     $5488.w        // interpret input from mcu
            BF810 | 1200           : move.b  D0, D1
            BF812 | 1028 5003      : move.b  ($5003,A0), D0 // read input
            BF816 | B200           : cmp.b   D0, D1
            BF818 | 67F2           : beq     $bf80c
            BF81A | 0C00 00FD      : cmpi.b  #-$3, D0
            BF81E | 6602           : bne     $bf822
            BF820 | 5350           : subq.w  #1, (A0)       // decrease code -01
            BF822 | 0C00 00FE      : cmpi.b  #-$2, D0
            BF826 | 6602           : bne     $bf82a
            BF828 | 5250           : addq.w  #1, (A0)       // increase code +01
            BF82A | 0C00 00FB      : cmpi.b  #-$5, D0
            BF82E | 6604           : bne     $bf834
            BF830 | 0450 0010      : subi.w  #$10, (A0)     // decrease code -10
            BF834 | 0C00 00F7      : cmpi.b  #-$9, D0
            BF838 | 6604           : bne     $bf83e
            BF83A | 0650 0010      : addi.w  #$10, (A0)     // increase code +10
            BF83E | 0C00 00EF      : cmpi.b  #-$11, D0
            BF842 | 6602           : bne     $bf846
            BF844 | 3290           : move.w  (A0), (A1)     // play sound
            BF846 | 0C00 00DF      : cmpi.b  #-$21, D0
            BF84A | 6602           : bne     $bf84e
            BF84C | 4251           : clr.w   (A1)           // stop sound
            BF84E | 60BC           : bra     $bf80c
            -->
        </script>
        <script state="run">
            <output format="----- e.d.f. 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 %04X &gt;&gt;"  line="19" align="center"  >
                <argument>maincpu.pw@61000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@00414 = 0000212A        </action>
            <action>maincpu.mq@BF800 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BF808 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BF810 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BF818 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BF820 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BF828 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BF830 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BF838 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BF840 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BF848 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
edfp.xml

Code: Select all

<!-- E.D.F. : Earth Defense Force (Japan, prototype) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@0C6B7 = 62</action> <!-- P1 bullet -->
            <action>maincpu.mb@0C6FB = 1E</action> <!-- P1 enemy -->
            <action>maincpu.mb@0C731 = E8</action> <!-- P1 large enemy -->
            <action>maincpu.mb@0C767 = B2</action> <!-- P1 boss -->
            <action>maincpu.mb@0C9FD = 1C</action> <!-- P2 bullet -->
            <action>maincpu.mb@0CA3B = DE</action> <!-- P2 enemy -->
            <action>maincpu.mb@0CA71 = A8</action> <!-- P2 large enemy -->
            <action>maincpu.mb@0CAA7 = 72</action> <!-- P2 boss -->
            <action>maincpu.mb@50BE8 = 60</action> <!-- background -->
        </script>
        <script state="off">
            <action>maincpu.mb@0C6B7 = 64</action>
            <action>maincpu.mb@0C6FB = 20</action>
            <action>maincpu.mb@0C731 = EA</action>
            <action>maincpu.mb@0C767 = B4</action>
            <action>maincpu.mb@0C9FD = 1E</action>
            <action>maincpu.mb@0CA3B = E0</action>
            <action>maincpu.mb@0CA71 = AA</action>
            <action>maincpu.mb@0CAA7 = 74</action>
            <action>maincpu.mb@50BE8 = 67</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@0F7DB = 00</action> <!-- others -->
            <action>maincpu.mb@10489 = 00</action> <!-- laser -->
        </script>
        <script state="off">
            <action>maincpu.mb@0F7DB = 04</action>
            <action>maincpu.mb@10489 = 1E</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x02">02       </item>
            <item value="0x04">03       </item>
            <item value="0x06">04       </item>
            <item value="0x08">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@E513 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@E513 = 02</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x08">02       </item>
            <item value="0x10">03       </item>
            <item value="0x18">04       </item>
            <item value="0x20">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@F865 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@F865 = 0A</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - sub weapon (test)">
        <comment>Also explosion speed for atomic has influence</comment>
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.mq@0F942 = 4EB9000600004E75</action>
            <action>maincpu.mq@60000 = 26730000700048E7</action>
            <action>maincpu.mq@60008 = 80104E934CDF0801</action>
            <action>maincpu.mq@60010 = 51C8FFF44E75FFFF</action>
            <!--
            60000 | 2673 0000 : movea.l (A3,D0.w), A3
            60004 | 70xx      : moveq   #$xx, D0
            60006 | 48E7 8010 : movem.l D0/A3, -(A7)
            6000A | 4E93      : jsr     (A3)
            6000C | 4CDF 0801 : movem.l (A7)+, D0/A3
            61000 | 51C8 FFF4 : dbra    D0, $60006
            61004 | 4E75      : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@60005 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@0F942 = 267300004E934E75</action>
            <action>maincpu.mq@60000 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@60008 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@60010 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="main shot in docking mode">
        <script state="on">
            <action>maincpu.mw@F7E4 = 4E71</action>
        </script>
        <script state="off">
            <action>maincpu.mw@F7E4 = 6756</action>
        </script>
    </cheat>

    <cheat desc="sound test mode (test)">
        <!-- many sfxs are endless playing -->
        <!-- incorrect sfx stop by stop button (code 0x11 etc) -->
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.md@00414 = 00060020        </action>
            <action>maincpu.mq@60020 = 41F9000F100043F9</action>
            <action>maincpu.mq@60028 = 0008430812001029</action>
            <action>maincpu.mq@60030 = BCFBB20067F60C00</action>
            <action>maincpu.mq@60038 = 00FD660253500C00</action>
            <action>maincpu.mq@60040 = 00FE660252500C00</action>
            <action>maincpu.mq@60048 = 00FB660404500010</action>
            <action>maincpu.mq@60050 = 0C0000F766040650</action>
            <action>maincpu.mq@60058 = 00100C0000EF6602</action>
            <action>maincpu.mq@60060 = 32900C0000DF6602</action>
            <action>maincpu.mq@60068 = 425160C000000000</action>
            <!--
            60020 | 41F9 000F 1000 : lea     $f1000.l, A0    // sound code address
            60026 | 43F9 0008 4308 : lea     $84308.l, A1    // sound latch address
            6002C | 1200           : move.b  D0, D1
            6002E | 1029 BCFB      : move.b  (-$4305,A1), D0 // read input ($80003)
            60032 | B200           : cmp.b   D0, D1
            60034 | 67F6           : beq     $6002c
            60036 | 0C00 00FD      : cmpi.b  #-$3, D0
            6003A | 6602           : bne     $6003e
            6003C | 5350           : subq.w  #1, (A0)        // decrease code -01
            6003E | 0C00 00FE      : cmpi.b  #-$2, D0
            60042 | 6602           : bne     $60046
            60044 | 5250           : addq.w  #1, (A0)        // increase code +01
            60046 | 0C00 00FB      : cmpi.b  #-$5, D0
            6004A | 6604           : bne     $60050
            6004C | 0450 0010      : subi.w  #$10, (A0)      // decrease code -10
            60050 | 0C00 00F7      : cmpi.b  #-$9, D0
            60054 | 6604           : bne     $6005a
            60056 | 0650 0010      : addi.w  #$10, (A0)      // increase code +10
            6005A | 0C00 00EF      : cmpi.b  #-$11, D0
            6005E | 6602           : bne     $60062
            60060 | 3290           : move.w  (A0), (A1)      // play sound
            60062 | 0C00 00DF      : cmpi.b  #-$21, D0
            60066 | 6602           : bne     $6006a
            60068 | 4251           : clr.w   (A1)            // stop sound
            6006A | 60C0           : bra     $6002c
            -->
        </script>
        <script state="run">
            <output format="----- e.d.f. 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 %04X &gt;&gt;"  line="19" align="center"  >
                <argument>maincpu.pw@F1000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@00414 = 0000312E        </action>
            <action>maincpu.mq@60020 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@60028 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@60030 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@60038 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@60040 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@60048 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@60050 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@60058 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@60060 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@60068 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
  • "no hit" : Added codes for player 2 which are missing in previous post.
  • "auto fire" : Added code for laser.
  • "bullet speed - vulcan/atomic/homing" : Merged these codes into new "bullet speed - sub weapon (test)".
  • "main shot in docking mode" : Added new. You can shoot main shot in docking with sub units.
Post Reply