[legionj2] Chouji Meikyuu Legion

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: 843
Joined: Tue Dec 01, 2020 1:24 pm

[legionj2] Chouji Meikyuu Legion

Post by jman »

legionj2 is added on 0.239.

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>maincpu.mw@d584 = 0932</action> <!-- object 1 -->
        <action>maincpu.mw@d5a0 = 0916</action> <!-- object 2 -->
        <action>maincpu.mw@d60c = 08aa</action> <!-- object 3 -->
        <action>maincpu.mw@d62c = 088a</action> <!-- object 4 -->
        <action>maincpu.mw@d64c = 086a</action> <!-- object 5 -->
        <action>maincpu.mw@d6f4 = 07c2</action> <!-- object 6 -->
        <action>maincpu.mw@d710 = 07a6</action> <!-- object 7 -->
        <action>maincpu.mw@d77c = 073a</action> <!-- object 8 -->
        <action>maincpu.mw@d796 = 0720</action> <!-- object 9 -->
        <action>maincpu.mw@f526 = 4e71</action> <!-- background 1 -->
        <action>maincpu.mw@f52c = 4e71</action> <!-- background 2 -->
        <action>maincpu.mw@f57a = 6002</action> <!-- background 3 -->
        <action>maincpu.mw@f596 = 0002</action> <!-- background 4 -->
        <action>maincpu.mw@f5bc = 6002</action> <!-- background 5 -->
        <action>maincpu.mw@f5d8 = 0002</action> <!-- background 6 -->
        <action>maincpu.mw@f606 = 6004</action> <!-- background 7 -->
        <action>maincpu.mw@f624 = 0002</action> <!-- background 8 -->
    </script>
    <script state="off">
        <action>maincpu.mw@d584 = 08d0</action>
        <action>maincpu.mw@d5a0 = 08b4</action>
        <action>maincpu.mw@d60c = 0848</action>
        <action>maincpu.mw@d62c = 0828</action>
        <action>maincpu.mw@d64c = 0808</action>
        <action>maincpu.mw@d6f4 = 0760</action>
        <action>maincpu.mw@d710 = 0744</action>
        <action>maincpu.mw@d77c = 06d8</action>
        <action>maincpu.mw@d796 = 06be</action>
        <action>maincpu.mw@f526 = 6628</action>
        <action>maincpu.mw@f52c = 6622</action>
        <action>maincpu.mw@f57a = 6702</action>
        <action>maincpu.mw@f596 = ff66</action>
        <action>maincpu.mw@f5bc = 6702</action>
        <action>maincpu.mw@f5d8 = ff24</action>
        <action>maincpu.mw@f606 = 6704</action>
        <action>maincpu.mw@f624 = fed8</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mq@6900 = 102dfff102000010</action>
        <action>maincpu.mq@6908 = 4e716700feba49f9</action>
        <!--
        6900 | 102d fff1 : move.b (-$f,A5),D0
        6904 | 0200 0010 : andi.b #$10,D0
        6908 | 4e71      : nop
        690a | 6700 feba : beq    $67c6
        -->
    </script>
    <script state="off">
        <action>maincpu.mq@6900 = 102d000402000003</action>
        <action>maincpu.mq@6908 = 53006600feba49f9</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter min="0x01" max="0x05" step="0x01" />
    <script state="on">
        <action>maincpu.md@f536 = 103c0000</action> <!-- up -->
        <action>maincpu.md@f59a = 103c0000</action> <!-- down -->
        <action>maincpu.md@f5dc = 103c0000</action> <!-- left -->
        <action>maincpu.md@f628 = 103c0000</action> <!-- right -->
    </script>
    <script state="change">
        <action>maincpu.mb@f539 = param</action>
        <action>maincpu.mb@f59d = param</action>
        <action>maincpu.mb@f5df = param</action>
        <action>maincpu.mb@f62b = param</action>
    </script>
    <script state="off">
        <action>maincpu.md@f536 = 102e001d</action>
        <action>maincpu.md@f59a = 102e001d</action>
        <action>maincpu.md@f5dc = 102e001c</action>
        <action>maincpu.md@f628 = 102e001c</action>
    </script>
</cheat>

