Page 1 of 1

[fstarfrcj] Final Star Force

Posted: Mon Dec 28, 2020 6:47 pm
by jman

Code: Select all

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

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mb@0e093 = 01</action>
    </script>
    <script state="off">
        <action>maincpu.mb@0e093 = 3c</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter>
        <item value="0x14">01 (slow)</item>
        <item value="0x28">02       </item>
        <item value="0x3c">03       </item>
        <item value="0x50">04       </item>
        <item value="0x64">05 (fast)</item>
    </parameter>
    <script state="on">
        <action>maincpu.mq@103b8 = 4eb9000021b06700</action>
        <action>maincpu.mq@021b0 = 0200000f4a006702</action>
        <action>maincpu.mq@021b8 = 72004e75ffffffff</action>
        <!--
        021b0 | 0200 000f      : andi.b #$f,D0
        021b4 | 4a00           : tst.b  D0
        021b6 | 6702           : beq    $21ba
        021b8 | 72xx           : moveq  #$xx,D1
        021ba | 4e75           : rts
        -->
    </script>
    <script state="change">
        <action>maincpu.mb@21b9 = param</action>
    </script>
    <script state="off">
        <action>maincpu.mq@103b8 = 0200000f4a006700</action>
        <action>maincpu.mq@021b0 = ffffffffffffffff</action>
        <action>maincpu.mq@021b8 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="bullet speed">
    <parameter>
        <item value="0xffe0">01 (slow)</item>
        <item value="0xffc0">02       </item>
        <item value="0xffa0">03       </item>
        <item value="0xff80">04       </item>
        <item value="0xff60">05 (fast)</item>
    </parameter>
    <script state="on">
        <action>maincpu.md@11b52 =         4eb821a0</action>
        <action>maincpu.mq@021a0 = 3829000a4a446706</action>
        <action>maincpu.mq@021a8 = 6a04383c00004e75</action>
        <!--
        021a0 | 3829 000a : move.w ($a,A1),D4
        021a4 | 4a44      : tst.w  D4
        021a6 | 6706      : beq    $21ae
        021a8 | 6a04      : bpl    $21ae
        021aa | 383c xxxx : move.w #$xxxx,D4
        021ae | 4e75      : rts
        -->
    </script>
    <script state="change">
        <action>maincpu.mw@021ac = param</action>
    </script>
    <script state="off">
        <action>maincpu.md@11b52 =         3829000a</action>
        <action>maincpu.mq@021a0 = ffffffffffffffff</action>
        <action>maincpu.mq@021a8 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="skip rom check">
    <script state="on">
        <action>maincpu.mw@1ad62 = 6048</action>
    </script>
    <script state="off">
        <action>maincpu.mw@1ad62 = 4bf8</action>
    </script>
</cheat>

[fstarfrc]+ update

Posted: Thu Sep 22, 2022 2:08 pm
by jman
Clean up all codes.

