[s1945j] Strikers 1945

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

[s1945j] Strikers 1945

Post by jman »

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>maincpu.mb@01670 = 60</action> <!-- P1 bullet -->
        <action>maincpu.mb@016f0 = 60</action> <!-- P2 bullet -->
        <action>maincpu.mb@116f6 = 60</action> <!-- P1 enemy -->
        <action>maincpu.mb@11788 = 60</action> <!-- P2 enemy -->
    </script>
    <script state="off">
        <action>maincpu.mb@01670 = 66</action>
        <action>maincpu.mb@016f0 = 66</action>
        <action>maincpu.mb@116f6 = 66</action>
        <action>maincpu.mb@11788 = 66</action>
    </script>
</cheat>

<cheat desc="auto fire - main shot">
    <script state="on">
        <action>maincpu.mq@0ba0a = 357c0002002c6020</action> <!-- move.w #$2,($2c,A2) / bra $ba32 -->
        <action>maincpu.md@0ba7a =         357c0000</action> <!-- move.w #$0,($2e,A2) -->
        <action>maincpu.mw@10c4c =             0002</action>
    </script>
    <script state="off">
        <action>maincpu.mq@0ba0a = 302a006602400008</action>
        <action>maincpu.md@0ba7a =         3568003a</action>
        <action>maincpu.mw@10c4c =             0128</action>
    </script>
</cheat>

<cheat desc="maximum gold bar bonus">
    <script state="on">
        <action>maincpu.md@94b4 = 307c0013</action> <!-- movea.w #$13,A0 -->
    </script>
    <script state="off">
        <action>maincpu.md@94b4 = 306b0010</action>
    </script>
</cheat>