<cheat desc="bullet speed - main shot">
    <parameter>
        <item value="0x01">01 (slow)</item>
        <item value="0x04">02       </item>
        <item value="0x08">03       </item>
        <item value="0x0c">04       </item>
        <item value="0x10">05 (fast)</item>
    </parameter>
    <script state="on">
        <!-- normal shot -->
        <action>maincpu.md@0688e =         303c0000</action>
        <action>maincpu.mq@06892 = 4eb900016aa03d7b</action>
        <action>maincpu.mq@16aa0 = d16e000630390006</action>
        <action>maincpu.mq@16aa8 = 2cb44e75ffffffff</action>
        <!--
        0688e | 303c xxxx      : move.w #$xx,D0
        06892 | 4eb9 0001 6aa0 : jsr    $16aa0.l
        16aa0 | d16e 0006      : add.w  D0,($6,A6)
        16aa4 | 3039 0006 2cb4 : move.w $62cb4.l,D0
        16aaa | 4e75           : rts
        -->
        <!-- laser -->
        <action>maincpu.md@068ca =         303c0000</action>
        <action>maincpu.mq@068ce = 4eb900016ab0641a</action>
        <action>maincpu.mq@16ab0 = d16e00060c6e0003</action>
        <action>maincpu.mq@16ab8 = 000e4e75ffffffff</action>
        <!--
        068ca | 303c xxxx      : move.w #$xx,D0
        068ce | 4eb9 0001 6ab0 : jsr    $16ab0.l
        16ab0 | d16e 0006      : add.w  D0,($6,A6)
        16ab4 | 0c6e 0003 000e : cmpi.w #$3,($e,A6)
        16aba | 4e75           : rts
        -->
    </script>
    <script state="change">
        <action>maincpu.mb@06891 = param</action>
        <action>maincpu.mb@068cd = param</action>
    </script>
    <script state="off">
        <action>maincpu.md@0688e =         506e0006</action>
        <action>maincpu.mq@06892 = 303900062cb43d7b</action>
        <action>maincpu.mq@16aa0 = ffffffffffffffff</action>
        <action>maincpu.mq@16aa8 = ffffffffffffffff</action>
        <action>maincpu.md@068ca =         506e0006</action>
        <action>maincpu.mq@068ce = 0c6e0003000e641a</action>
        <action>maincpu.mq@16ab0 = ffffffffffffffff</action>
        <action>maincpu.mq@16ab8 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="sound test mode">
    <comment>set ram/rom check skip then reset the game (F3)</comment>
    <script state="on">
        <action>maincpu.md@002b8 =         00016ac0</action>
        <action>maincpu.mq@16ac0 = 41f9000611004280</action>
        <action>maincpu.mq@16ac8 = 1401123900078001</action>
        <action>maincpu.mq@16ad0 = b40167f40c0100fb</action>
        <action>maincpu.mq@16ad8 = 660253100c0100f7</action>
        <action>maincpu.mq@16ae0 = 660252100c0100fd</action>
        <action>maincpu.mq@16ae8 = 6604041000100c01</action>
        <action>maincpu.mq@16af0 = 00fe660406100010</action>
        <action>maincpu.mq@16af8 = 0c0100ef66041010</action>
        <action>maincpu.mq@16b00 = 600a0c0100df660a</action>
        <action>maincpu.mq@16b08 = 103c003e13c00007</action>
        <action>maincpu.mq@16b10 = c00b60b4ffffffff</action>
        <!--
        16ac0 | 41f9 0006 1100 : lea    $61100.l,A0 // sound code address
        16ac6 | 4280           : clr.l  D0
        16ac8 | 1401           : move.b D1,D2
        16aca | 1239 0007 8001 : move.b $78001.l,D1 // read input
        16ad0 | b401           : cmp.b  D1,D2
        16ad2 | 67f4           : beq    $16ac8
        16ad4 | 0c01 00fb      : cmpi.b #-$5,D1
        16ad8 | 6602           : bne    $16adc
        16ada | 5310           : subq.b #1,(A0)     // decrease code -01
        16adc | 0c01 00f7      : cmpi.b #-$9,D1
        16ae0 | 6602           : bne    $16ae4
        16ae2 | 5210           : addq.b #1,(A0)     // increase code +01
        16ae4 | 0c01 00fd      : cmpi.b #-$3,D1
        16ae8 | 6604           : bne    $16aee
        16aea | 0410 0010      : subi.b #$10,(A0)   // decrease code -10
        16aee | 0c01 00fe      : cmpi.b #-$2,D1
        16af2 | 6604           : bne    $16af8
        16af4 | 0610 0010      : addi.b #$10,(A0)   // increase code +10
        16af8 | 0c01 00ef      : cmpi.b #-$11,D1
        16afc | 6604           : bne    $16b02
        16afe | 1010           : move.b (A0),D0     // play sound
        16b00 | 600a           : bra    $16b0c
        16b02 | 0c01 00df      : cmpi.b #-$21,D1
        16b06 | 660a           : bne    $16b12
        16b08 | 103c 003e      : move.b #$3e,D0     // stop sound
        16b0c | 13c0 0007 c00b : move.b D0,$7c00b.l // send sound code
        16b12 | 60b4           : bra    $16ac8
        -->
    </script>
    <script state="run">
        <output format="----- legion 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="up : increase code +10"             line="13" align="center" />
        <output format="down : decrease code -10"           line="14" align="center" />
        <output format="button 1 : play sound"              line="15" align="center" />
        <output format="button 2 : stop sound"              line="16" align="center" />
        <output format="----------------------------"       line="17" align="center" />
        <output format="&lt;&lt; sound code %2.2X &gt;&gt;" line="19" align="center">
            <argument>maincpu.pb@61100</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.md@002b8 =         0001569a</action>
        <action>maincpu.mq@16ac0 = ffffffffffffffff</action>
        <action>maincpu.mq@16ac8 = ffffffffffffffff</action>
        <action>maincpu.mq@16ad0 = ffffffffffffffff</action>
        <action>maincpu.mq@16ad8 = ffffffffffffffff</action>
        <action>maincpu.mq@16ae0 = ffffffffffffffff</action>
        <action>maincpu.mq@16ae8 = ffffffffffffffff</action>
        <action>maincpu.mq@16af0 = ffffffffffffffff</action>
        <action>maincpu.mq@16af8 = ffffffffffffffff</action>
        <action>maincpu.mq@16b00 = ffffffffffffffff</action>
        <action>maincpu.mq@16b08 = ffffffffffffffff</action>
        <action>maincpu.mq@16b10 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="skip ram/rom check">
    <script state="on">
        <action>maincpu.mw@01b6 = 0002</action>
    </script>
    <script state="off">
        <action>maincpu.mw@01b6 = 017e</action>
    </script>
</cheat>
It's hard to create "no hit" code because complex game program.
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[legion]+ Chouji Meikyuu Legion

Post by jman »

legion.xml

Code: Select all