Code: Select all

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

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mb@e093 = 01</action>
    </script>
    <script state="off">
        <action>maincpu.mb@e093 = 3c</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter>
        <item value="0x0014">01 (slow)</item>
        <item value="0x0028">02       </item>
        <item value="0x003c">03       </item>
        <item value="0x0050">04       </item>
        <item value="0x0064">05 (fast)</item>
    </parameter>
    <script state="on">
        <action>maincpu.md@103b8 =         4eb86670</action>
        <action>maincpu.mq@06670 = 0200000f323c0000</action>
        <action>maincpu.mq@06678 = 4a006606323c0028</action>
        <action>maincpu.mq@06680 = 4a004e75ffffffff</action>
        <!--
        6670 | 0200 000f : andi.b #$f,D0
        6674 | 323c xxxx : move.w #$xx,D1
        6678 | 4a00      : tst.b  D0
        667a | 6606      : bne    $6682
        667c | 323c 0028 : move.w #$28,D1
        6680 | 4a00      : tst.b  D0
        6682 | 4e75      : rts
        -->
    </script>
    <script state="change">
        <action>maincpu.mw@6676 = param</action>
    </script>
    <script state="off">
        <action>maincpu.md@103b8 =         0200000f</action>
        <action>maincpu.mq@06670 = ffffffffffffffff</action>
        <action>maincpu.mq@06678 = ffffffffffffffff</action>
        <action>maincpu.mq@06680 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="bullet speed">
    <parameter>
        <item value="0x0020">01 (slow)</item>
        <item value="0x0040">02       </item>
        <item value="0x0060">03       </item>
        <item value="0x0080">04       </item>
        <item value="0x00a0">05 (fast)</item>
    </parameter>
    <script state="on">
        <action>maincpu.md@11b52 =         4eb86690</action>
        <action>maincpu.mq@06690 = 3829000a4a446706</action>
        <action>maincpu.mq@06698 = 6a04383c00004e75</action>
        <!--
        6690 | 3829 000a : move.w ($a,A1),D4
        6694 | 4a44      : tst.w  D4
        6696 | 6706      : beq    $669e
        6698 | 6a04      : bpl    $669e
        669a | 383c xxxx : move.w #$xx,D4
        669e | 4e75      : rts
        -->
    </script>
    <script state="change">
        <action>maincpu.mw@669c = -param</action>
    </script>
    <script state="off">
        <action>maincpu.md@11b52 =         3829000a</action>
        <action>maincpu.mq@06690 = ffffffffffffffff</action>
        <action>maincpu.mq@06698 = ffffffffffffffff</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@007ca = 4ef9000396a00c10</action>
        <action>maincpu.mq@396a0 = 41f90010010043f9</action>
        <action>maincpu.mq@396a8 = 0015001112001029</action>
        <action>maincpu.mq@396b0 = 0040b20067f60c00</action>
        <action>maincpu.mq@396b8 = 00fd660253100c00</action>
        <action>maincpu.mq@396c0 = 00fe660252100c00</action>
        <action>maincpu.mq@396c8 = 00fb660404100010</action>
        <action>maincpu.mq@396d0 = 0c0000f766040610</action>
        <action>maincpu.mq@396d8 = 00100c0000ef6602</action>
        <action>maincpu.mq@396e0 = 12900c0000df6604</action>
        <action>maincpu.mq@396e8 = 12bc00ff60beffff</action>
        <!--
        396a0 | 41f9 0010 0100 : lea    $100100.l,A0 // sound code address
        396a6 | 43f9 0015 0011 : lea    $150011.l,A1 // sound latch address
        396ac | 1200           : move.b D0,D1
        396ae | 1029 0040      : move.b ($40,A1),D0  // read input
        396b2 | b200           : cmp.b  D0,D1
        396b4 | 67f6           : beq    $396ac
        396b6 | 0c00 00fd      : cmpi.b #-$3,D0
        396ba | 6602           : bne    $396be
        396bc | 5310           : subq.b #1,(A0)      // decrease code -01
        396be | 0c00 00fe      : cmpi.b #-$2,D0
        396c2 | 6602           : bne    $396c6
        396c4 | 5210           : addq.b #1,(A0)      // increase code +01
        396c6 | 0c00 00fb      : cmpi.b #-$5,D0
        396ca | 6604           : bne    $396d0
        396cc | 0410 0010      : subi.b #$10,(A0)    // decrease code -10
        396d0 | 0c00 00f7      : cmpi.b #-$9,D0
        396d4 | 6604           : bne    $396da
        396d6 | 0610 0010      : addi.b #$10,(A0)    // increase code +10
        396da | 0c00 00ef      : cmpi.b #-$11,D0
        396de | 6602           : bne    $396e2
        396e0 | 1290           : move.b (A0),(A1)    // play sound
        396e2 | 0c00 00df      : cmpi.b #-$21,D0
        396e6 | 6604           : bne    $396ec
        396e8 | 12bc 00ff      : move.b #$ff,(A1)    // stop sound
        396ec | 60be           : bra    $396ac
        -->
    </script>
    <script state="run">
        <output format="----- final star force 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@100100</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mq@007ca = 41f9001000000c10</action>
        <action>maincpu.mq@396a0 = ffffffffffffffff</action>
        <action>maincpu.mq@396a8 = ffffffffffffffff</action>
        <action>maincpu.mq@396b0 = ffffffffffffffff</action>
        <action>maincpu.mq@396b8 = ffffffffffffffff</action>
        <action>maincpu.mq@396c0 = ffffffffffffffff</action>
        <action>maincpu.mq@396c8 = ffffffffffffffff</action>
        <action>maincpu.mq@396d0 = ffffffffffffffff</action>
        <action>maincpu.mq@396d8 = ffffffffffffffff</action>
        <action>maincpu.mq@396e0 = ffffffffffffffff</action>
        <action>maincpu.mq@396e8 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="skip rom check">
    <script state="on">
        <action>maincpu.mb@1ad57 =   56</action> <!-- skip rom check -->
        <action>maincpu.mw@1a102 = 0001</action> <!-- skip result screen -->
    </script>
    <script state="off">
        <action>maincpu.mb@1ad57 =   0a</action>
        <action>maincpu.mw@1a102 = 012c</action>
    </script>
