Page 1 of 1

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

Posted: Fri Jan 06, 2023 11:24 am
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>

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

Posted: Thu Jan 25, 2024 11:03 am
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.