<!-- Legion - Spinner-87 (World ver 2.03) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <!-- objects -->
            <action>maincpu.md@D740 = 303C0000</action>
            <action>maincpu.md@D75C = 303C0000</action>
            <action>maincpu.md@D7C8 = 303C0000</action>
            <action>maincpu.md@D7E8 = 303C0000</action>
            <action>maincpu.md@D808 = 303C0000</action>
            <action>maincpu.md@D8B0 = 303C0000</action>
            <action>maincpu.md@D8CC = 303C0000</action>
            <action>maincpu.md@D938 = 303C0000</action>
            <action>maincpu.md@D952 = 303C0000</action>
            <!-- background -->
            <action>maincpu.md@12F12 = 70004E75</action>
        </script>
        <script state="off">
            <action>maincpu.md@0D740 = 610008DA</action>
            <action>maincpu.md@0D75C = 610008BE</action>
            <action>maincpu.md@0D7C8 = 61000852</action>
            <action>maincpu.md@0D7E8 = 61000832</action>
            <action>maincpu.md@0D808 = 61000812</action>
            <action>maincpu.md@0D8B0 = 6100076A</action>
            <action>maincpu.md@0D8CC = 6100074E</action>
            <action>maincpu.md@0D938 = 610006E2</action>
            <action>maincpu.md@0D952 = 610006C8</action>
            <action>maincpu.md@12F12 = 0C410190</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@699D = 01</action>
        </script>
        <script state="off">
            <action>maincpu.mb@699D = 03</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0001">01 (slow)</item>
            <item value="0x0002">02       </item>
            <item value="0x0004">03       </item>
            <item value="0x0006">04       </item>
            <item value="0x0008">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mw@F6FE = 303C</action> <!-- up -->
            <action>maincpu.mw@F762 = 303C</action> <!-- down -->
            <action>maincpu.mw@F7A4 = 303C</action> <!-- left -->
            <action>maincpu.mw@F7F0 = 303C</action> <!-- right -->
        </script>
        <script state="change">
            <action>maincpu.mw@F700 = param</action>
            <action>maincpu.mw@F764 = param</action>
            <action>maincpu.mw@F7A6 = param</action>
            <action>maincpu.mw@F7F2 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@F6FE = 102E001D</action>
            <action>maincpu.md@F762 = 102E001D</action>
            <action>maincpu.md@F7A4 = 102E001C</action>
            <action>maincpu.md@F7F0 = 102E001C</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x0001">01 (slow)</item>
            <item value="0x0008">02       </item>
            <item value="0x000c">03       </item>
            <item value="0x0010">04       </item>
            <item value="0x0014">05 (fast)</item>
        </parameter>
        <script state="on">
            <!-- normal shot -->
            <action>maincpu.mw@06922 = 303C            </action>
            <action>maincpu.mq@06926 = 4EB900016D903D7B</action>
            <action>maincpu.mq@16D90 = D16E000630390006</action>
            <action>maincpu.mq@16D98 = 2CB44E75FFFFFFFF</action>
            <!--
            06922 | 303C xxxx      : move.w  #$xx, D0
            06926 | 4EB9 0001 6D90 : jsr     $16d90.l
            =============================================
            16D90 | D16E 0006      : add.w   D0, ($6,A6)
            16D94 | 3039 0006 2CB4 : move.w  $62cb4.l, D0
            16D9A | 4E75           : rts
            -->
            <!-- laser -->
            <action>maincpu.mw@0695E = 303C            </action>
            <action>maincpu.mq@06962 = 4EB900016DA0641A</action>
            <action>maincpu.mq@16DA0 = D16E00060C6E0003</action>
            <action>maincpu.mq@16DA8 = 000E4E75FFFFFFFF</action>
            <!--
            0695E | 303C xxxx      : move.w  #$xx, D0
            06962 | 4EB9 0001 6DA0 : jsr     $16da0.l
            =============================================
            16AB0 | D16E 0006      : add.w   D0, ($6,A6)
            16AB4 | 0C6E 0003 000E : cmpi.w  #$3, ($e,A6)
            16ABA | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@6924 = param</action>
            <action>maincpu.mw@6960 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@06922 = 506E0006        </action>
            <action>maincpu.mq@06926 = 303900062CB43D7B</action>
            <action>maincpu.mq@16D90 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16D98 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.md@0695E = 506E0006        </action>
            <action>maincpu.mq@06962 = 0C6E0003000E641A</action>
            <action>maincpu.mq@16DA0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16DA8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.md@002C0 = 00016DB0        </action>
            <action>maincpu.mq@16DB0 = 41F90006100043F9</action>
            <action>maincpu.mq@16DB8 = 0007C00B12001039</action>
            <action>maincpu.mq@16DC0 = 00078001B20067F4</action>
            <action>maincpu.mq@16DC8 = 0C0000FB66025310</action>
            <action>maincpu.mq@16DD0 = 0C0000F766025210</action>
            <action>maincpu.mq@16DD8 = 0C0000FD66040410</action>
            <action>maincpu.mq@16DE0 = 00100C0000FE6604</action>
            <action>maincpu.mq@16DE8 = 061000100C0000EF</action>
            <action>maincpu.mq@16DF0 = 660212900C0000DF</action>
            <action>maincpu.mq@16DF8 = 660412BC003F60BC</action>
            <!--
            16DB0 | 41F9 0006 1000 : lea     $61000.l, A0 // sound code address
            16DB6 | 43F9 0007 C00B : lea     $7c00b.l, A1 // sound latch address
            16DBC | 1200           : move.b  D0, D1
            16DBE | 1039 0007 8001 : move.b  $78001.l, D0 // read input
            16DC4 | B200           : cmp.b   D0, D1
            16DC6 | 67F4           : beq     $16acc
            16DC8 | 0C00 00FB      : cmpi.b  #-$5, D0
            16DCC | 6602           : bne     $16ae0
            16DCE | 5310           : subq.b  #1, (A0)     // decrease code -01
            16DD0 | 0C00 00F7      : cmpi.b  #-$9, D0
            16DD4 | 6602           : bne     $16ae8
            16DD6 | 5210           : addq.b  #1, (A0)     // increase code +01
            16DD8 | 0C00 00FD      : cmpi.b  #-$3, D0
            16DDC | 6604           : bne     $16af2
            16DDE | 0410 0010      : subi.b  #$10, (A0)   // decrease code -10
            16DE2 | 0C00 00FE      : cmpi.b  #-$2, D0
            16DE6 | 6604           : bne     $16afc
            16DE8 | 0610 0010      : addi.b  #$10, (A0)   // increase code +10
            16DEC | 0C00 00EF      : cmpi.b  #-$11, D0
            16DF0 | 6602           : bne     $16b04
            16DF2 | 1290           : move.b  (A0), (A1)   // play sound
            16DF4 | 0C00 00DF      : cmpi.b  #-$21, D0
            16DF8 | 6604           : bne     $16b0e
            16DFA | 12BC 003F      : move.b  #$3f, (A1)   // stop sound
            16DFE | 60BC           : bra     $16acc
            -->
        </script>
        <script state="run">
            <output format="----- legion sound test mode -----" line="10" align="center" />
            <output format="left : decrease code -01"           line="11" align="center" />
            <output format="right : increase code +01"          line="12" align="center" />
            <output format="down : decrease code -10"           line="13" align="center" />
            <output format="up : increase code +10"             line="14" align="center" />
            <output format="button 1 : play sound"              line="15" align="center" />
            <output format="button 2 : stop sound"              line="16" align="center" />
            <output format="----------------------------"       line="17" align="center" />
            <output format="&lt;&lt; sound code %2.2X &gt;&gt;" line="19" align="center"  >
                <argument>maincpu.pb@61000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@002C0 = 00015934        </action>
            <action>maincpu.mq@16DB0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16DB8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16DC0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16DC8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16DD0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16DD8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16DE0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16DE8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16DF8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16DF0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@01B6 = 0002</action>
        </script>
        <script state="off">
            <action>maincpu.mw@01B6 = 0186</action>
        </script>
    </cheat>

</mamecheat>
legionj.xml

Code: Select all