</cheat>
I confirm that all sets for fstarfrc use the same codes and addresses except "sound test mode" for fstarfrcw.

Code: Select all

<cheat desc="sound test mode">
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action>maincpu.mq@00734 = 4ef9000396a00c10</action>
        <action>maincpu.mq@396a0 = 41f90010010043f9</action>
        <action>maincpu.mq@396a8 = 0015001112001029</action>
        <action>maincpu.mq@396b0 = 0040b20067f60c00</action>
        <action>maincpu.mq@396b8 = 00fd660253100c00</action>
        <action>maincpu.mq@396c0 = 00fe660252100c00</action>
        <action>maincpu.mq@396c8 = 00fb660404100010</action>
        <action>maincpu.mq@396d0 = 0c0000f766040610</action>
        <action>maincpu.mq@396d8 = 00100c0000ef6602</action>
        <action>maincpu.mq@396e0 = 12900c0000df6604</action>
        <action>maincpu.mq@396e8 = 12bc00ff60beffff</action>
        <!--
        396a0 | 41f9 0010 0100 : lea    $100100.l,A0 // sound code address
        396a6 | 43f9 0015 0011 : lea    $150011.l,A1 // sound latch address
        396ac | 1200           : move.b D0,D1
        396ae | 1029 0040      : move.b ($40,A1),D0  // read input
        396b2 | b200           : cmp.b  D0,D1
        396b4 | 67f6           : beq    $396ac
        396b6 | 0c00 00fd      : cmpi.b #-$3,D0
        396ba | 6602           : bne    $396be
        396bc | 5310           : subq.b #1,(A0)      // decrease code -01
        396be | 0c00 00fe      : cmpi.b #-$2,D0
        396c2 | 6602           : bne    $396c6
        396c4 | 5210           : addq.b #1,(A0)      // increase code +01
        396c6 | 0c00 00fb      : cmpi.b #-$5,D0
        396ca | 6604           : bne    $396d0
        396cc | 0410 0010      : subi.b #$10,(A0)    // decrease code -10
        396d0 | 0c00 00f7      : cmpi.b #-$9,D0
        396d4 | 6604           : bne    $396da
        396d6 | 0610 0010      : addi.b #$10,(A0)    // increase code +10
        396da | 0c00 00ef      : cmpi.b #-$11,D0
        396de | 6602           : bne    $396e2
        396e0 | 1290           : move.b (A0),(A1)    // play sound
        396e2 | 0c00 00df      : cmpi.b #-$21,D0
        396e6 | 6604           : bne    $396ec
        396e8 | 12bc 00ff      : move.b #$ff,(A1)    // stop sound
        396ec | 60be           : bra    $396ac
        -->
    </script>
    <script state="run">
        <output format="----- final star force 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@100100</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mq@00734 = 41f9001000000c10</action>
        <action>maincpu.mq@396a0 = ffffffffffffffff</action>
        <action>maincpu.mq@396a8 = ffffffffffffffff</action>
        <action>maincpu.mq@396b0 = ffffffffffffffff</action>
        <action>maincpu.mq@396b8 = ffffffffffffffff</action>
        <action>maincpu.mq@396c0 = ffffffffffffffff</action>
        <action>maincpu.mq@396c8 = ffffffffffffffff</action>
        <action>maincpu.mq@396d0 = ffffffffffffffff</action>
        <action>maincpu.mq@396d8 = ffffffffffffffff</action>
        <action>maincpu.mq@396e0 = ffffffffffffffff</action>
        <action>maincpu.mq@396e8 = ffffffffffffffff</action>
    </script>
</cheat>

[fstarfrc]+ Final Star Force

Posted: Sun Apr 28, 2024 5:16 am
by jman
fstarfrc.xml

Code: Select all