<cheat desc="gold medals">
    <script state="on">
        <action>maincpu.mw@3b5c = 4e71</action> <!-- time -->
        <action>maincpu.mw@3bb8 = 4e71</action> <!-- gold bar -->
        <action>maincpu.mw@3c62 = 4e71</action> <!-- shoot down -->
    </script>
    <script state="off">
        <action>maincpu.mw@3b5c = 6e0e</action>
        <action>maincpu.mw@3bb8 = 6d0e</action>
        <action>maincpu.mw@3c62 = 6d0e</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter min="1" max="8">
        <item value="0x00018000">01 (slow)</item>
        <item value="0x00028000">02       </item>
        <item value="0x00038000">03       </item>
        <item value="0x00048000">04       </item>
        <item value="0x00058000">05 (fast)</item>
    </parameter>
    <script state="on">
        <action>maincpu.mq@0095c6 = 06a9000000000004</action> <!-- up (addi.l #$xx,($4,A1)) -->
        <action>maincpu.mq@0095ee = 04a9000000000004</action> <!-- down (subi.l #$xx,($4,A1))-->
        <action>maincpu.mq@009616 = 0491000000004a69</action> <!-- left (subi.l #$xx,(A1)) -->
        <action>maincpu.mq@009640 = 0691000000004a69</action> <!-- right (addi.l #$xx,(A1)) -->
        <action>maincpu.mq@00966a = 0491000000002029</action> <!-- upper-left : left (subi.l #$xx,(A1))-->
        <action>maincpu.mq@009670 = 06a9000000000004</action> <!-- upper-left : up (addi.l #$xx,($4,A1)) -->
        <action>maincpu.mq@00969c = 0691000000002029</action> <!-- upper-right : right (addi.l #$xx,(A1)) -->
        <action>maincpu.mq@0096a2 = 06a9000000000004</action> <!-- upper-right : up (addi.l #$xx,($4,A1)) -->
        <action>maincpu.mq@0096cc = 0491000000002029</action> <!-- lower-left : left (subi.l #$xx,(A1)) -->
        <action>maincpu.mq@0096d2 = 04a9000000000004</action> <!-- lower-left : down (subi.l #$xx,($4,A1)) -->
        <action>maincpu.mq@0096fa = 0691000000002029</action> <!-- lower-right : right (addi.l #$xx,(A1)) -->
        <action>maincpu.mq@009700 = 04a9000000000004</action> <!-- lower-right : down (subi.l #$xx,($4,A1)) -->
    </script>
    <script state="change">
        <action>maincpu.md@0095c8 = param</action>
        <action>maincpu.md@0095f0 = param</action>
        <action>maincpu.md@009618 = param</action>
        <action>maincpu.md@009642 = param</action>
        <action>maincpu.md@00966c = param</action>
        <action>maincpu.md@009672 = param</action>
        <action>maincpu.md@00969e = param</action>
        <action>maincpu.md@0096a4 = param</action>
        <action>maincpu.md@0096ce = param</action>
        <action>maincpu.md@0096d4 = param</action>
        <action>maincpu.md@0096fc = param</action>
        <action>maincpu.md@009702 = param</action>
    </script>
    <script state="off">
        <action>maincpu.mq@0095c6 = 2029000cd1a90004</action>
        <action>maincpu.mq@0095ee = 2029000c91a90004</action>
        <action>maincpu.mq@009616 = 2029000891914a69</action>
        <action>maincpu.mq@009640 = 20290008d1914a69</action>
        <action>maincpu.mq@00966a = 2029001091912029</action>
        <action>maincpu.mq@009670 = 20290014d1a90004</action>
        <action>maincpu.mq@00969c = 20290010d1912029</action>
        <action>maincpu.mq@0096a2 = 20290014d1a90004</action>
        <action>maincpu.mq@0096cc = 2029001091912029</action>
        <action>maincpu.mq@0096d2 = 2029001491a90004</action>
        <action>maincpu.mq@0096fa = 20290010d1912029</action>
        <action>maincpu.mq@009700 = 2029001491a90004</action>
    </script>
</cheat>

<cheat desc="bullet speed - main shot">
    <parameter>
        <item value="0x0010">01 (slow)</item>
        <item value="0x0080">02       </item>
        <item value="0x0100">03       </item>
        <item value="0x0180">04       </item>
        <item value="0x0200">05 (fast)</item>
    </parameter>
    <script state="on">
        <action>maincpu.md@10d04 =         00080050</action>
        <action>maincpu.mq@80050 = 303c00004ef90001</action>
        <action>maincpu.mq@80058 = 9528000000000000</action>
        <!--
        80050 | 303c xxxx      : move.w #$xx,D0
        80054 | 4ef9 0001 9528 : jmp    $19528.l
        -->
    </script>
    <script state="change">
        <action>maincpu.mw@80052 = param</action>
    </script>
    <script state="off">
        <action>maincpu.md@10d04 =         00019524</action>
        <action>maincpu.mq@80050 = 0000000000000000</action>
        <action>maincpu.mq@80058 = 0000000000000000</action>
    </script>
</cheat>

<cheat desc="unlock special test mode">
    <comment>reset the game (F3) to enter special test mode</comment>
    <script state="on">
        <action>maincpu.mw@14988 = 4e71</action> <!-- go to test mode -->
        <action>maincpu.mb@156c2 =   60</action> <!-- add test mode items -->
    </script>
    <script state="off">
        <action>maincpu.mw@14988 = 6758</action>
        <action>maincpu.mb@156c2 =   66</action>
    </script>
</cheat>

<cheat desc="sound test mode">
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action>maincpu.md@00444 =         00080000</action>
        <action>maincpu.mq@80000 = 41f900fe010043f9</action>
        <action>maincpu.mq@80008 = 00c0001112001039</action>
        <action>maincpu.mq@80010 = 00c00000b20067f4</action>
        <action>maincpu.mq@80018 = 0c0000ef66025310</action>
        <action>maincpu.mq@80020 = 0c0000df66025210</action>
        <action>maincpu.mq@80028 = 0c0000bf66040410</action>
        <action>maincpu.mq@80030 = 00100c00007f6604</action>
        <action>maincpu.mq@80038 = 061000100c0000f7</action>
        <action>maincpu.mq@80040 = 660212900c0000fb</action>
        <action>maincpu.mq@80048 = 660412bc000160bc</action>
        <!--
        80000 | 41f9 00fe 0100 : lea    $fe0100.l,A0 // sound code address
        80006 | 43f9 00c0 0011 : lea    $c00011.l,A1 // sound latch address
        8000c | 1200           : move.b D0, D1
        8000e | 1039 00c0 0000 : move.b $c00000.l,D0 // read input
        80014 | b200           : cmp.b  D0,D1
        80016 | 67f4           : beq    $8000c
        80018 | 0c00 00ef      : cmpi.b #-$11,D0
        8001c | 6602           : bne    $80020
        8001e | 5310           : subq.b #1,(A0)      // decrease code -01
        80020 | 0c00 00df      : cmpi.b #-$21,D0
        80024 | 6602           : bne    $80028
        80026 | 5210           : addq.b #1,(A0)      // increase code +01
        80028 | 0c00 00bf      : cmpi.b #-$41,D0
        8002c | 6604           : bne    $80032
        8002e | 0410 0010      : subi.b #$10,(A0)    // decrease code -10
        80032 | 0c00 007f      : cmpi.b #$7f,D0
        80036 | 6604           : bne    $8003c
        80038 | 0610 0010      : addi.b #$10,(A0)    // increase code +10
        8003c | 0c00 00f7      : cmpi.b #-$9,D0
        80040 | 6602           : bne    $80044
        80042 | 1290           : move.b (A0),(A1)    // play sound
        80044 | 0c00 00fb      : cmpi.b #-$5,D0
        80048 | 6604           : bne    $8004e
        8004a | 12bc 0001      : move.b #$1,(A1)     // stop sound
        8004e | 60bc           : bra    $8000c
        -->
    </script>
    <script state="run">
        <output format="----- strikers 1945 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@fe0100</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.md@00444 =         0001999e</action>
        <action>maincpu.mq@80000 = 0000000000000000</action>
        <action>maincpu.mq@80008 = 0000000000000000</action>
        <action>maincpu.mq@80010 = 0000000000000000</action>
        <action>maincpu.mq@80018 = 0000000000000000</action>
        <action>maincpu.mq@80020 = 0000000000000000</action>
        <action>maincpu.mq@80028 = 0000000000000000</action>
        <action>maincpu.mq@80030 = 0000000000000000</action>
        <action>maincpu.mq@80038 = 0000000000000000</action>
        <action>maincpu.mq@80040 = 0000000000000000</action>
        <action>maincpu.mq@80048 = 0000000000000000</action>
    </script>
</cheat>
"gold medals" is unique. You can get gold medals easily in "result" at the end of first lap and see secret gfx.
ImageImage
Also you can see secret gfx in "special test mode" -> "ending select" (use "unlock special test mode" code)

BTW, "select starging level now" in official database based on 0.221 doesn't work.

Code: Select all

<cheat desc="Select Starting Level Now!"> <comment>Enable on the select plane screen</comment>
  <parameter min="1" max="16" step="1"/>
  <script state="on">
    <action>maincpu.pb@FE2221=FF</action>
  </script>
  <script state="change">
    <action>maincpu.pb@FE2221=(param-1)</action>
  </script>
</cheat>
This will be the same problem as b-wings (0xff is replaced by (param-1) and cleared "change" value by game program code)

Code: Select all

<cheat desc="select starting level (test)">
    <parameter min="01" max="16" step="01"/>
    <script state="run">
        <action condition="maincpu.pb@fe2221 == 00">maincpu.pb@fe2221 = (param - 1)</action>
    </script>
</cheat>
The above code will work but it requires more test. No "set" sub-label in cheat menu because of using "run" state.
jman
Posts: 842
Joined: Tue Dec 01, 2020 1:24 pm

[s1945]+ Strikers 1945

Post by jman »

s1945.xml

Code: Select all

<!-- Strikers 1945 (World) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@01670 = 60</action> <!-- P1 bullet -->
            <action>maincpu.mb@016F0 = 60</action> <!-- P2 bullet -->
            <action>maincpu.mb@11682 = 60</action> <!-- P1 enemy -->
            <action>maincpu.mb@11714 = 60</action> <!-- P2 enemy -->
        </script>
        <script state="off">
            <action>maincpu.mb@01670 = 66</action>
            <action>maincpu.mb@016F0 = 66</action>
            <action>maincpu.mb@11682 = 66</action>
            <action>maincpu.mb@11714 = 66</action>
        </script>
    </cheat>

    <cheat desc="auto fire - main shot">
        <script state="on">
            <action>maincpu.mq@0B9C6 = 357C0002002C6020</action> <!-- move.w #$2,($2c,A2) / bra $ba32 -->
            <action>maincpu.mq@0BA36 = 357C0000002E4A6A</action> <!-- move.w #$0,($2e,A2) -->
            <action>maincpu.mq@10BD6 = 6E000002302C003E</action>
        </script>
        <script state="off">
            <action>maincpu.mq@0B9C6 = 302A006602400008</action>
            <action>maincpu.md@0BA36 = 3568003A002E4A6A</action>
            <action>maincpu.mw@10BD6 = 6E000128302C003E</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x00008000">01 (slow)</item>
            <item value="0x00028000">02       </item>
            <item value="0x00048000">03       </item>
            <item value="0x00068000">04       </item>
            <item value="0x00088000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@95BE = 06A9000000000004</action> <!-- up (addi.l #$xx,($4,A1)) -->
            <action>maincpu.mq@95E6 = 04A9000000000004</action> <!-- down (subi.l #$xx,($4,A1))-->
            <action>maincpu.mq@960E = 0491000000004A69</action> <!-- left (subi.l #$xx,(A1)) -->
            <action>maincpu.mq@9638 = 0691000000004A69</action> <!-- right (addi.l #$xx,(A1)) -->
            <action>maincpu.mq@9662 = 0491000000002029</action> <!-- upper-left : left (subi.l #$xx,(A1))-->
            <action>maincpu.mq@9668 = 06A9000000000004</action> <!-- upper-left : up (addi.l #$xx,($4,A1)) -->
            <action>maincpu.mq@9694 = 0691000000002029</action> <!-- upper-right : right (addi.l #$xx,(A1)) -->
            <action>maincpu.mq@969A = 06A9000000000004</action> <!-- upper-right : up (addi.l #$xx,($4,A1)) -->
            <action>maincpu.mq@96C4 = 0491000000002029</action> <!-- lower-left : left (subi.l #$xx,(A1)) -->
            <action>maincpu.mq@96CA = 04A9000000000004</action> <!-- lower-left : down (subi.l #$xx,($4,A1)) -->
            <action>maincpu.mq@96F2 = 0691000000002029</action> <!-- lower-right : right (addi.l #$xx,(A1)) -->
            <action>maincpu.mq@96F8 = 04A9000000000004</action> <!-- lower-right : down (subi.l #$xx,($4,A1)) -->
        </script>
        <script state="change">
            <action>maincpu.md@95C0 = param</action>
            <action>maincpu.md@95E8 = param</action>
            <action>maincpu.md@9610 = param</action>
            <action>maincpu.md@963A = param</action>
            <action>maincpu.md@9664 = param</action>
            <action>maincpu.md@966A = param</action>
            <action>maincpu.md@9696 = param</action>
            <action>maincpu.md@969C = param</action>
            <action>maincpu.md@96C6 = param</action>
            <action>maincpu.md@96CC = param</action>
            <action>maincpu.md@96F4 = param</action>
            <action>maincpu.md@96FA = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@95BE = 2029000CD1A90004</action>
            <action>maincpu.mq@95E6 = 2029000C91A90004</action>
            <action>maincpu.mq@960E = 2029000891914A69</action>
            <action>maincpu.mq@9638 = 20290008D1914A69</action>
            <action>maincpu.mq@9662 = 2029001091912029</action>
            <action>maincpu.mq@9668 = 20290014D1A90004</action>
            <action>maincpu.mq@9694 = 20290010D1912029</action>
            <action>maincpu.mq@969A = 20290014D1A90004</action>
            <action>maincpu.mq@96C4 = 2029001091912029</action>
            <action>maincpu.mq@96CA = 2029001491A90004</action>
            <action>maincpu.mq@96F2 = 20290010D1912029</action>
            <action>maincpu.mq@96F8 = 2029001491A90004</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x00008000">01 (slow)</item>
            <item value="0x00080000">02       </item>
            <item value="0x00100000">03       </item>
            <item value="0x00180000">04       </item>
            <item value="0x00200000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@10C94 = 4EB9000800003568</action>
            <action>maincpu.mq@80000 = 257C000000000010</action>
            <action>maincpu.mq@80008 = 20424E7500000000</action>
            <!--
            80000 | 257C xxxx xxxx 0010 : move.l  #$xxxx, ($10,A2)
            80008 | 2042                : movea.l D2, A0
            8000A | 4E75                : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@80002 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@10C94 = 2540001020423568</action>
            <action>maincpu.mq@80000 = 0000000000000000</action>
            <action>maincpu.mq@80008 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="maximum gold bar bonus">
        <script state="on">
            <action>maincpu.md@94AC = 307C0013</action> <!-- movea.w #$13,A0 -->
        </script>
        <script state="off">
            <action>maincpu.md@94AC = 306B0010</action>
        </script>
    </cheat>

    <cheat desc="gold medals">
        <script state="on">
            <action>maincpu.mw@3B5C = 4E71</action> <!-- time -->
            <action>maincpu.mw@3BB8 = 4E71</action> <!-- gold bar -->
            <action>maincpu.mw@3C62 = 4E71</action> <!-- shoot down -->
        </script>
        <script state="off">
            <action>maincpu.mw@3B5C = 6E0E</action>
            <action>maincpu.mw@3BB8 = 6D0E</action>
            <action>maincpu.mw@3C62 = 6D0E</action>
        </script>
    </cheat>

    <cheat desc="unlock special test mode">
        <comment>reset the game (F3) to enter special test mode</comment>
        <script state="on">
            <action>maincpu.mw@14914 = 4E71</action> <!-- go to test mode -->
            <action>maincpu.mw@1565E = 6004</action> <!-- add test mode items -->
        </script>
        <script state="off">
            <action>maincpu.mw@14914 = 6758</action>
            <action>maincpu.mw@1565E = 6604</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.md@00444 = 00080010        </action>
            <action>maincpu.mq@80010 = 41F900FE000043F9</action>
            <action>maincpu.mq@80018 = 00C0001112001039</action>
            <action>maincpu.mq@80020 = 00C00000B20067F4</action>
            <action>maincpu.mq@80028 = 0C0000EF66025310</action>
            <action>maincpu.mq@80030 = 0C0000DF66025210</action>
            <action>maincpu.mq@80038 = 0C0000BF66040410</action>
            <action>maincpu.mq@80040 = 00100C00007F6604</action>
            <action>maincpu.mq@80048 = 061000100C0000F7</action>
            <action>maincpu.mq@80050 = 660212900C0000FB</action>
            <action>maincpu.mq@80058 = 660412BC000160BC</action>
            <!--
            80010 | 41F9 00FE 0000 : lea     $fe0000.l, A0 // sound code address
            80016 | 43F9 00C0 0011 : lea     $c00011.l, A1 // sound latch address
            8001C | 1200           : move.b  D0, D1
            8001E | 1039 00C0 0000 : move.b  $c00000.l, D0 // read input
            80024 | B200           : cmp.b   D0, D1
            80026 | 67F4           : beq     $8001c
            80028 | 0C00 00EF      : cmpi.b  #-$11, D0
            8002C | 6602           : bne     $80030
            8002E | 5310           : subq.b  #1, (A0)      // decrease code -01
            80030 | 0C00 00DF      : cmpi.b  #-$21, D0
            80034 | 6602           : bne     $80038
            80036 | 5210           : addq.b  #1, (A0)      // increase code +01
            80038 | 0C00 00BF      : cmpi.b  #-$41, D0
            8003C | 6604           : bne     $80042
            8003E | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            80042 | 0C00 007F      : cmpi.b  #$7f, D0
            80046 | 6604           : bne     $8004c
            80048 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            8004C | 0C00 00F7      : cmpi.b  #-$9, D0
            80050 | 6602           : bne     $80054
            80052 | 1290           : move.b  (A0), (A1)    // play sound
            80054 | 0C00 00FB      : cmpi.b  #-$5, D0
            80058 | 6604           : bne     $8005e
            8005A | 12BC 0001      : move.b  #$1, (A1)     // stop sound
            8005E | 60BC           : bra     $8001c
            -->
        </script>
        <script state="run">
            <output format="----- strikers 1945 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@FE0000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@00444 = 0001993A        </action>
            <action>maincpu.mq@80000 = 0000000000000000</action>
            <action>maincpu.mq@80008 = 0000000000000000</action>
            <action>maincpu.mq@80010 = 0000000000000000</action>
            <action>maincpu.mq@80018 = 0000000000000000</action>
            <action>maincpu.mq@80020 = 0000000000000000</action>
            <action>maincpu.mq@80028 = 0000000000000000</action>
            <action>maincpu.mq@80030 = 0000000000000000</action>
            <action>maincpu.mq@80038 = 0000000000000000</action>
            <action>maincpu.mq@80040 = 0000000000000000</action>
            <action>maincpu.mq@80048 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
s1945a.xml

Code: Select all

<!-- Strikers 1945 (Japan / World) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@01670 = 60</action> <!-- P1 bullet -->
            <action>maincpu.mb@016F0 = 60</action> <!-- P2 bullet -->
            <action>maincpu.mb@1188E = 60</action> <!-- P1 enemy -->
            <action>maincpu.mb@11920 = 60</action> <!-- P2 enemy -->
        </script>
        <script state="off">
            <action>maincpu.mb@01670 = 66</action>
            <action>maincpu.mb@016F0 = 66</action>
            <action>maincpu.mb@1188E = 66</action>
            <action>maincpu.mb@11920 = 66</action>
        </script>
    </cheat>

    <cheat desc="auto fire - main shot">
        <script state="on">
            <action>maincpu.mq@0BB84 = 357C0002002C6020</action> <!-- move.w #$2,($2c,A2) / bra $ba32 -->
            <action>maincpu.mq@0BBF4 = 357C0000002E4A6A</action> <!-- move.w #$0,($2e,A2) -->
            <action>maincpu.mq@10DE2 = 6E000002302C003E</action>
        </script>
        <script state="off">
            <action>maincpu.mq@0BB84 = 302A006602400008</action>
            <action>maincpu.md@0BBF4 = 3568003A002E4A6A</action>
            <action>maincpu.mw@10DE2 = 6E000128302C003E</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x00008000">01 (slow)</item>
            <item value="0x00028000">02       </item>
            <item value="0x00048000">03       </item>
            <item value="0x00068000">04       </item>
            <item value="0x00088000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@96AE = 06A9000000000004</action> <!-- up (addi.l #$xx,($4,A1)) -->
            <action>maincpu.mq@96D6 = 04A9000000000004</action> <!-- down (subi.l #$xx,($4,A1))-->
            <action>maincpu.mq@96FE = 0491000000004A69</action> <!-- left (subi.l #$xx,(A1)) -->
            <action>maincpu.mq@9728 = 0691000000004A69</action> <!-- right (addi.l #$xx,(A1)) -->
            <action>maincpu.mq@9752 = 0491000000002029</action> <!-- upper-left : left (subi.l #$xx,(A1))-->
            <action>maincpu.mq@9758 = 06A9000000000004</action> <!-- upper-left : up (addi.l #$xx,($4,A1)) -->
            <action>maincpu.mq@9784 = 0691000000002029</action> <!-- upper-right : right (addi.l #$xx,(A1)) -->
            <action>maincpu.mq@978A = 06A9000000000004</action> <!-- upper-right : up (addi.l #$xx,($4,A1)) -->
            <action>maincpu.mq@97B4 = 0491000000002029</action> <!-- lower-left : left (subi.l #$xx,(A1)) -->
            <action>maincpu.mq@97BA = 04A9000000000004</action> <!-- lower-left : down (subi.l #$xx,($4,A1)) -->
            <action>maincpu.mq@97E2 = 0691000000002029</action> <!-- lower-right : right (addi.l #$xx,(A1)) -->
            <action>maincpu.mq@97E8 = 04A9000000000004</action> <!-- lower-right : down (subi.l #$xx,($4,A1)) -->
        </script>
        <script state="change">
            <action>maincpu.md@96B0 = param</action>
            <action>maincpu.md@96D8 = param</action>
            <action>maincpu.md@9700 = param</action>
            <action>maincpu.md@972A = param</action>
            <action>maincpu.md@9754 = param</action>
            <action>maincpu.md@975A = param</action>
            <action>maincpu.md@9786 = param</action>
            <action>maincpu.md@978C = param</action>
            <action>maincpu.md@97B6 = param</action>
            <action>maincpu.md@97BC = param</action>
            <action>maincpu.md@97E4 = param</action>
            <action>maincpu.md@97EA = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@96AE = 2029000CD1A90004</action>
            <action>maincpu.mq@96D6 = 2029000C91A90004</action>
            <action>maincpu.mq@96FE = 2029000891914A69</action>
            <action>maincpu.mq@9728 = 20290008D1914A69</action>
            <action>maincpu.mq@9752 = 2029001091912029</action>
            <action>maincpu.mq@9758 = 20290014D1A90004</action>
            <action>maincpu.mq@9784 = 20290010D1912029</action>
            <action>maincpu.mq@978A = 20290014D1A90004</action>
            <action>maincpu.mq@97B4 = 2029001091912029</action>
            <action>maincpu.mq@97BA = 2029001491A90004</action>
            <action>maincpu.mq@97E2 = 20290010D1912029</action>
            <action>maincpu.mq@97E8 = 2029001491A90004</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x00008000">01 (slow)</item>
            <item value="0x00080000">02       </item>
            <item value="0x00100000">03       </item>
            <item value="0x00180000">04       </item>
            <item value="0x00200000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@10EA0 = 4EB9000800003568</action>
            <action>maincpu.mq@80000 = 257C000000000010</action>
            <action>maincpu.mq@80008 = 20424E7500000000</action>
            <!--
            80000 | 257C xxxx xxxx 0010 : move.l  #$xxxx, ($10,A2)
            80008 | 2042                : movea.l D2, A0
            8000A | 4E75                : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@80002 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@10EA0 = 2540001020423568</action>
            <action>maincpu.mq@80000 = 0000000000000000</action>
            <action>maincpu.mq@80008 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="maximum gold bar bonus">
        <script state="on">
            <action>maincpu.md@959C = 307C0013</action> <!-- movea.w #$13,A0 -->
        </script>
        <script state="off">
            <action>maincpu.md@959C = 306B0010</action>
        </script>
    </cheat>

    <cheat desc="gold medals">
        <script state="on">
            <action>maincpu.mw@3B5C = 4E71</action> <!-- time -->
            <action>maincpu.mw@3BB8 = 4E71</action> <!-- gold bar -->
            <action>maincpu.mw@3C62 = 4E71</action> <!-- shoot down -->
        </script>
        <script state="off">
            <action>maincpu.mw@3B5C = 6E0E</action>
            <action>maincpu.mw@3BB8 = 6D0E</action>
            <action>maincpu.mw@3C62 = 6D0E</action>
        </script>
    </cheat>

    <cheat desc="unlock special test mode">
        <comment>reset the game (F3) to enter special test mode</comment>
        <script state="on">
            <action>maincpu.mw@14B20 = 4E71</action> <!-- go to test mode -->
            <action>maincpu.mw@1586A = 6004</action> <!-- add test mode items -->
        </script>
        <script state="off">
            <action>maincpu.mw@14B20 = 6758</action>
            <action>maincpu.mw@1586A = 6604</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.md@00444 = 00080010        </action>
            <action>maincpu.mq@80010 = 41F900FE000043F9</action>
            <action>maincpu.mq@80018 = 00C0001112001039</action>
            <action>maincpu.mq@80020 = 00C00000B20067F4</action>
            <action>maincpu.mq@80028 = 0C0000EF66025310</action>
            <action>maincpu.mq@80030 = 0C0000DF66025210</action>
            <action>maincpu.mq@80038 = 0C0000BF66040410</action>
            <action>maincpu.mq@80040 = 00100C00007F6604</action>
            <action>maincpu.mq@80048 = 061000100C0000F7</action>
            <action>maincpu.mq@80050 = 660212900C0000FB</action>
            <action>maincpu.mq@80058 = 660412BC000160BC</action>
            <!--
            80010 | 41F9 00FE 0000 : lea     $fe0000.l, A0 // sound code address
            80016 | 43F9 00C0 0011 : lea     $c00011.l, A1 // sound latch address
            8001C | 1200           : move.b  D0, D1
            8001E | 1039 00C0 0000 : move.b  $c00000.l, D0 // read input
            80024 | B200           : cmp.b   D0, D1
            80026 | 67F4           : beq     $8001c
            80028 | 0C00 00EF      : cmpi.b  #-$11, D0
            8002C | 6602           : bne     $80030
            8002E | 5310           : subq.b  #1, (A0)      // decrease code -01
            80030 | 0C00 00DF      : cmpi.b  #-$21, D0
            80034 | 6602           : bne     $80038
            80036 | 5210           : addq.b  #1, (A0)      // increase code +01
            80038 | 0C00 00BF      : cmpi.b  #-$41, D0
            8003C | 6604           : bne     $80042
            8003E | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            80042 | 0C00 007F      : cmpi.b  #$7f, D0
            80046 | 6604           : bne     $8004c
            80048 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            8004C | 0C00 00F7      : cmpi.b  #-$9, D0
            80050 | 6602           : bne     $80054
            80052 | 1290           : move.b  (A0), (A1)    // play sound
            80054 | 0C00 00FB      : cmpi.b  #-$5, D0
            80058 | 6604           : bne     $8005e
            8005A | 12BC 0001      : move.b  #$1, (A1)     // stop sound
            8005E | 60BC           : bra     $8001c
            -->
        </script>
        <script state="run">
            <output format="----- strikers 1945 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@FE0000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@00444 = 00019B46        </action>
            <action>maincpu.mq@80000 = 0000000000000000</action>
            <action>maincpu.mq@80008 = 0000000000000000</action>
            <action>maincpu.mq@80010 = 0000000000000000</action>
            <action>maincpu.mq@80018 = 0000000000000000</action>
            <action>maincpu.mq@80020 = 0000000000000000</action>
            <action>maincpu.mq@80028 = 0000000000000000</action>
            <action>maincpu.mq@80030 = 0000000000000000</action>
            <action>maincpu.mq@80038 = 0000000000000000</action>
            <action>maincpu.mq@80040 = 0000000000000000</action>
            <action>maincpu.mq@80048 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
s1945j.xml

Code: Select all

<!-- Strikers 1945 (Japan) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@01670 = 60</action> <!-- P1 bullet -->
            <action>maincpu.mb@016F0 = 60</action> <!-- P2 bullet -->
            <action>maincpu.mb@116F6 = 60</action> <!-- P1 enemy -->
            <action>maincpu.mb@11788 = 60</action> <!-- P2 enemy -->
        </script>
        <script state="off">
            <action>maincpu.mb@01670 = 66</action>
            <action>maincpu.mb@016F0 = 66</action>
            <action>maincpu.mb@116F6 = 66</action>
            <action>maincpu.mb@11788 = 66</action>
        </script>
    </cheat>

    <cheat desc="auto fire - main shot">
        <script state="on">
            <action>maincpu.mq@0BA0A = 357C0002002C6020</action> <!-- move.w #$2,($2c,A2) / bra $ba32 -->
            <action>maincpu.mq@0BA7A = 357C0000002E4A6A</action> <!-- move.w #$0,($2e,A2) -->
            <action>maincpu.mq@10C4A = 6E000002302C003E</action>
        </script>
        <script state="off">
            <action>maincpu.mq@0BA0A = 302A006602400008</action>
            <action>maincpu.md@0BA7A = 3568003A002E4A6A</action>
            <action>maincpu.mw@10C4A = 6E000128302C003E</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x00008000">01 (slow)</item>
            <item value="0x00028000">02       </item>
            <item value="0x00048000">03       </item>
            <item value="0x00068000">04       </item>
            <item value="0x00088000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@95C6 = 06A9000000000004</action> <!-- up (addi.l #$xx,($4,A1)) -->
            <action>maincpu.mq@95EE = 04A9000000000004</action> <!-- down (subi.l #$xx,($4,A1))-->
            <action>maincpu.mq@9616 = 0491000000004A69</action> <!-- left (subi.l #$xx,(A1)) -->
            <action>maincpu.mq@9640 = 0691000000004A69</action> <!-- right (addi.l #$xx,(A1)) -->
            <action>maincpu.mq@966A = 0491000000002029</action> <!-- upper-left : left (subi.l #$xx,(A1))-->
            <action>maincpu.mq@9670 = 06A9000000000004</action> <!-- upper-left : up (addi.l #$xx,($4,A1)) -->
            <action>maincpu.mq@969C = 0691000000002029</action> <!-- upper-right : right (addi.l #$xx,(A1)) -->
            <action>maincpu.mq@96A2 = 06A9000000000004</action> <!-- upper-right : up (addi.l #$xx,($4,A1)) -->
            <action>maincpu.mq@96CC = 0491000000002029</action> <!-- lower-left : left (subi.l #$xx,(A1)) -->
            <action>maincpu.mq@96D2 = 04A9000000000004</action> <!-- lower-left : down (subi.l #$xx,($4,A1)) -->
            <action>maincpu.mq@96FA = 0691000000002029</action> <!-- lower-right : right (addi.l #$xx,(A1)) -->
            <action>maincpu.mq@9700 = 04A9000000000004</action> <!-- lower-right : down (subi.l #$xx,($4,A1)) -->
        </script>
        <script state="change">
            <action>maincpu.md@95C8 = param</action>
            <action>maincpu.md@95F0 = param</action>
            <action>maincpu.md@9618 = param</action>
            <action>maincpu.md@9642 = param</action>
            <action>maincpu.md@966C = param</action>
            <action>maincpu.md@9672 = param</action>
            <action>maincpu.md@969E = param</action>
            <action>maincpu.md@96A4 = param</action>
            <action>maincpu.md@96CE = param</action>
            <action>maincpu.md@96D4 = param</action>
            <action>maincpu.md@96FC = param</action>
            <action>maincpu.md@9702 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@95C6 = 2029000CD1A90004</action>
            <action>maincpu.mq@95EE = 2029000C91A90004</action>
            <action>maincpu.mq@9616 = 2029000891914A69</action>
            <action>maincpu.mq@9640 = 20290008D1914A69</action>
            <action>maincpu.mq@966A = 2029001091912029</action>
            <action>maincpu.mq@9670 = 20290014D1A90004</action>
            <action>maincpu.mq@969C = 20290010D1912029</action>
            <action>maincpu.mq@96A2 = 20290014D1A90004</action>
            <action>maincpu.mq@96CC = 2029001091912029</action>
            <action>maincpu.mq@96D2 = 2029001491A90004</action>
            <action>maincpu.mq@96FA = 20290010D1912029</action>
            <action>maincpu.mq@9700 = 2029001491A90004</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x00008000">01 (slow)</item>
            <item value="0x00080000">02       </item>
            <item value="0x00100000">03       </item>
            <item value="0x00180000">04       </item>
            <item value="0x00200000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@10D08 = 4EB9000800003568</action>
            <action>maincpu.mq@80000 = 257C000000000010</action>
            <action>maincpu.mq@80008 = 20424E7500000000</action>
            <!--
            80000 | 257C xxxx xxxx 0010 : move.l  #$xxxx, ($10,A2)
            80008 | 2042                : movea.l D2, A0
            8000A | 4E75                : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@80002 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@10D08 = 2540001020423568</action>
            <action>maincpu.mq@80000 = 0000000000000000</action>
            <action>maincpu.mq@80008 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="maximum gold bar bonus">
        <script state="on">
            <action>maincpu.md@94B4 = 307C0013</action> <!-- movea.w #$13,A0 -->
        </script>
        <script state="off">
            <action>maincpu.md@94B4 = 306B0010</action>
        </script>
    </cheat>

    <cheat desc="gold medals">
        <script state="on">
            <action>maincpu.mw@3B5C = 4E71</action> <!-- time -->
            <action>maincpu.mw@3BB8 = 4E71</action> <!-- gold bar -->
            <action>maincpu.mw@3C62 = 4E71</action> <!-- shoot down -->
        </script>
        <script state="off">
            <action>maincpu.mw@3B5C = 6E0E</action>
            <action>maincpu.mw@3BB8 = 6D0E</action>
            <action>maincpu.mw@3C62 = 6D0E</action>
        </script>
    </cheat>

    <cheat desc="unlock special test mode">
        <comment>reset the game (F3) to enter special test mode</comment>
        <script state="on">
            <action>maincpu.mw@14988 = 4E71</action> <!-- go to test mode -->
            <action>maincpu.mw@156C2 = 6004</action> <!-- add test mode items -->
        </script>
        <script state="off">
            <action>maincpu.mw@14988 = 6758</action>
            <action>maincpu.mw@156C2 = 6604</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.md@00444 = 00080010        </action>
            <action>maincpu.mq@80010 = 41F900FE000043F9</action>
            <action>maincpu.mq@80018 = 00C0001112001039</action>
            <action>maincpu.mq@80020 = 00C00000B20067F4</action>
            <action>maincpu.mq@80028 = 0C0000EF66025310</action>
            <action>maincpu.mq@80030 = 0C0000DF66025210</action>
            <action>maincpu.mq@80038 = 0C0000BF66040410</action>
            <action>maincpu.mq@80040 = 00100C00007F6604</action>
            <action>maincpu.mq@80048 = 061000100C0000F7</action>
            <action>maincpu.mq@80050 = 660212900C0000FB</action>
            <action>maincpu.mq@80058 = 660412BC000160BC</action>
            <!--
            80010 | 41F9 00FE 0000 : lea     $fe0000.l, A0 // sound code address
            80016 | 43F9 00C0 0011 : lea     $c00011.l, A1 // sound latch address
            8001C | 1200           : move.b  D0, D1
            8001E | 1039 00C0 0000 : move.b  $c00000.l, D0 // read input
            80024 | B200           : cmp.b   D0, D1
            80026 | 67F4           : beq     $8001c
            80028 | 0C00 00EF      : cmpi.b  #-$11, D0
            8002C | 6602           : bne     $80030
            8002E | 5310           : subq.b  #1, (A0)      // decrease code -01
            80030 | 0C00 00DF      : cmpi.b  #-$21, D0
            80034 | 6602           : bne     $80038
            80036 | 5210           : addq.b  #1, (A0)      // increase code +01
            80038 | 0C00 00BF      : cmpi.b  #-$41, D0
            8003C | 6604           : bne     $80042
            8003E | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            80042 | 0C00 007F      : cmpi.b  #$7f, D0
            80046 | 6604           : bne     $8004c
            80048 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            8004C | 0C00 00F7      : cmpi.b  #-$9, D0
            80050 | 6602           : bne     $80054
            80052 | 1290           : move.b  (A0), (A1)    // play sound
            80054 | 0C00 00FB      : cmpi.b  #-$5, D0
            80058 | 6604           : bne     $8005e
            8005A | 12BC 0001      : move.b  #$1, (A1)     // stop sound
            8005E | 60BC           : bra     $8001c
            -->
        </script>
        <script state="run">
            <output format="----- strikers 1945 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@FE0000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@00444 = 0001999E        </action>
            <action>maincpu.mq@80000 = 0000000000000000</action>
            <action>maincpu.mq@80008 = 0000000000000000</action>
            <action>maincpu.mq@80010 = 0000000000000000</action>
            <action>maincpu.mq@80018 = 0000000000000000</action>
            <action>maincpu.mq@80020 = 0000000000000000</action>
            <action>maincpu.mq@80028 = 0000000000000000</action>
            <action>maincpu.mq@80030 = 0000000000000000</action>
            <action>maincpu.mq@80038 = 0000000000000000</action>
            <action>maincpu.mq@80040 = 0000000000000000</action>
            <action>maincpu.mq@80048 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
s1945n.xml

Code: Select all

<!-- Strikers 1945 (World, unprotected) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@01660 = 60</action> <!-- P1 bullet -->
            <action>maincpu.mb@016E0 = 60</action> <!-- P2 bullet -->
            <action>maincpu.mb@115E8 = 60</action> <!-- P1 enemy -->
            <action>maincpu.mb@1167A = 60</action> <!-- P2 enemy -->
        </script>
        <script state="off">
            <action>maincpu.mb@01660 = 66</action>
            <action>maincpu.mb@016E0 = 66</action>
            <action>maincpu.mb@115E8 = 66</action>
            <action>maincpu.mb@1167A = 66</action>
        </script>
    </cheat>

    <cheat desc="auto fire - main shot">
        <script state="on">
            <action>maincpu.mq@0B9AA = 357C0002002C6020</action> <!-- move.w #$2,($2c,A2) / bra $ba32 -->
            <action>maincpu.mq@0BA1A = 357C0000002E4A6A</action> <!-- move.w #$0,($2e,A2) -->
            <action>maincpu.mq@10B3C = 6E000002302C003E</action>
        </script>
        <script state="off">
            <action>maincpu.mq@0B9AA = 302A006602400008</action>
            <action>maincpu.md@0BA1A = 3568003A002E4A6A</action>
            <action>maincpu.mw@10B3C = 6E000128302C003E</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x00008000">01 (slow)</item>
            <item value="0x00028000">02       </item>
            <item value="0x00048000">03       </item>
            <item value="0x00068000">04       </item>
            <item value="0x00088000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@95A2 = 06A9000000000004</action> <!-- up (addi.l #$xx,($4,A1)) -->
            <action>maincpu.mq@95CA = 04A9000000000004</action> <!-- down (subi.l #$xx,($4,A1))-->
            <action>maincpu.mq@95F2 = 0491000000004A69</action> <!-- left (subi.l #$xx,(A1)) -->
            <action>maincpu.mq@961C = 0691000000004A69</action> <!-- right (addi.l #$xx,(A1)) -->
            <action>maincpu.mq@9646 = 0491000000002029</action> <!-- upper-left : left (subi.l #$xx,(A1))-->
            <action>maincpu.mq@964C = 06A9000000000004</action> <!-- upper-left : up (addi.l #$xx,($4,A1)) -->
            <action>maincpu.mq@9678 = 0691000000002029</action> <!-- upper-right : right (addi.l #$xx,(A1)) -->
            <action>maincpu.mq@967E = 06A9000000000004</action> <!-- upper-right : up (addi.l #$xx,($4,A1)) -->
            <action>maincpu.mq@96A8 = 0491000000002029</action> <!-- lower-left : left (subi.l #$xx,(A1)) -->
            <action>maincpu.mq@96AE = 04A9000000000004</action> <!-- lower-left : down (subi.l #$xx,($4,A1)) -->
            <action>maincpu.mq@96D6 = 0691000000002029</action> <!-- lower-right : right (addi.l #$xx,(A1)) -->
            <action>maincpu.mq@96DC = 04A9000000000004</action> <!-- lower-right : down (subi.l #$xx,($4,A1)) -->
        </script>
        <script state="change">
            <action>maincpu.md@95A4 = param</action>
            <action>maincpu.md@95CC = param</action>
            <action>maincpu.md@95F4 = param</action>
            <action>maincpu.md@961E = param</action>
            <action>maincpu.md@9648 = param</action>
            <action>maincpu.md@964E = param</action>
            <action>maincpu.md@967A = param</action>
            <action>maincpu.md@9680 = param</action>
            <action>maincpu.md@96AA = param</action>
            <action>maincpu.md@96B0 = param</action>
            <action>maincpu.md@96D8 = param</action>
            <action>maincpu.md@96DE = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@95A2 = 2029000CD1A90004</action>
            <action>maincpu.mq@95CA = 2029000C91A90004</action>
            <action>maincpu.mq@95F2 = 2029000891914A69</action>
            <action>maincpu.mq@961C = 20290008D1914A69</action>
            <action>maincpu.mq@9646 = 2029001091912029</action>
            <action>maincpu.mq@964C = 20290014D1A90004</action>
            <action>maincpu.mq@9678 = 20290010D1912029</action>
            <action>maincpu.mq@967E = 20290014D1A90004</action>
            <action>maincpu.mq@96A8 = 2029001091912029</action>
            <action>maincpu.mq@96AE = 2029001491A90004</action>
            <action>maincpu.mq@96D6 = 20290010D1912029</action>
            <action>maincpu.mq@96DC = 2029001491A90004</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x00008000">01 (slow)</item>
            <item value="0x00080000">02       </item>
            <item value="0x00100000">03       </item>
            <item value="0x00180000">04       </item>
            <item value="0x00200000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@10BFA = 4EB9000800003568</action>
            <action>maincpu.mq@80000 = 257C000000000010</action>
            <action>maincpu.mq@80008 = 20424E7500000000</action>
            <!--
            80000 | 257C xxxx xxxx 0010 : move.l  #$xxxx, ($10,A2)
            80008 | 2042                : movea.l D2, A0
            8000A | 4E75                : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@80002 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@10BFA = 2540001020423568</action>
            <action>maincpu.mq@80000 = 0000000000000000</action>
            <action>maincpu.mq@80008 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="maximum gold bar bonus">
        <script state="on">
            <action>maincpu.md@9490 = 307C0013</action> <!-- movea.w #$13,A0 -->
        </script>
        <script state="off">
            <action>maincpu.md@9490 = 306B0010</action>
        </script>
    </cheat>

    <cheat desc="gold medals">
        <script state="on">
            <action>maincpu.mw@3B40 = 4E71</action> <!-- time -->
            <action>maincpu.mw@3B9C = 4E71</action> <!-- gold bar -->
            <action>maincpu.mw@3C46 = 4E71</action> <!-- shoot down -->
        </script>
        <script state="off">
            <action>maincpu.mw@3B40 = 6E0E</action>
            <action>maincpu.mw@3B9C = 6D0E</action>
            <action>maincpu.mw@3C46 = 6D0E</action>
        </script>
    </cheat>

    <cheat desc="unlock special test mode">
        <comment>reset the game (F3) to enter special test mode</comment>
        <script state="on">
            <action>maincpu.mw@1487A = 4E71</action> <!-- go to test mode -->
            <action>maincpu.mw@155C4 = 6004</action> <!-- add test mode items -->
        </script>
        <script state="off">
            <action>maincpu.mw@1487A = 6758</action>
            <action>maincpu.mw@155C4 = 6604</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.md@00444 = 00080010        </action>
            <action>maincpu.mq@80010 = 41F900FE000043F9</action>
            <action>maincpu.mq@80018 = 00C0001112001039</action>
            <action>maincpu.mq@80020 = 00C00000B20067F4</action>
            <action>maincpu.mq@80028 = 0C0000EF66025310</action>
            <action>maincpu.mq@80030 = 0C0000DF66025210</action>
            <action>maincpu.mq@80038 = 0C0000BF66040410</action>
            <action>maincpu.mq@80040 = 00100C00007F6604</action>
            <action>maincpu.mq@80048 = 061000100C0000F7</action>
            <action>maincpu.mq@80050 = 660212900C0000FB</action>
            <action>maincpu.mq@80058 = 660412BC000160BC</action>
            <!--
            80010 | 41F9 00FE 0000 : lea     $fe0000.l, A0 // sound code address
            80016 | 43F9 00C0 0011 : lea     $c00011.l, A1 // sound latch address
            8001C | 1200           : move.b  D0, D1
            8001E | 1039 00C0 0000 : move.b  $c00000.l, D0 // read input
            80024 | B200           : cmp.b   D0, D1
            80026 | 67F4           : beq     $8001c
            80028 | 0C00 00EF      : cmpi.b  #-$11, D0
            8002C | 6602           : bne     $80030
            8002E | 5310           : subq.b  #1, (A0)      // decrease code -01
            80030 | 0C00 00DF      : cmpi.b  #-$21, D0
            80034 | 6602           : bne     $80038
            80036 | 5210           : addq.b  #1, (A0)      // increase code +01
            80038 | 0C00 00BF      : cmpi.b  #-$41, D0
            8003C | 6604           : bne     $80042
            8003E | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            80042 | 0C00 007F      : cmpi.b  #$7f, D0
            80046 | 6604           : bne     $8004c
            80048 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            8004C | 0C00 00F7      : cmpi.b  #-$9, D0
            80050 | 6602           : bne     $80054
            80052 | 1290           : move.b  (A0), (A1)    // play sound
            80054 | 0C00 00FB      : cmpi.b  #-$5, D0
            80058 | 6604           : bne     $8005e
            8005A | 12BC 0001      : move.b  #$1, (A1)     // stop sound
            8005E | 60BC           : bra     $8001c
            -->
        </script>
        <script state="run">
            <output format="----- strikers 1945 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@FE0000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@00444 = 000194A0        </action>
            <action>maincpu.mq@80000 = 0000000000000000</action>
            <action>maincpu.mq@80008 = 0000000000000000</action>
            <action>maincpu.mq@80010 = 0000000000000000</action>
            <action>maincpu.mq@80018 = 0000000000000000</action>
            <action>maincpu.mq@80020 = 0000000000000000</action>
            <action>maincpu.mq@80028 = 0000000000000000</action>
            <action>maincpu.mq@80030 = 0000000000000000</action>
            <action>maincpu.mq@80038 = 0000000000000000</action>
            <action>maincpu.mq@80040 = 0000000000000000</action>
            <action>maincpu.mq@80048 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
s1945nj.xml

Code: Select all

<!-- Strikers 1945 (Japan, unprotected) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@01660 = 60</action> <!-- P1 bullet -->
            <action>maincpu.mb@016E0 = 60</action> <!-- P2 bullet -->
            <action>maincpu.mb@1165C = 60</action> <!-- P1 enemy -->
            <action>maincpu.mb@116EE = 60</action> <!-- P2 enemy -->
        </script>
        <script state="off">
            <action>maincpu.mb@01660 = 66</action>
            <action>maincpu.mb@016E0 = 66</action>
            <action>maincpu.mb@1165C = 66</action>
            <action>maincpu.mb@116EE = 66</action>
        </script>
    </cheat>

    <cheat desc="auto fire - main shot">
        <script state="on">
            <action>maincpu.mq@0B9EE = 357C0002002C6020</action> <!-- move.w #$2,($2c,A2) / bra $ba32 -->
            <action>maincpu.mq@0BA5E = 357C0000002E4A6A</action> <!-- move.w #$0,($2e,A2) -->
            <action>maincpu.mq@10BB0 = 6E000002302C003E</action>
        </script>
        <script state="off">
            <action>maincpu.mq@0B9EE = 302A006602400008</action>
            <action>maincpu.md@0BA5E = 3568003A002E4A6A</action>
            <action>maincpu.mw@10BB0 = 6E000128302C003E</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x00008000">01 (slow)</item>
            <item value="0x00028000">02       </item>
            <item value="0x00048000">03       </item>
            <item value="0x00068000">04       </item>
            <item value="0x00088000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@95AA = 06A9000000000004</action> <!-- up (addi.l #$xx,($4,A1)) -->
            <action>maincpu.mq@95D2 = 04A9000000000004</action> <!-- down (subi.l #$xx,($4,A1))-->
            <action>maincpu.mq@95FA = 0491000000004A69</action> <!-- left (subi.l #$xx,(A1)) -->
            <action>maincpu.mq@9624 = 0691000000004A69</action> <!-- right (addi.l #$xx,(A1)) -->
            <action>maincpu.mq@964E = 0491000000002029</action> <!-- upper-left : left (subi.l #$xx,(A1))-->
            <action>maincpu.mq@9654 = 06A9000000000004</action> <!-- upper-left : up (addi.l #$xx,($4,A1)) -->
            <action>maincpu.mq@9680 = 0691000000002029</action> <!-- upper-right : right (addi.l #$xx,(A1)) -->
            <action>maincpu.mq@9686 = 06A9000000000004</action> <!-- upper-right : up (addi.l #$xx,($4,A1)) -->
            <action>maincpu.mq@96B0 = 0491000000002029</action> <!-- lower-left : left (subi.l #$xx,(A1)) -->
            <action>maincpu.mq@96B6 = 04A9000000000004</action> <!-- lower-left : down (subi.l #$xx,($4,A1)) -->
            <action>maincpu.mq@96DE = 0691000000002029</action> <!-- lower-right : right (addi.l #$xx,(A1)) -->
            <action>maincpu.mq@96E4 = 04A9000000000004</action> <!-- lower-right : down (subi.l #$xx,($4,A1)) -->
        </script>
        <script state="change">
            <action>maincpu.md@95AC = param</action>
            <action>maincpu.md@95D4 = param</action>
            <action>maincpu.md@95FC = param</action>
            <action>maincpu.md@9626 = param</action>
            <action>maincpu.md@9650 = param</action>
            <action>maincpu.md@9656 = param</action>
            <action>maincpu.md@9682 = param</action>
            <action>maincpu.md@9688 = param</action>
            <action>maincpu.md@96B2 = param</action>
            <action>maincpu.md@96B8 = param</action>
            <action>maincpu.md@96E0 = param</action>
            <action>maincpu.md@96E6 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@95AA = 2029000CD1A90004</action>
            <action>maincpu.mq@95D2 = 2029000C91A90004</action>
            <action>maincpu.mq@95FA = 2029000891914A69</action>
            <action>maincpu.mq@9624 = 20290008D1914A69</action>
            <action>maincpu.mq@964E = 2029001091912029</action>
            <action>maincpu.mq@9654 = 20290014D1A90004</action>
            <action>maincpu.mq@9680 = 20290010D1912029</action>
            <action>maincpu.mq@9686 = 20290014D1A90004</action>
            <action>maincpu.mq@96B0 = 2029001091912029</action>
            <action>maincpu.mq@96B6 = 2029001491A90004</action>
            <action>maincpu.mq@96DE = 20290010D1912029</action>
            <action>maincpu.mq@96E4 = 2029001491A90004</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x00008000">01 (slow)</item>
            <item value="0x00080000">02       </item>
            <item value="0x00100000">03       </item>
            <item value="0x00180000">04       </item>
            <item value="0x00200000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@10C6E = 4EB9000800003568</action>
            <action>maincpu.mq@80000 = 257C000000000010</action>
            <action>maincpu.mq@80008 = 20424E7500000000</action>
            <!--
            80000 | 257C xxxx xxxx 0010 : move.l  #$xxxx, ($10,A2)
            80008 | 2042                : movea.l D2, A0
            8000A | 4E75                : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@80002 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@10C6E = 2540001020423568</action>
            <action>maincpu.mq@80000 = 0000000000000000</action>
            <action>maincpu.mq@80008 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="maximum gold bar bonus">
        <script state="on">
            <action>maincpu.md@9498 = 307C0013</action> <!-- movea.w #$13,A0 -->
        </script>
        <script state="off">
            <action>maincpu.md@9498 = 306B0010</action>
        </script>
    </cheat>

    <cheat desc="gold medals">
        <script state="on">
            <action>maincpu.mw@3B40 = 4E71</action> <!-- time -->
            <action>maincpu.mw@3B9C = 4E71</action> <!-- gold bar -->
            <action>maincpu.mw@3C46 = 4E71</action> <!-- shoot down -->
        </script>
        <script state="off">
            <action>maincpu.mw@3B40 = 6E0E</action>
            <action>maincpu.mw@3B9C = 6D0E</action>
            <action>maincpu.mw@3C46 = 6D0E</action>
        </script>
    </cheat>

    <cheat desc="unlock special test mode">
        <comment>reset the game (F3) to enter special test mode</comment>
        <script state="on">
            <action>maincpu.mw@148EE = 4E71</action> <!-- go to test mode -->
            <action>maincpu.mw@15628 = 6004</action> <!-- add test mode items -->
        </script>
        <script state="off">
            <action>maincpu.mw@148EE = 6758</action>
            <action>maincpu.mw@15628 = 6604</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.md@00444 = 00080010        </action>
            <action>maincpu.mq@80010 = 41F900FE000043F9</action>
            <action>maincpu.mq@80018 = 00C0001112001039</action>
            <action>maincpu.mq@80020 = 00C00000B20067F4</action>
            <action>maincpu.mq@80028 = 0C0000EF66025310</action>
            <action>maincpu.mq@80030 = 0C0000DF66025210</action>
            <action>maincpu.mq@80038 = 0C0000BF66040410</action>
            <action>maincpu.mq@80040 = 00100C00007F6604</action>
            <action>maincpu.mq@80048 = 061000100C0000F7</action>
            <action>maincpu.mq@80050 = 660212900C0000FB</action>
            <action>maincpu.mq@80058 = 660412BC000160BC</action>
            <!--
            80010 | 41F9 00FE 0000 : lea     $fe0000.l, A0 // sound code address
            80016 | 43F9 00C0 0011 : lea     $c00011.l, A1 // sound latch address
            8001C | 1200           : move.b  D0, D1
            8001E | 1039 00C0 0000 : move.b  $c00000.l, D0 // read input
            80024 | B200           : cmp.b   D0, D1
            80026 | 67F4           : beq     $8001c
            80028 | 0C00 00EF      : cmpi.b  #-$11, D0
            8002C | 6602           : bne     $80030
            8002E | 5310           : subq.b  #1, (A0)      // decrease code -01
            80030 | 0C00 00DF      : cmpi.b  #-$21, D0
            80034 | 6602           : bne     $80038
            80036 | 5210           : addq.b  #1, (A0)      // increase code +01
            80038 | 0C00 00BF      : cmpi.b  #-$41, D0
            8003C | 6604           : bne     $80042
            8003E | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            80042 | 0C00 007F      : cmpi.b  #$7f, D0
            80046 | 6604           : bne     $8004c
            80048 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            8004C | 0C00 00F7      : cmpi.b  #-$9, D0
            80050 | 6602           : bne     $80054
            80052 | 1290           : move.b  (A0), (A1)    // play sound
            80054 | 0C00 00FB      : cmpi.b  #-$5, D0
            80058 | 6604           : bne     $8005e
            8005A | 12BC 0001      : move.b  #$1, (A1)     // stop sound
            8005E | 60BC           : bra     $8001c
            -->
        </script>
        <script state="run">
            <output format="----- strikers 1945 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@FE0000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@00444 = 00019624        </action>
            <action>maincpu.mq@80000 = 0000000000000000</action>
            <action>maincpu.mq@80008 = 0000000000000000</action>
            <action>maincpu.mq@80010 = 0000000000000000</action>
            <action>maincpu.mq@80018 = 0000000000000000</action>
            <action>maincpu.mq@80020 = 0000000000000000</action>
            <action>maincpu.mq@80028 = 0000000000000000</action>
            <action>maincpu.mq@80030 = 0000000000000000</action>
            <action>maincpu.mq@80038 = 0000000000000000</action>
            <action>maincpu.mq@80040 = 0000000000000000</action>
            <action>maincpu.mq@80048 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
jman
Posts: 842
Joined: Tue Dec 01, 2020 1:24 pm

[s1945]+ Strikers 1945

Post by jman »

s1945k.xml

Code: Select all

<!-- Strikers 1945 (Korea) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@01670 = 60</action> <!-- P1 bullet -->
            <action>maincpu.mb@016F0 = 60</action> <!-- P2 bullet -->
            <action>maincpu.mb@11682 = 60</action> <!-- P1 enemy -->
            <action>maincpu.mb@11714 = 60</action> <!-- P2 enemy -->
        </script>
        <script state="off">
            <action>maincpu.mb@01670 = 66</action>
            <action>maincpu.mb@016F0 = 66</action>
            <action>maincpu.mb@11682 = 66</action>
            <action>maincpu.mb@11714 = 66</action>
        </script>
    </cheat>

    <cheat desc="auto fire - main shot">
        <script state="on">
            <action>maincpu.mq@0B9C6 = 357C0002002C6020</action> <!-- move.w #$2,($2c,A2) / bra $ba32 -->
            <action>maincpu.mq@0BA36 = 357C0000002E4A6A</action> <!-- move.w #$0,($2e,A2) -->
            <action>maincpu.mq@10BD6 = 6E000002302C003E</action>
        </script>
        <script state="off">
            <action>maincpu.mq@0B9C6 = 302A006602400008</action>
            <action>maincpu.md@0BA36 = 3568003A002E4A6A</action>
            <action>maincpu.mw@10BD6 = 6E000128302C003E</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x00008000">01 (slow)</item>
            <item value="0x00028000">02       </item>
            <item value="0x00048000">03       </item>
            <item value="0x00068000">04       </item>
            <item value="0x00088000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@95BE = 06A9000000000004</action> <!-- up (addi.l #$xx,($4,A1)) -->
            <action>maincpu.mq@95E6 = 04A9000000000004</action> <!-- down (subi.l #$xx,($4,A1))-->
            <action>maincpu.mq@960E = 0491000000004A69</action> <!-- left (subi.l #$xx,(A1)) -->
            <action>maincpu.mq@9638 = 0691000000004A69</action> <!-- right (addi.l #$xx,(A1)) -->
            <action>maincpu.mq@9662 = 0491000000002029</action> <!-- upper-left : left (subi.l #$xx,(A1))-->
            <action>maincpu.mq@9668 = 06A9000000000004</action> <!-- upper-left : up (addi.l #$xx,($4,A1)) -->
            <action>maincpu.mq@9694 = 0691000000002029</action> <!-- upper-right : right (addi.l #$xx,(A1)) -->
            <action>maincpu.mq@969A = 06A9000000000004</action> <!-- upper-right : up (addi.l #$xx,($4,A1)) -->
            <action>maincpu.mq@96C4 = 0491000000002029</action> <!-- lower-left : left (subi.l #$xx,(A1)) -->
            <action>maincpu.mq@96CA = 04A9000000000004</action> <!-- lower-left : down (subi.l #$xx,($4,A1)) -->
            <action>maincpu.mq@96F2 = 0691000000002029</action> <!-- lower-right : right (addi.l #$xx,(A1)) -->
            <action>maincpu.mq@96F8 = 04A9000000000004</action> <!-- lower-right : down (subi.l #$xx,($4,A1)) -->
        </script>
        <script state="change">
            <action>maincpu.md@95C0 = param</action>
            <action>maincpu.md@95E8 = param</action>
            <action>maincpu.md@9610 = param</action>
            <action>maincpu.md@963A = param</action>
            <action>maincpu.md@9664 = param</action>
            <action>maincpu.md@966A = param</action>
            <action>maincpu.md@9696 = param</action>
            <action>maincpu.md@969C = param</action>
            <action>maincpu.md@96C6 = param</action>
            <action>maincpu.md@96CC = param</action>
            <action>maincpu.md@96F4 = param</action>
            <action>maincpu.md@96FA = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@95BE = 2029000CD1A90004</action>
            <action>maincpu.mq@95E6 = 2029000C91A90004</action>
            <action>maincpu.mq@960E = 2029000891914A69</action>
            <action>maincpu.mq@9638 = 20290008D1914A69</action>
            <action>maincpu.mq@9662 = 2029001091912029</action>
            <action>maincpu.mq@9668 = 20290014D1A90004</action>
            <action>maincpu.mq@9694 = 20290010D1912029</action>
            <action>maincpu.mq@969A = 20290014D1A90004</action>
            <action>maincpu.mq@96C4 = 2029001091912029</action>
            <action>maincpu.mq@96CA = 2029001491A90004</action>
            <action>maincpu.mq@96F2 = 20290010D1912029</action>
            <action>maincpu.mq@96F8 = 2029001491A90004</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x00008000">01 (slow)</item>
            <item value="0x00080000">02       </item>
            <item value="0x00100000">03       </item>
            <item value="0x00180000">04       </item>
            <item value="0x00200000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@10C94 = 4EB9000800003568</action>
            <action>maincpu.mq@80000 = 257C000000000010</action>
            <action>maincpu.mq@80008 = 20424E7500000000</action>
            <!--
            80000 | 257C xxxx xxxx 0010 : move.l  #$xxxx, ($10,A2)
            80008 | 2042                : movea.l D2, A0
            8000A | 4E75                : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@80002 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@10C94 = 2540001020423568</action>
            <action>maincpu.mq@80000 = 0000000000000000</action>
            <action>maincpu.mq@80008 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="maximum gold bar bonus">
        <script state="on">
            <action>maincpu.md@94AC = 307C0013</action> <!-- movea.w #$13,A0 -->
        </script>
        <script state="off">
            <action>maincpu.md@94AC = 306B0010</action>
        </script>
    </cheat>

    <cheat desc="gold medals">
        <script state="on">
            <action>maincpu.mw@3B5C = 4E71</action> <!-- time -->
            <action>maincpu.mw@3BB8 = 4E71</action> <!-- gold bar -->
            <action>maincpu.mw@3C62 = 4E71</action> <!-- shoot down -->
        </script>
        <script state="off">
            <action>maincpu.mw@3B5C = 6E0E</action>
            <action>maincpu.mw@3BB8 = 6D0E</action>
            <action>maincpu.mw@3C62 = 6D0E</action>
        </script>
    </cheat>

    <cheat desc="unlock special test mode">
        <comment>reset the game (F3) to enter special test mode</comment>
        <script state="on">
            <action>maincpu.mw@1491C = 4E71</action> <!-- go to test mode -->
            <action>maincpu.mw@15666 = 6004</action> <!-- add test mode items -->
        </script>
        <script state="off">
            <action>maincpu.mw@1491C = 6758</action>
            <action>maincpu.mw@15666 = 6604</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mq@00442 = 4EF90008001033F9</action>
            <action>maincpu.mq@80010 = 41F900FE000043F9</action>
            <action>maincpu.mq@80018 = 00C0001112001039</action>
            <action>maincpu.mq@80020 = 00C00000B20067F4</action>
            <action>maincpu.mq@80028 = 0C0000EF66025310</action>
            <action>maincpu.mq@80030 = 0C0000DF66025210</action>
            <action>maincpu.mq@80038 = 0C0000BF66040410</action>
            <action>maincpu.mq@80040 = 00100C00007F6604</action>
            <action>maincpu.mq@80048 = 061000100C0000F7</action>
            <action>maincpu.mq@80050 = 660212900C0000FB</action>
            <action>maincpu.mq@80058 = 660412BC000160BC</action>
            <!--
            80010 | 41F9 00FE 0000 : lea     $fe0000.l, A0 // sound code address
            80016 | 43F9 00C0 0011 : lea     $c00011.l, A1 // sound latch address
            8001C | 1200           : move.b  D0, D1
            8001E | 1039 00C0 0000 : move.b  $c00000.l, D0 // read input
            80024 | B200           : cmp.b   D0, D1
            80026 | 67F4           : beq     $8001c
            80028 | 0C00 00EF      : cmpi.b  #-$11, D0
            8002C | 6602           : bne     $80030
            8002E | 5310           : subq.b  #1, (A0)      // decrease code -01
            80030 | 0C00 00DF      : cmpi.b  #-$21, D0
            80034 | 6602           : bne     $80038
            80036 | 5210           : addq.b  #1, (A0)      // increase code +01
            80038 | 0C00 00BF      : cmpi.b  #-$41, D0
            8003C | 6604           : bne     $80042
            8003E | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            80042 | 0C00 007F      : cmpi.b  #$7f, D0
            80046 | 6604           : bne     $8004c
            80048 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            8004C | 0C00 00F7      : cmpi.b  #-$9, D0
            80050 | 6602           : bne     $80054
            80052 | 1290           : move.b  (A0), (A1)    // play sound
            80054 | 0C00 00FB      : cmpi.b  #-$5, D0
            80058 | 6604           : bne     $8005e
            8005A | 12BC 0001      : move.b  #$1, (A1)     // stop sound
            8005E | 60BC           : bra     $8001c
            -->
        </script>
        <script state="run">
            <output format="----- strikers 1945 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@FE0000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@00442 = 4EF900019A6233F9</action>
            <action>maincpu.mq@80000 = 0000000000000000</action>
            <action>maincpu.mq@80008 = 0000000000000000</action>
            <action>maincpu.mq@80010 = 0000000000000000</action>
            <action>maincpu.mq@80018 = 0000000000000000</action>
            <action>maincpu.mq@80020 = 0000000000000000</action>
            <action>maincpu.mq@80028 = 0000000000000000</action>
            <action>maincpu.mq@80030 = 0000000000000000</action>
            <action>maincpu.mq@80038 = 0000000000000000</action>
            <action>maincpu.mq@80040 = 0000000000000000</action>
            <action>maincpu.mq@80048 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
s1945bl.xml

Code: Select all

<!-- Strikers 1945 (Hong Kong, bootleg) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@01660 = 60</action> <!-- P1 bullet -->
            <action>maincpu.mb@016E0 = 60</action> <!-- P2 bullet -->
            <action>maincpu.mb@1165C = 60</action> <!-- P1 enemy -->
            <action>maincpu.mb@116EE = 60</action> <!-- P2 enemy -->
        </script>
        <script state="off">
            <action>maincpu.mb@01660 = 66</action>
            <action>maincpu.mb@016E0 = 66</action>
            <action>maincpu.mb@1165C = 66</action>
            <action>maincpu.mb@116EE = 66</action>
        </script>
    </cheat>

    <cheat desc="auto fire - main shot">
        <script state="on">
            <action>maincpu.mq@0B9EE = 357C0002002C6020</action> <!-- move.w #$2,($2c,A2) / bra $ba32 -->
            <action>maincpu.mq@0BA5E = 357C0000002E4A6A</action> <!-- move.w #$0,($2e,A2) -->
            <action>maincpu.mq@10BB0 = 6E000002302C003E</action>
        </script>
        <script state="off">
            <action>maincpu.mq@0B9EE = 302A006602400008</action>
            <action>maincpu.md@0BA5E = 3568003A002E4A6A</action>
            <action>maincpu.mw@10BB0 = 6E000128302C003E</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x00008000">01 (slow)</item>
            <item value="0x00028000">02       </item>
            <item value="0x00048000">03       </item>
            <item value="0x00068000">04       </item>
            <item value="0x00088000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@95AA = 06A9000000000004</action> <!-- up (addi.l #$xx,($4,A1)) -->
            <action>maincpu.mq@95D2 = 04A9000000000004</action> <!-- down (subi.l #$xx,($4,A1))-->
            <action>maincpu.mq@95FA = 0491000000004A69</action> <!-- left (subi.l #$xx,(A1)) -->
            <action>maincpu.mq@9624 = 0691000000004A69</action> <!-- right (addi.l #$xx,(A1)) -->
            <action>maincpu.mq@964E = 0491000000002029</action> <!-- upper-left : left (subi.l #$xx,(A1))-->
            <action>maincpu.mq@9654 = 06A9000000000004</action> <!-- upper-left : up (addi.l #$xx,($4,A1)) -->
            <action>maincpu.mq@9680 = 0691000000002029</action> <!-- upper-right : right (addi.l #$xx,(A1)) -->
            <action>maincpu.mq@9686 = 06A9000000000004</action> <!-- upper-right : up (addi.l #$xx,($4,A1)) -->
            <action>maincpu.mq@96B0 = 0491000000002029</action> <!-- lower-left : left (subi.l #$xx,(A1)) -->
            <action>maincpu.mq@96B6 = 04A9000000000004</action> <!-- lower-left : down (subi.l #$xx,($4,A1)) -->
            <action>maincpu.mq@96DE = 0691000000002029</action> <!-- lower-right : right (addi.l #$xx,(A1)) -->
            <action>maincpu.mq@96E4 = 04A9000000000004</action> <!-- lower-right : down (subi.l #$xx,($4,A1)) -->
        </script>
        <script state="change">
            <action>maincpu.md@95AC = param</action>
            <action>maincpu.md@95D4 = param</action>
            <action>maincpu.md@95FC = param</action>
            <action>maincpu.md@9626 = param</action>
            <action>maincpu.md@9650 = param</action>
            <action>maincpu.md@9656 = param</action>
            <action>maincpu.md@9682 = param</action>
            <action>maincpu.md@9688 = param</action>
            <action>maincpu.md@96B2 = param</action>
            <action>maincpu.md@96B8 = param</action>
            <action>maincpu.md@96E0 = param</action>
            <action>maincpu.md@96E6 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@95AA = 2029000CD1A90004</action>
            <action>maincpu.mq@95D2 = 2029000C91A90004</action>
            <action>maincpu.mq@95FA = 2029000891914A69</action>
            <action>maincpu.mq@9624 = 20290008D1914A69</action>
            <action>maincpu.mq@964E = 2029001091912029</action>
            <action>maincpu.mq@9654 = 20290014D1A90004</action>
            <action>maincpu.mq@9680 = 20290010D1912029</action>
            <action>maincpu.mq@9686 = 20290014D1A90004</action>
            <action>maincpu.mq@96B0 = 2029001091912029</action>
            <action>maincpu.mq@96B6 = 2029001491A90004</action>
            <action>maincpu.mq@96DE = 20290010D1912029</action>
            <action>maincpu.mq@96E4 = 2029001491A90004</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x00008000">01 (slow)</item>
            <item value="0x00080000">02       </item>
            <item value="0x00100000">03       </item>
            <item value="0x00180000">04       </item>
            <item value="0x00200000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@10C6E = 4EB9000800003568</action>
            <action>maincpu.mq@80000 = 257C000000000010</action>
            <action>maincpu.mq@80008 = 20424E7500000000</action>
            <!--
            80000 | 257C xxxx xxxx 0010 : move.l  #$xxxx, ($10,A2)
            80008 | 2042                : movea.l D2, A0
            8000A | 4E75                : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@80002 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@10C6E = 2540001020423568</action>
            <action>maincpu.mq@80000 = 0000000000000000</action>
            <action>maincpu.mq@80008 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="maximum gold bar bonus">
        <script state="on">
            <action>maincpu.md@9498 = 307C0013</action> <!-- movea.w #$13,A0 -->
        </script>
        <script state="off">
            <action>maincpu.md@9498 = 306B0010</action>
        </script>
    </cheat>

    <cheat desc="gold medals">
        <script state="on">
            <action>maincpu.mw@3B40 = 4E71</action> <!-- time -->
            <action>maincpu.mw@3B9C = 4E71</action> <!-- gold bar -->
            <action>maincpu.mw@3C46 = 4E71</action> <!-- shoot down -->
        </script>
        <script state="off">
            <action>maincpu.mw@3B40 = 6E0E</action>
            <action>maincpu.mw@3B9C = 6D0E</action>
            <action>maincpu.mw@3C46 = 6D0E</action>
        </script>
    </cheat>

    <cheat desc="unlock special test mode">
        <comment>reset the game (F3) to enter special test mode</comment>
        <script state="on">
            <action>maincpu.mw@148EE = 4E71</action> <!-- go to test mode -->
            <action>maincpu.mw@15628 = 6004</action> <!-- add test mode items -->
        </script>
        <script state="off">
            <action>maincpu.mw@148EE = 6758</action>
            <action>maincpu.mw@15628 = 6604</action>
        </script>
    </cheat>

    <cheat desc="sound test mode (not work)">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mb@001C3 = 02              </action> <!-- enable sfx -->
            <action>maincpu.md@00444 = 00080010        </action>
            <action>maincpu.mq@80010 = 41F900FE00001401</action>
            <action>maincpu.mq@80018 = 123900C00000B401</action>
            <action>maincpu.mq@80020 = 67F40C0100EF6602</action>
            <action>maincpu.mq@80028 = 53100C0100DF6602</action>
            <action>maincpu.mq@80030 = 52100C0100BF6604</action>
            <action>maincpu.mq@80038 = 041000100C01007F</action>
            <action>maincpu.mq@80040 = 6604061000100C01</action>
            <action>maincpu.mq@80048 = 00F766041010600A</action>
            <action>maincpu.mq@80050 = 0C0100FB6608103C</action>
            <action>maincpu.mq@80058 = 00014EB8011C60B6</action>
            <!--
            80010 | 41F9 00FE 0000 : lea     $fe0000.l, A0 // sound code address
            80016 | 1401           : move.b  D1, D2
            80018 | 1239 00C0 0000 : move.b  $c00000.l, D1 // read input
            8001E | B401           : cmp.b   D1, D2
            80020 | 67F4           : beq     $80016
            80022 | 0C01 00EF      : cmpi.b  #-$11, D1
            80026 | 6602           : bne     $8002a
            80028 | 5310           : subq.b  #1, (A0)      // decrease code -01
            8002A | 0C01 00DF      : cmpi.b  #-$21, D1
            8002E | 6602           : bne     $80032
            80030 | 5210           : addq.b  #1, (A0)      // increase code +01
            80032 | 0C01 00BF      : cmpi.b  #-$41, D1
            80036 | 6604           : bne     $8003c
            80038 | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            8003C | 0C01 007F      : cmpi.b  #$7f, D1
            80040 | 6604           : bne     $80046
            80042 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            80046 | 0C01 00F7      : cmpi.b  #-$9, D1
            8004A | 6604           : bne     $80050
            8004C | 1010           : move.b  (A0), D0      // play sound
            8004E | 600A           : bra     $8005a
            80050 | 0C01 00FB      : cmpi.b  #-$5, D1
            80054 | 6608           : bne     $8005e
            80056 | 103C 0001      : move.b  #$1, D0       // stop sound
            8005A | 4EB8 011C      : jsr     $11c.w        // send sound code
            8005E | 60B6           : bra     $80016
            -->
        </script>
        <script state="run">
            <output format="----- strikers 1945 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@FE0000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@00444 = 00019624        </action>
            <action>maincpu.mq@80000 = 0000000000000000</action>
            <action>maincpu.mq@80008 = 0000000000000000</action>
            <action>maincpu.mq@80010 = 0000000000000000</action>
            <action>maincpu.mq@80018 = 0000000000000000</action>
            <action>maincpu.mq@80020 = 0000000000000000</action>
            <action>maincpu.mq@80028 = 0000000000000000</action>
            <action>maincpu.mq@80030 = 0000000000000000</action>
            <action>maincpu.mq@80038 = 0000000000000000</action>
            <action>maincpu.mq@80040 = 0000000000000000</action>
            <action>maincpu.mq@80048 = 0000000000000000</action>
            <action>maincpu.mq@80050 = 0000000000000000</action>
            <action>maincpu.mq@80058 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
Post Reply