<!-- Chouji Meikyuu Legion (Japan ver 1.05, set 1) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <!-- objects -->
            <action>maincpu.md@D582 = 303C0000</action>
            <action>maincpu.md@D59E = 303C0000</action>
            <action>maincpu.md@D60A = 303C0000</action>
            <action>maincpu.md@D62A = 303C0000</action>
            <action>maincpu.md@D64A = 303C0000</action>
            <action>maincpu.md@D6F2 = 303C0000</action>
            <action>maincpu.md@D70E = 303C0000</action>
            <action>maincpu.md@D77A = 303C0000</action>
            <action>maincpu.md@D794 = 303C0000</action>
            <!-- background -->
            <action>maincpu.md@12C80 = 70004E75</action>
        </script>
        <script state="off">
            <action>maincpu.md@0D582 = 610008D0</action>
            <action>maincpu.md@0D59E = 610008B4</action>
            <action>maincpu.md@0D60A = 61000848</action>
            <action>maincpu.md@0D62A = 61000828</action>
            <action>maincpu.md@0D64A = 61000808</action>
            <action>maincpu.md@0D6F2 = 61000760</action>
            <action>maincpu.md@0D70E = 61000744</action>
            <action>maincpu.md@0D77A = 610006D8</action>
            <action>maincpu.md@0D794 = 610006BE</action>
            <action>maincpu.md@12C80 = 0C410190</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@6907 = 01</action>
        </script>
        <script state="off">
            <action>maincpu.mb@6907 = 03</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0001">01 (slow)</item>
            <item value="0x0002">02       </item>
            <item value="0x0004">03       </item>
            <item value="0x0006">04       </item>
            <item value="0x0008">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mw@F536 = 303C</action> <!-- up -->
            <action>maincpu.mw@F59A = 303C</action> <!-- down -->
            <action>maincpu.mw@F5DC = 303C</action> <!-- left -->
            <action>maincpu.mw@F628 = 303C</action> <!-- right -->
        </script>
        <script state="change">
            <action>maincpu.mw@F538 = param</action>
            <action>maincpu.mw@F59C = param</action>
            <action>maincpu.mw@F5DE = param</action>
            <action>maincpu.mw@F62A = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@F536 = 102E001D</action>
            <action>maincpu.md@F59A = 102E001D</action>
            <action>maincpu.md@F5DC = 102E001C</action>
            <action>maincpu.md@F628 = 102E001C</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x0001">01 (slow)</item>
            <item value="0x0008">02       </item>
            <item value="0x000c">03       </item>
            <item value="0x0010">04       </item>
            <item value="0x0014">05 (fast)</item>
        </parameter>
        <script state="on">
            <!-- normal shot -->
            <action>maincpu.mw@0688E = 303C            </action>
            <action>maincpu.mq@06892 = 4EB900016AA03D7B</action>
            <action>maincpu.mq@16AA0 = D16E000630390006</action>
            <action>maincpu.mq@16AA8 = 2CB44E75FFFFFFFF</action>
            <!--
            0688E | 303C xxxx      : move.w  #$xx, D0
            06892 | 4EB9 0001 6AA0 : jsr     $16aa0.l
            =============================================
            16AA0 | D16E 0006      : add.w   D0, ($6,A6)
            16AA4 | 3039 0006 2CB4 : move.w  $62cb4.l, D0
            16AAA | 4E75           : rts
            -->
            <!-- laser -->
            <action>maincpu.mw@068CA = 303C            </action>
            <action>maincpu.mq@068CE = 4EB900016AB0641A</action>
            <action>maincpu.mq@16AB0 = D16E00060C6E0003</action>
            <action>maincpu.mq@16AB8 = 000E4E75FFFFFFFF</action>
            <!--
            068CA | 303C xxxx      : move.w  #$xx, D0
            068CE | 4EB9 0001 6AB0 : jsr     $16ab0.l
            =============================================
            16AB0 | D16E 0006      : add.w   D0, ($6,A6)
            16AB4 | 0C6E 0003 000E : cmpi.w  #$3, ($e,A6)
            16ABA | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@06890 = param</action>
            <action>maincpu.mw@068CC = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@0688E = 506E0006        </action>
            <action>maincpu.mq@06892 = 303900062CB43D7B</action>
            <action>maincpu.mq@16AA0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16AA8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.md@068CA = 506E0006        </action>
            <action>maincpu.mq@068CE = 0C6E0003000E641A</action>
            <action>maincpu.mq@16AB0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16AB8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.md@002B8 = 00016AC0        </action>
            <action>maincpu.mq@16AC0 = 41F90006100043F9</action>
            <action>maincpu.mq@16AC8 = 0007C00B12001039</action>
            <action>maincpu.mq@16AD0 = 00078001B20067F4</action>
            <action>maincpu.mq@16AD8 = 0C0000FB66025310</action>
            <action>maincpu.mq@16AE0 = 0C0000F766025210</action>
            <action>maincpu.mq@16AE8 = 0C0000FD66040410</action>
            <action>maincpu.mq@16AF0 = 00100C0000FE6604</action>
            <action>maincpu.mq@16AF8 = 061000100C0000EF</action>
            <action>maincpu.mq@16B00 = 660212900C0000DF</action>
            <action>maincpu.mq@16B08 = 660412BC003F60BC</action>
            <!--
            16AC0 | 41F9 0006 1000 : lea     $61000.l, A0 // sound code address
            16AC6 | 43F9 0007 C00B : lea     $7c00b.l, A1 // sound latch address
            16ACC | 1200           : move.b  D0, D1
            16ACE | 1039 0007 8001 : move.b  $78001.l, D0 // read input
            16AD4 | B200           : cmp.b   D0, D1
            16AD6 | 67F4           : beq     $16acc
            16AD8 | 0C00 00FB      : cmpi.b  #-$5, D0
            16ADC | 6602           : bne     $16ae0
            16ADE | 5310           : subq.b  #1, (A0)     // decrease code -01
            16AE0 | 0C00 00F7      : cmpi.b  #-$9, D0
            16AE4 | 6602           : bne     $16ae8
            16AE6 | 5210           : addq.b  #1, (A0)     // increase code +01
            16AE8 | 0C00 00FD      : cmpi.b  #-$3, D0
            16AEC | 6604           : bne     $16af2
            16AEE | 0410 0010      : subi.b  #$10, (A0)   // decrease code -10
            16AF2 | 0C00 00FE      : cmpi.b  #-$2, D0
            16AF6 | 6604           : bne     $16afc
            16AF8 | 0610 0010      : addi.b  #$10, (A0)   // increase code +10
            16AFC | 0C00 00EF      : cmpi.b  #-$11, D0
            16B00 | 6602           : bne     $16b04
            16B02 | 1290           : move.b  (A0), (A1)   // play sound
            16B04 | 0C00 00DF      : cmpi.b  #-$21, D0
            16B08 | 6604           : bne     $16b0e
            16B0A | 12BC 003F      : move.b  #$3f, (A1)   // stop sound
            16B0E | 60BC           : bra     $16acc
            -->
        </script>
        <script state="run">
            <output format="----- legion sound test mode -----" line="10" align="center" />
            <output format="left : decrease code -01"           line="11" align="center" />
            <output format="right : increase code +01"          line="12" align="center" />
            <output format="down : decrease code -10"           line="13" align="center" />
            <output format="up : increase code +10"             line="14" align="center" />
            <output format="button 1 : play sound"              line="15" align="center" />
            <output format="button 2 : stop sound"              line="16" align="center" />
            <output format="----------------------------"       line="17" align="center" />
            <output format="&lt;&lt; sound code %2.2X &gt;&gt;" line="19" align="center"  >
                <argument>maincpu.pb@61000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@002B8 = 0001569A        </action>
            <action>maincpu.mq@16AC0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16AC8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16AD0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16AD8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16AE0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16AE8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16AF0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16AF8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16B08 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16B00 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@01B6 = 0002</action>
        </script>
        <script state="off">
            <action>maincpu.mw@01B6 = 017E</action>
        </script>
    </cheat>