<!-- Final Star Force (US) -->
<mamecheat version="1">

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

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@E093 = 01</action>
        </script>
        <script state="off">
            <action>maincpu.mb@E093 = 3C</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0014">01 (slow)</item>
            <item value="0x0028">02       </item>
            <item value="0x003c">03       </item>
            <item value="0x0050">04       </item>
            <item value="0x0064">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@103B8 = 4EB86670        </action>
            <action>maincpu.mq@06670 = 0200000F323C0000</action>
            <action>maincpu.mq@06678 = 4A006606323C0028</action>
            <action>maincpu.mq@06680 = 4A004E75FFFFFFFF</action>
            <!--
            6670 | 0200 000F : andi.b  #$f, D0
            6674 | 323C xxxx : move.w  #$xx, D1
            6678 | 4A00      : tst.b   D0
            667A | 6606      : bne     $6682
            667C | 323C 0028 : move.w  #$28, D1
            6680 | 4A00      : tst.b   D0
            6682 | 4E75      : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@6676 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@103B8 = 0200000F        </action>
            <action>maincpu.mq@06670 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@06678 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@06680 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x0020">01 (slow)</item>
            <item value="0x0040">02       </item>
            <item value="0x0060">03       </item>
            <item value="0x0080">04       </item>
            <item value="0x00a0">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@11B52 = 4EB86690        </action>
            <action>maincpu.mq@06690 = 3829000A67066A04</action>
            <action>maincpu.mq@06698 = 383C00004E75FFFF</action>
            <!--
            6690 | 3829 000A : move.w  ($a,A1), D4
            6694 | 6706      : beq     $669c
            6696 | 6A04      : bpl     $669c
            6698 | 383C xxxx : move.w  #$xx, D4
            669C | 4E75      : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@669A = -param</action>
        </script>
        <script state="off">
            <action>maincpu.md@11B52 = 3829000A        </action>
            <action>maincpu.mq@06690 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@06698 = FFFFFFFFFFFFFFFF</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@007CA = 4EF9000396A00C10</action>
            <action>maincpu.mq@396A0 = 41F90010100043F9</action>
            <action>maincpu.mq@396A8 = 0015001112001029</action>
            <action>maincpu.mq@396B0 = 0040B20067F60C00</action>
            <action>maincpu.mq@396B8 = 00FD660253100C00</action>
            <action>maincpu.mq@396C0 = 00FE660252100C00</action>
            <action>maincpu.mq@396C8 = 00FB660404100010</action>
            <action>maincpu.mq@396D0 = 0C0000F766040610</action>
            <action>maincpu.mq@396D8 = 00100C0000EF6602</action>
            <action>maincpu.mq@396E0 = 12900C0000DF6604</action>
            <action>maincpu.mq@396E8 = 12BC00FF60BEFFFF</action>
            <!--
            396A0 | 41F9 0010 1000 : lea     $101000.l, A0 // sound code address
            396A6 | 43F9 0015 0011 : lea     $150011.l, A1 // sound latch address
            396AC | 1200           : move.b  D0, D1
            396AE | 1029 0040      : move.b  ($40,A1), D0  // read input ($150051)
            396B2 | B200           : cmp.b   D0, D1
            396B4 | 67F6           : beq     $396ac
            396B6 | 0C00 00FD      : cmpi.b  #-$3, D0
            396BA | 6602           : bne     $396be
            396BC | 5310           : subq.b  #1, (A0)      // decrease code -01
            396BE | 0C00 00FE      : cmpi.b  #-$2, D0
            396C2 | 6602           : bne     $396c6
            396C4 | 5210           : addq.b  #1, (A0)      // increase code +01
            396C6 | 0C00 00FB      : cmpi.b  #-$5, D0
            396CA | 6604           : bne     $396d0
            396CC | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            396D0 | 0C00 00F7      : cmpi.b  #-$9, D0
            396D4 | 6604           : bne     $396da
            396D6 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            396DA | 0C00 00EF      : cmpi.b  #-$11, D0
            396DE | 6602           : bne     $396e2
            396E0 | 1290           : move.b  (A0), (A1)    // play sound
            396E2 | 0C00 00DF      : cmpi.b  #-$21, D0
            396E6 | 6604           : bne     $396ec
            396E8 | 12BC 00FF      : move.b  #$ff, (A1)    // stop sound
            396EC | 60BE           : bra     $396ac
            -->
        </script>
        <script state="run">
            <output format="----- final star force sound test mode -----" line="10" align="center" />
            <output format="left : decrease code -01"                     line="11" align="center" />
            <output format="right : increase code +01"                    line="12" align="center" />
            <output format="down : decrease code -10"                     line="13" align="center" />
            <output format="up : increase code +10"                       line="14" align="center" />
            <output format="button 1 : play sound"                        line="15" align="center" />
            <output format="button 2 : stop sound"                        line="16" align="center" />
            <output format="----------------------------"                 line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;"            line="19" align="center"  >
                <argument>maincpu.pb@101000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@007CA = 41F9001000000C10</action>
            <action>maincpu.mq@396A0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@396A8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@396B0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@396B8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@396C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@396C8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@396D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@396D8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@396E0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@396E8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip rom check">
        <script state="on">
            <action>maincpu.mw@1AD56 = 0056</action> <!-- rom check -->
<!--        <action>maincpu.mw@1A102 = 0001</action> <!== result screen ==> -->
        </script>
        <script state="off">
            <action>maincpu.mw@1AD56 = 000A</action>
<!--        <action>maincpu.mw@1A102 = 012C</action> -->
        </script>
    </cheat>

</mamecheat>
fstarfrcj.xml

Code: Select all

<!-- Final Star Force (Japan, set 1) -->
<mamecheat version="1">

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

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@E093 = 01</action>
        </script>
        <script state="off">
            <action>maincpu.mb@E093 = 3C</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0014">01 (slow)</item>
            <item value="0x0028">02       </item>
            <item value="0x003c">03       </item>
            <item value="0x0050">04       </item>
            <item value="0x0064">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@103B8 = 4EB86670        </action>
            <action>maincpu.mq@06670 = 0200000F323C0000</action>
            <action>maincpu.mq@06678 = 4A006606323C0028</action>
            <action>maincpu.mq@06680 = 4A004E75FFFFFFFF</action>
            <!--
            6670 | 0200 000F : andi.b  #$f, D0
            6674 | 323C xxxx : move.w  #$xx, D1
            6678 | 4A00      : tst.b   D0
            667A | 6606      : bne     $6682
            667C | 323C 0028 : move.w  #$28, D1
            6680 | 4A00      : tst.b   D0
            6682 | 4E75      : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@6676 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@103B8 = 0200000F        </action>
            <action>maincpu.mq@06670 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@06678 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@06680 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x0020">01 (slow)</item>
            <item value="0x0040">02       </item>
            <item value="0x0060">03       </item>
            <item value="0x0080">04       </item>
            <item value="0x00a0">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@11B52 = 4EB86690        </action>
            <action>maincpu.mq@06690 = 3829000A67066A04</action>
            <action>maincpu.mq@06698 = 383C00004E75FFFF</action>
            <!--
            6690 | 3829 000A : move.w  ($a,A1), D4
            6694 | 6706      : beq     $669c
            6696 | 6A04      : bpl     $669c
            6698 | 383C xxxx : move.w  #$xx, D4
            669C | 4E75      : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@669A = -param</action>
        </script>
        <script state="off">
            <action>maincpu.md@11B52 = 3829000A        </action>
            <action>maincpu.mq@06690 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@06698 = FFFFFFFFFFFFFFFF</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@007CA = 4EF9000396A00C10</action>
            <action>maincpu.mq@396A0 = 41F90010100043F9</action>
            <action>maincpu.mq@396A8 = 0015001112001029</action>
            <action>maincpu.mq@396B0 = 0040B20067F60C00</action>
            <action>maincpu.mq@396B8 = 00FD660253100C00</action>
            <action>maincpu.mq@396C0 = 00FE660252100C00</action>
            <action>maincpu.mq@396C8 = 00FB660404100010</action>
            <action>maincpu.mq@396D0 = 0C0000F766040610</action>
            <action>maincpu.mq@396D8 = 00100C0000EF6602</action>
            <action>maincpu.mq@396E0 = 12900C0000DF6604</action>
            <action>maincpu.mq@396E8 = 12BC00FF60BEFFFF</action>
            <!--
            396A0 | 41F9 0010 1000 : lea     $101000.l, A0 // sound code address
            396A6 | 43F9 0015 0011 : lea     $150011.l, A1 // sound latch address
            396AC | 1200           : move.b  D0, D1
            396AE | 1029 0040      : move.b  ($40,A1), D0  // read input ($150051)
            396B2 | B200           : cmp.b   D0, D1
            396B4 | 67F6           : beq     $396ac
            396B6 | 0C00 00FD      : cmpi.b  #-$3, D0
            396BA | 6602           : bne     $396be
            396BC | 5310           : subq.b  #1, (A0)      // decrease code -01
            396BE | 0C00 00FE      : cmpi.b  #-$2, D0
            396C2 | 6602           : bne     $396c6
            396C4 | 5210           : addq.b  #1, (A0)      // increase code +01
            396C6 | 0C00 00FB      : cmpi.b  #-$5, D0
            396CA | 6604           : bne     $396d0
            396CC | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            396D0 | 0C00 00F7      : cmpi.b  #-$9, D0
            396D4 | 6604           : bne     $396da
            396D6 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            396DA | 0C00 00EF      : cmpi.b  #-$11, D0
            396DE | 6602           : bne     $396e2
            396E0 | 1290           : move.b  (A0), (A1)    // play sound
            396E2 | 0C00 00DF      : cmpi.b  #-$21, D0
            396E6 | 6604           : bne     $396ec
            396E8 | 12BC 00FF      : move.b  #$ff, (A1)    // stop sound
            396EC | 60BE           : bra     $396ac
            -->
        </script>
        <script state="run">
            <output format="----- final star force sound test mode -----" line="10" align="center" />
            <output format="left : decrease code -01"                     line="11" align="center" />
            <output format="right : increase code +01"                    line="12" align="center" />
            <output format="down : decrease code -10"                     line="13" align="center" />
            <output format="up : increase code +10"                       line="14" align="center" />
            <output format="button 1 : play sound"                        line="15" align="center" />
            <output format="button 2 : stop sound"                        line="16" align="center" />
            <output format="----------------------------"                 line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;"            line="19" align="center"  >
                <argument>maincpu.pb@101000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@007CA = 41F9001000000C10</action>
            <action>maincpu.mq@396A0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@396A8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@396B0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@396B8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@396C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@396C8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@396D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@396D8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@396E0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@396E8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip rom check">
        <script state="on">
            <action>maincpu.mw@1AD56 = 0056</action> <!-- rom check -->