</mamecheat>
legionj2.xml

Code: Select all

<!-- Chouji Meikyuu Legion (Japan ver 1.05, set 2) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <!-- objects -->
            <action>maincpu.md@D582 = 303C0000</action>
            <action>maincpu.md@D59E = 303C0000</action>
            <action>maincpu.md@D60A = 303C0000</action>
            <action>maincpu.md@D62A = 303C0000</action>
            <action>maincpu.md@D64A = 303C0000</action>
            <action>maincpu.md@D6F2 = 303C0000</action>
            <action>maincpu.md@D70E = 303C0000</action>
            <action>maincpu.md@D77A = 303C0000</action>
            <action>maincpu.md@D794 = 303C0000</action>
            <!-- background -->
            <action>maincpu.md@12C80 = 70004E75</action>
        </script>
        <script state="off">
            <action>maincpu.md@0D582 = 610008D0</action>
            <action>maincpu.md@0D59E = 610008B4</action>
            <action>maincpu.md@0D60A = 61000848</action>
            <action>maincpu.md@0D62A = 61000828</action>
            <action>maincpu.md@0D64A = 61000808</action>
            <action>maincpu.md@0D6F2 = 61000760</action>
            <action>maincpu.md@0D70E = 61000744</action>
            <action>maincpu.md@0D77A = 610006D8</action>
            <action>maincpu.md@0D794 = 610006BE</action>
            <action>maincpu.md@12C80 = 0C410190</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@6907 = 01</action>
        </script>
        <script state="off">
            <action>maincpu.mb@6907 = 03</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0001">01 (slow)</item>
            <item value="0x0002">02       </item>
            <item value="0x0004">03       </item>
            <item value="0x0006">04       </item>
            <item value="0x0008">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mw@F536 = 303C</action> <!-- up -->
            <action>maincpu.mw@F59A = 303C</action> <!-- down -->
            <action>maincpu.mw@F5DC = 303C</action> <!-- left -->
            <action>maincpu.mw@F628 = 303C</action> <!-- right -->
        </script>
        <script state="change">
            <action>maincpu.mw@F538 = param</action>
            <action>maincpu.mw@F59C = param</action>
            <action>maincpu.mw@F5DE = param</action>
            <action>maincpu.mw@F62A = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@F536 = 102E001D</action>
            <action>maincpu.md@F59A = 102E001D</action>
            <action>maincpu.md@F5DC = 102E001C</action>
            <action>maincpu.md@F628 = 102E001C</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x0001">01 (slow)</item>
            <item value="0x0008">02       </item>
            <item value="0x000c">03       </item>
            <item value="0x0010">04       </item>
            <item value="0x0014">05 (fast)</item>
        </parameter>
        <script state="on">
            <!-- normal shot -->
            <action>maincpu.mw@0688E = 303C            </action>
            <action>maincpu.mq@06892 = 4EB900016AA03D7B</action>
            <action>maincpu.mq@16AA0 = D16E000630390006</action>
            <action>maincpu.mq@16AA8 = 2CB44E75FFFFFFFF</action>
            <!--
            0688E | 303C xxxx      : move.w  #$xx, D0
            06892 | 4EB9 0001 6AA0 : jsr     $16aa0.l
            =============================================
            16AA0 | D16E 0006      : add.w   D0, ($6,A6)
            16AA4 | 3039 0006 2CB4 : move.w  $62cb4.l, D0
            16AAA | 4E75           : rts
            -->
            <!-- laser -->
            <action>maincpu.mw@068CA = 303C            </action>
            <action>maincpu.mq@068CE = 4EB900016AB0641A</action>
            <action>maincpu.mq@16AB0 = D16E00060C6E0003</action>
            <action>maincpu.mq@16AB8 = 000E4E75FFFFFFFF</action>
            <!--
            068CA | 303C xxxx      : move.w  #$xx, D0
            068CE | 4EB9 0001 6AB0 : jsr     $16ab0.l
            =============================================
            16AB0 | D16E 0006      : add.w   D0, ($6,A6)
            16AB4 | 0C6E 0003 000E : cmpi.w  #$3, ($e,A6)
            16ABA | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@06890 = param</action>
            <action>maincpu.mw@068CC = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@0688E = 506E0006        </action>
            <action>maincpu.mq@06892 = 303900062CB43D7B</action>
            <action>maincpu.mq@16AA0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16AA8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.md@068CA = 506E0006        </action>
            <action>maincpu.mq@068CE = 0C6E0003000E641A</action>
            <action>maincpu.mq@16AB0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16AB8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.md@002B8 = 00016AC0        </action>
            <action>maincpu.mq@16AC0 = 41F90006100043F9</action>
            <action>maincpu.mq@16AC8 = 0007C00B12001039</action>
            <action>maincpu.mq@16AD0 = 00078001B20067F4</action>
            <action>maincpu.mq@16AD8 = 0C0000FB66025310</action>
            <action>maincpu.mq@16AE0 = 0C0000F766025210</action>
            <action>maincpu.mq@16AE8 = 0C0000FD66040410</action>
            <action>maincpu.mq@16AF0 = 00100C0000FE6604</action>
            <action>maincpu.mq@16AF8 = 061000100C0000EF</action>
            <action>maincpu.mq@16B00 = 660212900C0000DF</action>
            <action>maincpu.mq@16B08 = 660412BC003F60BC</action>
            <!--
            16AC0 | 41F9 0006 1000 : lea     $61000.l, A0 // sound code address
            16AC6 | 43F9 0007 C00B : lea     $7c00b.l, A1 // sound latch address
            16ACC | 1200           : move.b  D0, D1
            16ACE | 1039 0007 8001 : move.b  $78001.l, D0 // read input
            16AD4 | B200           : cmp.b   D0, D1
            16AD6 | 67F4           : beq     $16acc
            16AD8 | 0C00 00FB      : cmpi.b  #-$5, D0
            16ADC | 6602           : bne     $16ae0
            16ADE | 5310           : subq.b  #1, (A0)     // decrease code -01
            16AE0 | 0C00 00F7      : cmpi.b  #-$9, D0
            16AE4 | 6602           : bne     $16ae8
            16AE6 | 5210           : addq.b  #1, (A0)     // increase code +01
            16AE8 | 0C00 00FD      : cmpi.b  #-$3, D0
            16AEC | 6604           : bne     $16af2
            16AEE | 0410 0010      : subi.b  #$10, (A0)   // decrease code -10
            16AF2 | 0C00 00FE      : cmpi.b  #-$2, D0
            16AF6 | 6604           : bne     $16afc
            16AF8 | 0610 0010      : addi.b  #$10, (A0)   // increase code +10
            16AFC | 0C00 00EF      : cmpi.b  #-$11, D0
            16B00 | 6602           : bne     $16b04
            16B02 | 1290           : move.b  (A0), (A1)   // play sound
            16B04 | 0C00 00DF      : cmpi.b  #-$21, D0
            16B08 | 6604           : bne     $16b0e
            16B0A | 12BC 003F      : move.b  #$3f, (A1)   // stop sound
            16B0E | 60BC           : bra     $16acc
            -->
        </script>
        <script state="run">
            <output format="----- legion sound test mode -----" line="10" align="center" />
            <output format="left : decrease code -01"           line="11" align="center" />
            <output format="right : increase code +01"          line="12" align="center" />
            <output format="down : decrease code -10"           line="13" align="center" />
            <output format="up : increase code +10"             line="14" align="center" />
            <output format="button 1 : play sound"              line="15" align="center" />
            <output format="button 2 : stop sound"              line="16" align="center" />
            <output format="----------------------------"       line="17" align="center" />
            <output format="&lt;&lt; sound code %2.2X &gt;&gt;" line="19" align="center"  >
                <argument>maincpu.pb@61000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@002B8 = 0001569A        </action>
            <action>maincpu.mq@16AC0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16AC8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16AD0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16AD8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16AE0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16AE8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16AF0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16AF8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16B08 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16B00 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@01B6 = 0002</action>
        </script>
        <script state="off">
            <action>maincpu.mw@01B6 = 017E</action>
        </script>
    </cheat>

</mamecheat>
legionjb.xml

Code: Select all

<!-- Chouji Meikyuu Legion (Japan ver 1.05, bootleg set 1) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <!-- objects -->
            <action>maincpu.md@D582 = 303C0000</action>
            <action>maincpu.md@D59E = 303C0000</action>
            <action>maincpu.md@D60A = 303C0000</action>
            <action>maincpu.md@D62A = 303C0000</action>
            <action>maincpu.md@D64A = 303C0000</action>
            <action>maincpu.md@D6F2 = 303C0000</action>
            <action>maincpu.md@D70E = 303C0000</action>
            <action>maincpu.md@D77A = 303C0000</action>
            <action>maincpu.md@D794 = 303C0000</action>
            <!-- background -->
            <action>maincpu.md@12C80 = 70004E75</action>
        </script>
        <script state="off">
            <action>maincpu.md@0D582 = 610008D0</action>
            <action>maincpu.md@0D59E = 610008B4</action>
            <action>maincpu.md@0D60A = 61000848</action>
            <action>maincpu.md@0D62A = 61000828</action>
            <action>maincpu.md@0D64A = 61000808</action>
            <action>maincpu.md@0D6F2 = 61000760</action>
            <action>maincpu.md@0D70E = 61000744</action>
            <action>maincpu.md@0D77A = 610006D8</action>
            <action>maincpu.md@0D794 = 610006BE</action>
            <action>maincpu.md@12C80 = 0C410190</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@6907 = 01</action>
        </script>
        <script state="off">
            <action>maincpu.mb@6907 = 03</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0001">01 (slow)</item>
            <item value="0x0002">02       </item>
            <item value="0x0004">03       </item>
            <item value="0x0006">04       </item>
            <item value="0x0008">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mw@F536 = 303C</action> <!-- up -->
            <action>maincpu.mw@F59A = 303C</action> <!-- down -->
            <action>maincpu.mw@F5DC = 303C</action> <!-- left -->
            <action>maincpu.mw@F628 = 303C</action> <!-- right -->
        </script>
        <script state="change">
            <action>maincpu.mw@F538 = param</action>
            <action>maincpu.mw@F59C = param</action>
            <action>maincpu.mw@F5DE = param</action>
            <action>maincpu.mw@F62A = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@F536 = 102E001D</action>
            <action>maincpu.md@F59A = 102E001D</action>
            <action>maincpu.md@F5DC = 102E001C</action>
            <action>maincpu.md@F628 = 102E001C</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x0001">01 (slow)</item>
            <item value="0x0008">02       </item>
            <item value="0x000c">03       </item>
            <item value="0x0010">04       </item>
            <item value="0x0014">05 (fast)</item>
        </parameter>
        <script state="on">
            <!-- normal shot -->
            <action>maincpu.mw@0688E = 303C            </action>
            <action>maincpu.mq@06892 = 4EB900016AA03D7B</action>
            <action>maincpu.mq@16AA0 = D16E000630390006</action>
            <action>maincpu.mq@16AA8 = 2CB44E75FFFFFFFF</action>
            <!--
            0688E | 303C xxxx      : move.w  #$xx, D0
            06892 | 4EB9 0001 6AA0 : jsr     $16aa0.l
            =============================================
            16AA0 | D16E 0006      : add.w   D0, ($6,A6)
            16AA4 | 3039 0006 2CB4 : move.w  $62cb4.l, D0
            16AAA | 4E75           : rts
            -->
            <!-- laser -->
            <action>maincpu.mw@068CA = 303C            </action>
            <action>maincpu.mq@068CE = 4EB900016AB0641A</action>
            <action>maincpu.mq@16AB0 = D16E00060C6E0003</action>
            <action>maincpu.mq@16AB8 = 000E4E75FFFFFFFF</action>
            <!--
            068CA | 303C xxxx      : move.w  #$xx, D0
            068CE | 4EB9 0001 6AB0 : jsr     $16ab0.l
            =============================================
            16AB0 | D16E 0006      : add.w   D0, ($6,A6)
            16AB4 | 0C6E 0003 000E : cmpi.w  #$3, ($e,A6)
            16ABA | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@06890 = param</action>
            <action>maincpu.mw@068CC = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@0688E = 506E0006        </action>
            <action>maincpu.mq@06892 = 303900062CB43D7B</action>
            <action>maincpu.mq@16AA0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16AA8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.md@068CA = 506E0006        </action>
            <action>maincpu.mq@068CE = 0C6E0003000E641A</action>
            <action>maincpu.mq@16AB0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16AB8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.md@002B8 = 00016AC0        </action>
            <action>maincpu.mq@16AC0 = 41F90006100043F9</action>
            <action>maincpu.mq@16AC8 = 0007C00B12001039</action>
            <action>maincpu.mq@16AD0 = 00078001B20067F4</action>
            <action>maincpu.mq@16AD8 = 0C0000FB66025310</action>
            <action>maincpu.mq@16AE0 = 0C0000F766025210</action>
            <action>maincpu.mq@16AE8 = 0C0000FD66040410</action>
            <action>maincpu.mq@16AF0 = 00100C0000FE6604</action>
            <action>maincpu.mq@16AF8 = 061000100C0000EF</action>
            <action>maincpu.mq@16B00 = 660212900C0000DF</action>
            <action>maincpu.mq@16B08 = 660412BC003F60BC</action>
            <!--
            16AC0 | 41F9 0006 1000 : lea     $61000.l, A0 // sound code address
            16AC6 | 43F9 0007 C00B : lea     $7c00b.l, A1 // sound latch address
            16ACC | 1200           : move.b  D0, D1
            16ACE | 1039 0007 8001 : move.b  $78001.l, D0 // read input
            16AD4 | B200           : cmp.b   D0, D1
            16AD6 | 67F4           : beq     $16acc
            16AD8 | 0C00 00FB      : cmpi.b  #-$5, D0
            16ADC | 6602           : bne     $16ae0
            16ADE | 5310           : subq.b  #1, (A0)     // decrease code -01
            16AE0 | 0C00 00F7      : cmpi.b  #-$9, D0
            16AE4 | 6602           : bne     $16ae8
            16AE6 | 5210           : addq.b  #1, (A0)     // increase code +01
            16AE8 | 0C00 00FD      : cmpi.b  #-$3, D0
            16AEC | 6604           : bne     $16af2
            16AEE | 0410 0010      : subi.b  #$10, (A0)   // decrease code -10
            16AF2 | 0C00 00FE      : cmpi.b  #-$2, D0
            16AF6 | 6604           : bne     $16afc
            16AF8 | 0610 0010      : addi.b  #$10, (A0)   // increase code +10
            16AFC | 0C00 00EF      : cmpi.b  #-$11, D0
            16B00 | 6602           : bne     $16b04
            16B02 | 1290           : move.b  (A0), (A1)   // play sound
            16B04 | 0C00 00DF      : cmpi.b  #-$21, D0
            16B08 | 6604           : bne     $16b0e
            16B0A | 12BC 003F      : move.b  #$3f, (A1)   // stop sound
            16B0E | 60BC           : bra     $16acc
            -->
        </script>
        <script state="run">
            <output format="----- legion sound test mode -----" line="10" align="center" />
            <output format="left : decrease code -01"           line="11" align="center" />
            <output format="right : increase code +01"          line="12" align="center" />
            <output format="down : decrease code -10"           line="13" align="center" />
            <output format="up : increase code +10"             line="14" align="center" />
            <output format="button 1 : play sound"              line="15" align="center" />
            <output format="button 2 : stop sound"              line="16" align="center" />
            <output format="----------------------------"       line="17" align="center" />
            <output format="&lt;&lt; sound code %2.2X &gt;&gt;" line="19" align="center"  >
                <argument>maincpu.pb@61000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@002B8 = 0001569A        </action>
            <action>maincpu.mq@16AC0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16AC8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16AD0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16AD8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16AE0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16AE8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16AF0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16AF8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16B08 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16B00 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@01B6 = 0002</action>
        </script>
        <script state="off">
            <action>maincpu.mw@01B6 = 017E</action>
        </script>
    </cheat>