<!--        <action>maincpu.mw@1A102 = 0001</action> <!== result screen ==> -->
        </script>
        <script state="off">
            <action>maincpu.mw@1AD56 = 000A</action>
<!--        <action>maincpu.mw@1A102 = 012C</action> -->
        </script>
    </cheat>

</mamecheat>
fstarfrcja.xml

Code: Select all

<!-- Final Star Force (Japan, set 2) -->
<mamecheat version="1">

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

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@E093 = 01</action>
        </script>
        <script state="off">
            <action>maincpu.mb@E093 = 3C</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0014">01 (slow)</item>
            <item value="0x0028">02       </item>
            <item value="0x003c">03       </item>
            <item value="0x0050">04       </item>
            <item value="0x0064">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@103B8 = 4EB86670        </action>
            <action>maincpu.mq@06670 = 0200000F323C0000</action>
            <action>maincpu.mq@06678 = 4A006606323C0028</action>
            <action>maincpu.mq@06680 = 4A004E75FFFFFFFF</action>
            <!--
            6670 | 0200 000F : andi.b  #$f, D0
            6674 | 323C xxxx : move.w  #$xx, D1
            6678 | 4A00      : tst.b   D0
            667A | 6606      : bne     $6682
            667C | 323C 0028 : move.w  #$28, D1
            6680 | 4A00      : tst.b   D0
            6682 | 4E75      : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@6676 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@103B8 = 0200000F        </action>
            <action>maincpu.mq@06670 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@06678 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@06680 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x0020">01 (slow)</item>
            <item value="0x0040">02       </item>
            <item value="0x0060">03       </item>
            <item value="0x0080">04       </item>
            <item value="0x00a0">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@11B52 = 4EB86690        </action>
            <action>maincpu.mq@06690 = 3829000A67066A04</action>
            <action>maincpu.mq@06698 = 383C00004E75FFFF</action>
            <!--
            6690 | 3829 000A : move.w  ($a,A1), D4
            6694 | 6706      : beq     $669c
            6696 | 6A04      : bpl     $669c
            6698 | 383C xxxx : move.w  #$xx, D4
            669C | 4E75      : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@669A = -param</action>
        </script>
        <script state="off">
            <action>maincpu.md@11B52 = 3829000A        </action>
            <action>maincpu.mq@06690 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@06698 = FFFFFFFFFFFFFFFF</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@007CA = 4EF9000396A00C10</action>
            <action>maincpu.mq@396A0 = 41F90010100043F9</action>
            <action>maincpu.mq@396A8 = 0015001112001029</action>
            <action>maincpu.mq@396B0 = 0040B20067F60C00</action>
            <action>maincpu.mq@396B8 = 00FD660253100C00</action>
            <action>maincpu.mq@396C0 = 00FE660252100C00</action>
            <action>maincpu.mq@396C8 = 00FB660404100010</action>
            <action>maincpu.mq@396D0 = 0C0000F766040610</action>
            <action>maincpu.mq@396D8 = 00100C0000EF6602</action>
            <action>maincpu.mq@396E0 = 12900C0000DF6604</action>
            <action>maincpu.mq@396E8 = 12BC00FF60BEFFFF</action>
            <!--
            396A0 | 41F9 0010 1000 : lea     $101000.l, A0 // sound code address
            396A6 | 43F9 0015 0011 : lea     $150011.l, A1 // sound latch address
            396AC | 1200           : move.b  D0, D1
            396AE | 1029 0040      : move.b  ($40,A1), D0  // read input ($150051)
            396B2 | B200           : cmp.b   D0, D1
            396B4 | 67F6           : beq     $396ac
            396B6 | 0C00 00FD      : cmpi.b  #-$3, D0
            396BA | 6602           : bne     $396be
            396BC | 5310           : subq.b  #1, (A0)      // decrease code -01
            396BE | 0C00 00FE      : cmpi.b  #-$2, D0
            396C2 | 6602           : bne     $396c6
            396C4 | 5210           : addq.b  #1, (A0)      // increase code +01
            396C6 | 0C00 00FB      : cmpi.b  #-$5, D0
            396CA | 6604           : bne     $396d0
            396CC | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            396D0 | 0C00 00F7      : cmpi.b  #-$9, D0
            396D4 | 6604           : bne     $396da
            396D6 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            396DA | 0C00 00EF      : cmpi.b  #-$11, D0
            396DE | 6602           : bne     $396e2
            396E0 | 1290           : move.b  (A0), (A1)    // play sound
            396E2 | 0C00 00DF      : cmpi.b  #-$21, D0
            396E6 | 6604           : bne     $396ec
            396E8 | 12BC 00FF      : move.b  #$ff, (A1)    // stop sound
            396EC | 60BE           : bra     $396ac
            -->
        </script>
        <script state="run">
            <output format="----- final star force sound test mode -----" line="10" align="center" />
            <output format="left : decrease code -01"                     line="11" align="center" />
            <output format="right : increase code +01"                    line="12" align="center" />
            <output format="down : decrease code -10"                     line="13" align="center" />
            <output format="up : increase code +10"                       line="14" align="center" />
            <output format="button 1 : play sound"                        line="15" align="center" />
            <output format="button 2 : stop sound"                        line="16" align="center" />
            <output format="----------------------------"                 line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;"            line="19" align="center"  >
                <argument>maincpu.pb@101000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@007CA = 41F9001000000C10</action>
            <action>maincpu.mq@396A0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@396A8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@396B0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@396B8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@396C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@396C8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@396D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@396D8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@396E0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@396E8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip rom check">
        <script state="on">
            <action>maincpu.mw@1AD56 = 0056</action> <!-- rom check -->
<!--        <action>maincpu.mw@1A102 = 0001</action> <!== result screen ==> -->
        </script>
        <script state="off">
            <action>maincpu.mw@1AD56 = 000A</action>
<!--        <action>maincpu.mw@1A102 = 012C</action> -->
        </script>
    </cheat>

</mamecheat>
fstarfrcw.xml

Code: Select all

<!-- Final Star Force (World?) -->
<mamecheat version="1">

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

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@E093 = 01</action>
        </script>
        <script state="off">
            <action>maincpu.mb@E093 = 3C</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0014">01 (slow)</item>
            <item value="0x0028">02       </item>
            <item value="0x003c">03       </item>
            <item value="0x0050">04       </item>
            <item value="0x0064">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@103B8 = 4EB86670        </action>
            <action>maincpu.mq@06670 = 0200000F323C0000</action>
            <action>maincpu.mq@06678 = 4A006606323C0028</action>
            <action>maincpu.mq@06680 = 4A004E75FFFFFFFF</action>
            <!--
            6670 | 0200 000F : andi.b  #$f, D0
            6674 | 323C xxxx : move.w  #$xx, D1
            6678 | 4A00      : tst.b   D0
            667A | 6606      : bne     $6682
            667C | 323C 0028 : move.w  #$28, D1
            6680 | 4A00      : tst.b   D0
            6682 | 4E75      : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@6676 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@103B8 = 0200000F        </action>
            <action>maincpu.mq@06670 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@06678 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@06680 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x0020">01 (slow)</item>
            <item value="0x0040">02       </item>
            <item value="0x0060">03       </item>
            <item value="0x0080">04       </item>
            <item value="0x00a0">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@11B52 = 4EB86690        </action>
            <action>maincpu.mq@06690 = 3829000A67066A04</action>
            <action>maincpu.mq@06698 = 383C00004E75FFFF</action>
            <!--
            6690 | 3829 000A : move.w  ($a,A1), D4
            6694 | 6706      : beq     $669c
            6696 | 6A04      : bpl     $669c
            6698 | 383C xxxx : move.w  #$xx, D4
            669C | 4E75      : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@669A = -param</action>
        </script>
        <script state="off">
            <action>maincpu.md@11B52 = 3829000A        </action>
            <action>maincpu.mq@06690 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@06698 = FFFFFFFFFFFFFFFF</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@00734 = 4EF9000396A00C10</action>
            <action>maincpu.mq@396A0 = 41F90010100043F9</action>
            <action>maincpu.mq@396A8 = 0015001112001029</action>
            <action>maincpu.mq@396B0 = 0040B20067F60C00</action>
            <action>maincpu.mq@396B8 = 00FD660253100C00</action>
            <action>maincpu.mq@396C0 = 00FE660252100C00</action>
            <action>maincpu.mq@396C8 = 00FB660404100010</action>
            <action>maincpu.mq@396D0 = 0C0000F766040610</action>
            <action>maincpu.mq@396D8 = 00100C0000EF6602</action>
            <action>maincpu.mq@396E0 = 12900C0000DF6604</action>
            <action>maincpu.mq@396E8 = 12BC00FF60BEFFFF</action>
            <!--
            396A0 | 41F9 0010 1000 : lea     $101000.l, A0 // sound code address
            396A6 | 43F9 0015 0011 : lea     $150011.l, A1 // sound latch address
            396AC | 1200           : move.b  D0, D1
            396AE | 1029 0040      : move.b  ($40,A1), D0  // read input ($150051)
            396B2 | B200           : cmp.b   D0, D1
            396B4 | 67F6           : beq     $396ac
            396B6 | 0C00 00FD      : cmpi.b  #-$3, D0
            396BA | 6602           : bne     $396be
            396BC | 5310           : subq.b  #1, (A0)      // decrease code -01
            396BE | 0C00 00FE      : cmpi.b  #-$2, D0
            396C2 | 6602           : bne     $396c6
            396C4 | 5210           : addq.b  #1, (A0)      // increase code +01
            396C6 | 0C00 00FB      : cmpi.b  #-$5, D0
            396CA | 6604           : bne     $396d0
            396CC | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            396D0 | 0C00 00F7      : cmpi.b  #-$9, D0
            396D4 | 6604           : bne     $396da
            396D6 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            396DA | 0C00 00EF      : cmpi.b  #-$11, D0
            396DE | 6602           : bne     $396e2
            396E0 | 1290           : move.b  (A0), (A1)    // play sound
            396E2 | 0C00 00DF      : cmpi.b  #-$21, D0
            396E6 | 6604           : bne     $396ec
            396E8 | 12BC 00FF      : move.b  #$ff, (A1)    // stop sound
            396EC | 60BE           : bra     $396ac
            -->
        </script>
        <script state="run">
            <output format="----- final star force sound test mode -----" line="10" align="center" />
            <output format="left : decrease code -01"                     line="11" align="center" />
            <output format="right : increase code +01"                    line="12" align="center" />
            <output format="down : decrease code -10"                     line="13" align="center" />
            <output format="up : increase code +10"                       line="14" align="center" />
            <output format="button 1 : play sound"                        line="15" align="center" />
            <output format="button 2 : stop sound"                        line="16" align="center" />
            <output format="----------------------------"                 line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;"            line="19" align="center"  >
                <argument>maincpu.pb@101000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@00734 = 41F9001000000C10</action>
            <action>maincpu.mq@396A0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@396A8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@396B0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@396B8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@396C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@396C8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@396D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@396D8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@396E0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@396E8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip rom check">
        <script state="on">
            <action>maincpu.mw@1AD56 = 0056</action> <!-- rom check -->
<!--        <action>maincpu.mw@1A102 = 0001</action> <!== result screen ==> -->
        </script>
        <script state="off">
            <action>maincpu.mw@1AD56 = 000A</action>
<!--        <action>maincpu.mw@1A102 = 012C</action> -->
        </script>
    </cheat>

</mamecheat>
"skip rom check" : Disabled result screen skip due to no title music.