</mamecheat>
legionjb2.xml

Code: Select all

<!-- Chouji Meikyuu Legion (Japan ver 1.05, bootleg set 2) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <!-- objects -->
            <action>maincpu.md@D582 = 303C0000</action>
            <action>maincpu.md@D59E = 303C0000</action>
            <action>maincpu.md@D60A = 303C0000</action>
            <action>maincpu.md@D62A = 303C0000</action>
            <action>maincpu.md@D64A = 303C0000</action>
            <action>maincpu.md@D6F2 = 303C0000</action>
            <action>maincpu.md@D70E = 303C0000</action>
            <action>maincpu.md@D77A = 303C0000</action>
            <action>maincpu.md@D794 = 303C0000</action>
            <!-- background -->
            <action>maincpu.md@12C80 = 70004E75</action>
        </script>
        <script state="off">
            <action>maincpu.md@0D582 = 610008D0</action>
            <action>maincpu.md@0D59E = 610008B4</action>
            <action>maincpu.md@0D60A = 61000848</action>
            <action>maincpu.md@0D62A = 61000828</action>
            <action>maincpu.md@0D64A = 61000808</action>
            <action>maincpu.md@0D6F2 = 61000760</action>
            <action>maincpu.md@0D70E = 61000744</action>
            <action>maincpu.md@0D77A = 610006D8</action>
            <action>maincpu.md@0D794 = 610006BE</action>
            <action>maincpu.md@12C80 = 0C410190</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@6907 = 01</action>
        </script>
        <script state="off">
            <action>maincpu.mb@6907 = 03</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0001">01 (slow)</item>
            <item value="0x0002">02       </item>
            <item value="0x0004">03       </item>
            <item value="0x0006">04       </item>
            <item value="0x0008">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mw@F536 = 303C</action> <!-- up -->
            <action>maincpu.mw@F59A = 303C</action> <!-- down -->
            <action>maincpu.mw@F5DC = 303C</action> <!-- left -->
            <action>maincpu.mw@F628 = 303C</action> <!-- right -->
        </script>
        <script state="change">
            <action>maincpu.mw@F538 = param</action>
            <action>maincpu.mw@F59C = param</action>
            <action>maincpu.mw@F5DE = param</action>
            <action>maincpu.mw@F62A = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@F536 = 102E001D</action>
            <action>maincpu.md@F59A = 102E001D</action>
            <action>maincpu.md@F5DC = 102E001C</action>
            <action>maincpu.md@F628 = 102E001C</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x0001">01 (slow)</item>
            <item value="0x0008">02       </item>
            <item value="0x000c">03       </item>
            <item value="0x0010">04       </item>
            <item value="0x0014">05 (fast)</item>
        </parameter>
        <script state="on">
            <!-- normal shot -->
            <action>maincpu.mw@0688E = 303C            </action>
            <action>maincpu.mq@06892 = 4EB900016AA03D7B</action>
            <action>maincpu.mq@16AA0 = D16E000630390006</action>
            <action>maincpu.mq@16AA8 = 2CB44E75FFFFFFFF</action>
            <!--
            0688E | 303C xxxx      : move.w  #$xx, D0
            06892 | 4EB9 0001 6AA0 : jsr     $16aa0.l
            =============================================
            16AA0 | D16E 0006      : add.w   D0, ($6,A6)
            16AA4 | 3039 0006 2CB4 : move.w  $62cb4.l, D0
            16AAA | 4E75           : rts
            -->
            <!-- laser -->
            <action>maincpu.mw@068CA = 303C            </action>
            <action>maincpu.mq@068CE = 4EB900016AB0641A</action>
            <action>maincpu.mq@16AB0 = D16E00060C6E0003</action>
            <action>maincpu.mq@16AB8 = 000E4E75FFFFFFFF</action>
            <!--
            068CA | 303C xxxx      : move.w  #$xx, D0
            068CE | 4EB9 0001 6AB0 : jsr     $16ab0.l
            =============================================
            16AB0 | D16E 0006      : add.w   D0, ($6,A6)
            16AB4 | 0C6E 0003 000E : cmpi.w  #$3, ($e,A6)
            16ABA | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@06890 = param</action>
            <action>maincpu.mw@068CC = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@0688E = 506E0006        </action>
            <action>maincpu.mq@06892 = 303900062CB43D7B</action>
            <action>maincpu.mq@16AA0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16AA8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.md@068CA = 506E0006        </action>
            <action>maincpu.mq@068CE = 0C6E0003000E641A</action>
            <action>maincpu.mq@16AB0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16AB8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.md@002B8 = 00016AC0        </action>
            <action>maincpu.mq@16AC0 = 41F90006100043F9</action>
            <action>maincpu.mq@16AC8 = 0007C00B12001039</action>
            <action>maincpu.mq@16AD0 = 00078001B20067F4</action>
            <action>maincpu.mq@16AD8 = 0C0000FB66025310</action>
            <action>maincpu.mq@16AE0 = 0C0000F766025210</action>
            <action>maincpu.mq@16AE8 = 0C0000FD66040410</action>
            <action>maincpu.mq@16AF0 = 00100C0000FE6604</action>
            <action>maincpu.mq@16AF8 = 061000100C0000EF</action>
            <action>maincpu.mq@16B00 = 660212900C0000DF</action>
            <action>maincpu.mq@16B08 = 660412BC003F60BC</action>
            <!--
            16AC0 | 41F9 0006 1000 : lea     $61000.l, A0 // sound code address
            16AC6 | 43F9 0007 C00B : lea     $7c00b.l, A1 // sound latch address
            16ACC | 1200           : move.b  D0, D1
            16ACE | 1039 0007 8001 : move.b  $78001.l, D0 // read input
            16AD4 | B200           : cmp.b   D0, D1
            16AD6 | 67F4           : beq     $16acc
            16AD8 | 0C00 00FB      : cmpi.b  #-$5, D0
            16ADC | 6602           : bne     $16ae0
            16ADE | 5310           : subq.b  #1, (A0)     // decrease code -01
            16AE0 | 0C00 00F7      : cmpi.b  #-$9, D0
            16AE4 | 6602           : bne     $16ae8
            16AE6 | 5210           : addq.b  #1, (A0)     // increase code +01
            16AE8 | 0C00 00FD      : cmpi.b  #-$3, D0
            16AEC | 6604           : bne     $16af2
            16AEE | 0410 0010      : subi.b  #$10, (A0)   // decrease code -10
            16AF2 | 0C00 00FE      : cmpi.b  #-$2, D0
            16AF6 | 6604           : bne     $16afc
            16AF8 | 0610 0010      : addi.b  #$10, (A0)   // increase code +10
            16AFC | 0C00 00EF      : cmpi.b  #-$11, D0
            16B00 | 6602           : bne     $16b04
            16B02 | 1290           : move.b  (A0), (A1)   // play sound
            16B04 | 0C00 00DF      : cmpi.b  #-$21, D0
            16B08 | 6604           : bne     $16b0e
            16B0A | 12BC 003F      : move.b  #$3f, (A1)   // stop sound
            16B0E | 60BC           : bra     $16acc
            -->
        </script>
        <script state="run">
            <output format="----- legion sound test mode -----" line="10" align="center" />
            <output format="left : decrease code -01"           line="11" align="center" />
            <output format="right : increase code +01"          line="12" align="center" />
            <output format="down : decrease code -10"           line="13" align="center" />
            <output format="up : increase code +10"             line="14" align="center" />
            <output format="button 1 : play sound"              line="15" align="center" />
            <output format="button 2 : stop sound"              line="16" align="center" />
            <output format="----------------------------"       line="17" align="center" />
            <output format="&lt;&lt; sound code %2.2X &gt;&gt;" line="19" align="center"  >
                <argument>maincpu.pb@61000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@002B8 = 0001569A        </action>
            <action>maincpu.mq@16AC0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16AC8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16AD0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16AD8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16AE0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16AE8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16AF0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16AF8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16B08 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@16B00 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@01B6 = 0002</action>
        </script>
        <script state="off">
            <action>maincpu.mw@01B6 = 017E</action>
        </script>
    </cheat>

</mamecheat>
Post Reply