[tfrceacj] Thunder Force AC

This forum is for posting M.A.M.E. Work In Progress "Arcade"cheats that are not quite ready for the prime time. If the cheats are buggy or the cheat descriptions are non-standard then please post them here. Help maybe given but there are no guarantees and they will only be added to the cheat file when the cheat file maintainer is happy with them.
Post Reply
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[tfrceacj] Thunder Force AC

Post by jman »

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>maincpu.mb@4bc5 = 08</action> <!-- enemy -->
        <action>maincpu.mb@4ce8 = 60</action> <!-- bullet -->
        <action>maincpu.mb@4b10 = 60</action> <!-- background 1 -->
        <action>maincpu.mb@4b22 = 60</action> <!-- background 2 -->
    </script>
    <script state="off">
        <action>maincpu.mb@4bc5 = 04</action>
        <action>maincpu.mb@4ce8 = 64</action>
        <action>maincpu.mb@4b10 = 6a</action>
        <action>maincpu.mb@4b22 = 6a</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mb@22af = 02</action>
    </script>
    <script state="off">
        <action>maincpu.mb@22af = 0c</action>
    </script>
</cheat>

<cheat desc="sound test mode">
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action>maincpu.mw@0932c =             4e75</action> <!-- sound routine stopper -->
        <action>maincpu.mq@00f1c = 4ef900018480203c</action>
        <action>maincpu.mq@18480 = 4df8840014031639</action>
        <action>maincpu.mq@18488 = 00840001b40367f4</action>
        <action>maincpu.mq@18490 = 0c03007f66025316</action>
        <action>maincpu.mq@18498 = 0c0300bf66025216</action>
        <action>maincpu.mq@184a0 = 0c0300ef66040416</action>
        <action>maincpu.mq@184a8 = 00100c0300df6604</action>
        <action>maincpu.mq@184b0 = 061600100c0300fe</action>
        <action>maincpu.mq@184b8 = 660812164eb90000</action>
        <action>maincpu.mq@184c0 = 92d80c0300fd6608</action>
        <action>maincpu.mq@184c8 = 70024eb900060004</action>
        <action>maincpu.mq@184d0 = 60b2ffffffffffff</action>
        <!--
        18480 | 4df8 8400      : lea    $8400.w,A6   // sound code address
        18484 | 1403           : move.b D3,D2
        18486 | 1639 0084 0001 : move.b $840001.l,D3 // read input
        1848c | b403           : cmp.b  D3,D2
        1848e | 67f4           : beq    $18484
        18490 | 0c03 007f      : cmpi.b #$7f,D3
        18494 | 6602           : bne    $18498
        18496 | 5316           : subq.b #1,(A6)      // decrease code -01
        18498 | 0c03 00bf      : cmpi.b #-$41,D3
        1849c | 6602           : bne    $184a0
        1849e | 5216           : addq.b #1,(A6)      // increase code +01
        184a0 | 0c03 00ef      : cmpi.b #-$11,D3
        184a4 | 6604           : bne    $184aa
        184a6 | 0416 0010      : subi.b #$10,(A6)    // decrease code -10
        184aa | 0c03 00df      : cmpi.b #-$21,D3
        184ae | 6604           : bne    $184b4
        184b0 | 0616 0010      : addi.b #$10,(A6)    // increase code +10
        184b4 | 0c03 00fe      : cmpi.b #-$2,D3
        184b8 | 6608           : bne    $184c2
        184ba | 1216           : move.b (A6),D1      // play sound
        184bc | 4eb9 0000 92d8 : jsr    $92d8.l
        184c2 | 0c03 00fd      : cmpi.b #-$3,D3
        184c6 | 6608           : bne    $184d0
        184c8 | 7002           : moveq  #$2,D0       // stop sound
        184ca | 4eb9 0006 0004 : jsr    $60004.l
        184d0 | 60b2           : bra    $18484
        -->
    </script>
    <script state="run">
        <output format="----- thunder force ac 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@ff8400</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mw@0932c =             6000</action>
        <action>maincpu.mq@00f1c = 31fc0001f19e203c</action>
        <action>maincpu.mq@18480 = ffffffffffffffff</action>
        <action>maincpu.mq@18488 = ffffffffffffffff</action>
        <action>maincpu.mq@18490 = ffffffffffffffff</action>
        <action>maincpu.mq@18498 = ffffffffffffffff</action>
        <action>maincpu.mq@184a0 = ffffffffffffffff</action>
        <action>maincpu.mq@184a8 = ffffffffffffffff</action>
        <action>maincpu.mq@184b0 = ffffffffffffffff</action>
        <action>maincpu.mq@184b8 = ffffffffffffffff</action>
        <action>maincpu.mq@184c0 = ffffffffffffffff</action>
        <action>maincpu.mq@184c8 = ffffffffffffffff</action>
        <action>maincpu.mq@184d0 = ffffffffffffffff</action>
    </script>
</cheat>
The following code is test.

Code: Select all

<cheat desc="bullet speed">
    <parameter min="0x00" max="0x03" step="0x01" />
    <script state="on">
        <action>maincpu.mq@02b40 = 7a024eb9000184e0</action>
        <action>maincpu.mw@02b48 =             4e71</action>
        <action>maincpu.mq@184e0 = 48e705c04e914cdf</action>
        <action>maincpu.mq@184e8 = 03a051cdfff44e75</action>
        <!--
        02b40 | 7axx           : moveq   #$xx,D5 
        02b42 | 4eb9 0001 84e0 : jsr     $184e0.l
        02b48 | 4e71           : nop
        184e0 | 48e7 05c0      : movem.l D5/D7/A0-A1,-(A7)
        184e4 | 4e91           : jsr     (A1)
        184e6 | 4cdf 03a0      : movem.l (A7)+,D5/D7/A0-A1
        184ea | 51cd fff4      : dbra    D5,$184e0
        184ee | 4e75           : rts
        -->
    </script>
    <script state="change">
        <action>maincpu.mb@2b41 = param</action>
    </script>
    <script state="off">
        <action>maincpu.mq@02b40 = 48e701804e914cdf</action>
        <action>maincpu.mw@02b48 =             0180</action>
        <action>maincpu.mq@184e0 = ffffffffffffffff</action>
        <action>maincpu.mq@184e8 = ffffffffffffffff</action>
    </script>
</cheat>
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[tfrceac]+ Thunder Force AC

Post by jman »

tfrceac.xml

Code: Select all

<!-- Thunder Force AC -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@25A2 = 60</action> <!-- background -->
            <action>maincpu.mb@25B4 = 60</action> <!-- background -->
            <action>maincpu.mb@2657 = 08</action> <!-- enemy -->
            <action>maincpu.mb@277A = 60</action> <!-- bullet -->
        </script>
        <script state="off">
            <action>maincpu.mb@25A2 = 6A</action>
            <action>maincpu.mb@25B4 = 6A</action>
            <action>maincpu.mb@2657 = 04</action>
            <action>maincpu.mb@277A = 64</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@7D01 = 02</action>
        </script>
        <script state="off">
            <action>maincpu.mb@7D01 = 0C</action>
        </script>
    </cheat>

    <cheat desc="bullet speed (test)">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.mq@08592 = 7A024EB900018480</action>
            <action>maincpu.mq@0859A = 4E71D1C651CFFFDC</action>
            <action>maincpu.mq@18480 = 48E705C04E914CDF</action>
            <action>maincpu.mq@18488 = 03A051CDFFF44E75</action>
            <!--
            08592 | 7Axx           : moveq   #$xx,D5
            08594 | 4EB9 0001 8480 : jsr     $18480.l
            0859A | 4E71           : nop
            ==================================================
            18480 | 48E7 05C0      : movem.l D5/D7/A0-A1,-(A7)
            18484 | 4E91           : jsr     (A1)
            18486 | 4CDF 03A0      : movem.l (A7)+,D5/D7/A0-A1
            1848A | 51CD FFF4      : dbra    D5,$18480
            1848E | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@8593 = param - 1</action>
        </script>
        <script state="off">
            <action>maincpu.mq@08592 = 48E701804E914CDF</action>
            <action>maincpu.mq@0859A = 0180D1C651CFFFDC</action>
            <action>maincpu.mq@18480 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@18488 = 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.mw@0C4EA = 4E75            </action> <!-- sound routine stopper -->
            <action>maincpu.mq@03DD6 = 4EF900018490203C</action>
            <action>maincpu.mq@18490 = 4DF8840014031639</action>
            <action>maincpu.mq@18498 = 00840001B40367F4</action>
            <action>maincpu.mq@184A0 = 0C03007F66025316</action>
            <action>maincpu.mq@184A8 = 0C0300BF66025216</action>
            <action>maincpu.mq@184B0 = 0C0300EF66040416</action>
            <action>maincpu.mq@184B8 = 00100C0300DF6604</action>
            <action>maincpu.mq@184C0 = 061600100C0300FE</action>
            <action>maincpu.mq@184C8 = 660812164EB90000</action>
            <action>maincpu.mq@184D0 = C4960C0300FD6608</action>
            <action>maincpu.mq@184D8 = 70024EB900060004</action>
            <action>maincpu.mq@184E0 = 60B2FFFFFFFFFFFF</action>
            <!--
            18490 | 4DF8 8400      : lea    $8400.w,A6   // sound code address ($ff8400)
            18494 | 1403           : move.b D3,D2
            18496 | 1639 0084 0001 : move.b $840001.l,D3 // read input
            1849C | B403           : cmp.b  D3,D2
            1849E | 67F4           : beq    $18494
            184A0 | 0C03 007F      : cmpi.b #$7f,D3
            184A4 | 6602           : bne    $184a8
            184A6 | 5316           : subq.b #1,(A6)      // decrease code -01
            184A8 | 0C03 00BF      : cmpi.b #-$41,D3
            184AC | 6602           : bne    $184b0
            184AE | 5216           : addq.b #1,(A6)      // increase code +01
            184B0 | 0C03 00EF      : cmpi.b #-$11,D3
            184B4 | 6604           : bne    $184ba
            184B6 | 0416 0010      : subi.b #$10,(A6)    // decrease code -10
            184BA | 0C03 00DF      : cmpi.b #-$21,D3
            184BE | 6604           : bne    $184c4
            184C0 | 0616 0010      : addi.b #$10,(A6)    // increase code +10
            184C4 | 0C03 00FE      : cmpi.b #-$2,D3
            184C8 | 6608           : bne    $184d2
            184CA | 1216           : move.b (A6),D1      // play sound
            184CC | 4EB9 0000 C496 : jsr    $c496.l
            184D2 | 0C03 00FD      : cmpi.b #-$3,D3
            184D6 | 6608           : bne    $184e0
            184D8 | 7002           : moveq  #$2,D0       // stop sound
            184DA | 4EB9 0006 0004 : jsr    $60004.l
            184E0 | 60B2           : bra    $18494
            -->
        </script>
        <script state="run">
            <output format="----- thunder force ac 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@FF8400</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@0C4EA = 6000            </action>
            <action>maincpu.mq@03DD6 = 31FC0001F19E203C</action>
            <action>maincpu.mq@18490 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@18498 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@184A0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@184A8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@184B0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@184B8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@184C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@184C8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@184D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@184D8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@184E0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
tfrceacj.xml

Code: Select all

<!-- Thunder Force AC (Japan) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@4B10 = 60</action> <!-- background -->
            <action>maincpu.mb@4B22 = 60</action> <!-- background -->
            <action>maincpu.mb@4BC5 = 08</action> <!-- enemy -->
            <action>maincpu.mb@4CE8 = 60</action> <!-- bullet -->
        </script>
        <script state="off">
            <action>maincpu.mb@4B10 = 6A</action>
            <action>maincpu.mb@4B22 = 6A</action>
            <action>maincpu.mb@4BC5 = 04</action>
            <action>maincpu.mb@4CE8 = 64</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@22AF = 02</action>
        </script>
        <script state="off">
            <action>maincpu.mb@22AF = 0C</action>
        </script>
    </cheat>

    <cheat desc="bullet speed (test)">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.mq@02B40 = 7A024EB900018480</action>
            <action>maincpu.mq@02B48 = 4E71D1C651CFFFDC</action>
            <action>maincpu.mq@18480 = 48E705C04E914CDF</action>
            <action>maincpu.mq@18488 = 03A051CDFFF44E75</action>
            <!--
            02B40 | 7Axx           : moveq   #$xx,D5
            02B42 | 4EB9 0001 8480 : jsr     $18480.l
            02B48 | 4E71           : nop
            ==================================================
            18480 | 48E7 05C0      : movem.l D5/D7/A0-A1,-(A7)
            18484 | 4E91           : jsr     (A1)
            18486 | 4CDF 03A0      : movem.l (A7)+,D5/D7/A0-A1
            1848A | 51CD FFF4      : dbra    D5,$184e0
            1848E | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@2b41 = param - 1</action>
        </script>
        <script state="off">
            <action>maincpu.mq@02B40 = 48E701804E914CDF</action>
            <action>maincpu.mq@02B48 = 0180D1C651CFFFDC</action>
            <action>maincpu.mq@184E0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@184E8 = 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.mw@0932C = 4E75            </action> <!-- sound routine stopper -->
            <action>maincpu.mq@00F1C = 4EF900018490203C</action>
            <action>maincpu.mq@18490 = 4DF8840014031639</action>
            <action>maincpu.mq@18498 = 00840001B40367F4</action>
            <action>maincpu.mq@184A0 = 0C03007F66025316</action>
            <action>maincpu.mq@184A8 = 0C0300BF66025216</action>
            <action>maincpu.mq@184B0 = 0C0300EF66040416</action>
            <action>maincpu.mq@184B8 = 00100C0300DF6604</action>
            <action>maincpu.mq@184C0 = 061600100C0300FE</action>
            <action>maincpu.mq@184C8 = 660812164EB90000</action>
            <action>maincpu.mq@184D0 = 92D80C0300FD6608</action>
            <action>maincpu.mq@184D8 = 70024EB900060004</action>
            <action>maincpu.mq@184E0 = 60B2FFFFFFFFFFFF</action>
            <!--
            18490 | 4DF8 8400      : lea    $8400.w,A6   // sound code address ($ff8400)
            18494 | 1403           : move.b D3,D2
            18496 | 1639 0084 0001 : move.b $840001.l,D3 // read input
            1849C | B403           : cmp.b  D3,D2
            1849E | 67F4           : beq    $18494
            184A0 | 0C03 007F      : cmpi.b #$7f,D3
            184A4 | 6602           : bne    $184a8
            184A6 | 5316           : subq.b #1,(A6)      // decrease code -01
            184A8 | 0C03 00BF      : cmpi.b #-$41,D3
            184AC | 6602           : bne    $184b0
            184AE | 5216           : addq.b #1,(A6)      // increase code +01
            184B0 | 0C03 00EF      : cmpi.b #-$11,D3
            184B4 | 6604           : bne    $184ba
            184B6 | 0416 0010      : subi.b #$10,(A6)    // decrease code -10
            184BA | 0C03 00DF      : cmpi.b #-$21,D3
            184BE | 6604           : bne    $184c4
            184C0 | 0616 0010      : addi.b #$10,(A6)    // increase code +10
            184C4 | 0C03 00FE      : cmpi.b #-$2,D3
            184C8 | 6608           : bne    $184d2
            184CA | 1216           : move.b (A6),D1      // play sound
            184CC | 4EB9 0000 92D8 : jsr    $92d8.l
            184D2 | 0C03 00FD      : cmpi.b #-$3,D3
            184D6 | 6608           : bne    $184e0
            184D8 | 7002           : moveq  #$2,D0       // stop sound
            184DA | 4EB9 0006 0004 : jsr    $60004.l
            184E0 | 60B2           : bra    $18494
            -->
        </script>
        <script state="run">
            <output format="----- thunder force ac 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@FF8400</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@0932C = 6000            </action>
            <action>maincpu.mq@00F1C = 31FC0001F19E203C</action>
            <action>maincpu.mq@18490 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@18498 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@184A0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@184A8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@184B0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@184B8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@184C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@184C8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@184D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@184D8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@184E0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
tfrceacb.xml

Code: Select all

<!-- Thunder Force AC (bootleg) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@25A2 = 60</action> <!-- background -->
            <action>maincpu.mb@25B4 = 60</action> <!-- background -->
            <action>maincpu.mb@2657 = 08</action> <!-- enemy -->
            <action>maincpu.mb@277A = 60</action> <!-- bullet -->
        </script>
        <script state="off">
            <action>maincpu.mb@25A2 = 6A</action>
            <action>maincpu.mb@25B4 = 6A</action>
            <action>maincpu.mb@2657 = 04</action>
            <action>maincpu.mb@277A = 64</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@7D01 = 02</action>
        </script>
        <script state="off">
            <action>maincpu.mb@7D01 = 0C</action>
        </script>
    </cheat>

    <cheat desc="bullet speed (test)">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.mq@08592 = 7A024EB900018480</action>
            <action>maincpu.mq@0859A = 4E71D1C651CFFFDC</action>
            <action>maincpu.mq@18480 = 48E705C04E914CDF</action>
            <action>maincpu.mq@18488 = 03A051CDFFF44E75</action>
            <!--
            08592 | 7Axx           : moveq   #$xx,D5
            08594 | 4EB9 0001 8480 : jsr     $18480.l
            0859A | 4E71           : nop
            ==================================================
            18480 | 48E7 05C0      : movem.l D5/D7/A0-A1,-(A7)
            18484 | 4E91           : jsr     (A1)
            18486 | 4CDF 03A0      : movem.l (A7)+,D5/D7/A0-A1
            1848A | 51CD FFF4      : dbra    D5,$18480
            1848E | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@8593 = param - 1</action>
        </script>
        <script state="off">
            <action>maincpu.mq@08592 = 48E701804E914CDF</action>
            <action>maincpu.mq@0859A = 0180D1C651CFFFDC</action>
            <action>maincpu.mq@18480 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@18488 = 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.mw@0C4EA = 4E75            </action> <!-- sound routine stopper -->
            <action>maincpu.mq@03DD6 = 4EF900018490203C</action>
            <action>maincpu.mq@18490 = 4DF8840014031639</action>
            <action>maincpu.mq@18498 = 00840001B40367F4</action>
            <action>maincpu.mq@184A0 = 0C03007F66025316</action>
            <action>maincpu.mq@184A8 = 0C0300BF66025216</action>
            <action>maincpu.mq@184B0 = 0C0300EF66040416</action>
            <action>maincpu.mq@184B8 = 00100C0300DF6604</action>
            <action>maincpu.mq@184C0 = 061600100C0300FE</action>
            <action>maincpu.mq@184C8 = 660812164EB90000</action>
            <action>maincpu.mq@184D0 = C4960C0300FD6608</action>
            <action>maincpu.mq@184D8 = 70024EB900060004</action>
            <action>maincpu.mq@184E0 = 60B2FFFFFFFFFFFF</action>
            <!--
            18490 | 4DF8 8400      : lea    $8400.w,A6   // sound code address ($ff8400)
            18494 | 1403           : move.b D3,D2
            18496 | 1639 0084 0001 : move.b $840001.l,D3 // read input
            1849C | B403           : cmp.b  D3,D2
            1849E | 67F4           : beq    $18494
            184A0 | 0C03 007F      : cmpi.b #$7f,D3
            184A4 | 6602           : bne    $184a8
            184A6 | 5316           : subq.b #1,(A6)      // decrease code -01
            184A8 | 0C03 00BF      : cmpi.b #-$41,D3
            184AC | 6602           : bne    $184b0
            184AE | 5216           : addq.b #1,(A6)      // increase code +01
            184B0 | 0C03 00EF      : cmpi.b #-$11,D3
            184B4 | 6604           : bne    $184ba
            184B6 | 0416 0010      : subi.b #$10,(A6)    // decrease code -10
            184BA | 0C03 00DF      : cmpi.b #-$21,D3
            184BE | 6604           : bne    $184c4
            184C0 | 0616 0010      : addi.b #$10,(A6)    // increase code +10
            184C4 | 0C03 00FE      : cmpi.b #-$2,D3
            184C8 | 6608           : bne    $184d2
            184CA | 1216           : move.b (A6),D1      // play sound
            184CC | 4EB9 0000 C496 : jsr    $c496.l
            184D2 | 0C03 00FD      : cmpi.b #-$3,D3
            184D6 | 6608           : bne    $184e0
            184D8 | 7002           : moveq  #$2,D0       // stop sound
            184DA | 4EB9 0006 0004 : jsr    $60004.l
            184E0 | 60B2           : bra    $18494
            -->
        </script>
        <script state="run">
            <output format="----- thunder force ac 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@FF8400</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@0C4EA = 6000            </action>
            <action>maincpu.mq@03DD6 = 31FC0001F19E203C</action>
            <action>maincpu.mq@18490 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@18498 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@184A0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@184A8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@184B0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@184B8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@184C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@184C8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@184D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@184D8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@184E0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
tfrceacjpb.xml

Code: Select all

<!-- Thunder Force AC (Japan, prototype, bootleg) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@48D2 = 60</action> <!-- background -->
            <action>maincpu.mb@48E4 = 60</action> <!-- background -->
            <action>maincpu.mb@491E = 60</action> <!-- background -->
            <action>maincpu.mb@492E = 60</action> <!-- background -->
            <action>maincpu.mb@4987 = 08</action> <!-- enemy -->
            <action>maincpu.mb@4AA2 = 60</action> <!-- bullet -->
        </script>
        <script state="off">
            <action>maincpu.mb@48D2 = 6A</action>
            <action>maincpu.mb@48E4 = 6A</action>
            <action>maincpu.mb@491E = 6A</action>
            <action>maincpu.mb@492E = 6A</action>
            <action>maincpu.mb@4987 = 04</action>
            <action>maincpu.mb@4AA2 = 64</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@2087 = 02</action>
        </script>
        <script state="off">
            <action>maincpu.mb@2087 = 0C</action>
        </script>
    </cheat>

    <cheat desc="bullet speed (test)">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.mq@0291A = 7A024EB900018410</action>
            <action>maincpu.mq@02922 = 4E71D1C651CFFFDE</action>
            <action>maincpu.mq@18410 = 48E705C04E914CDF</action>
            <action>maincpu.mq@18418 = 03A051CDFFF44E75</action>
            <!--
            0291A | 7Axx           : moveq   #$xx,D5
            0291C | 4EB9 0001 8480 : jsr     $18410.l
            02922 | 4E71           : nop
            ==================================================
            18410 | 48E7 05C0      : movem.l D5/D7/A0-A1,-(A7)
            18414 | 4E91           : jsr     (A1)
            18416 | 4CDF 03A0      : movem.l (A7)+,D5/D7/A0-A1
            1841A | 51CD FFF4      : dbra    D5,$18410
            1841E | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@291B = param - 1</action>
        </script>
        <script state="off">
            <action>maincpu.mq@0291A = 48E701804E914CDF</action>
            <action>maincpu.mq@02922 = 0180D1C651CFFFDE</action>
            <action>maincpu.mq@18410 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@18418 = 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.mw@08B82 = 4E75            </action> <!-- sound routine stopper -->
            <action>maincpu.mq@00ECA = 4EF900018420203C</action>
            <action>maincpu.mq@18420 = 4DF8840014031639</action>
            <action>maincpu.mq@18428 = 00840001B40367F4</action>
            <action>maincpu.mq@18430 = 0C03007F66025316</action>
            <action>maincpu.mq@18438 = 0C0300BF66025216</action>
            <action>maincpu.mq@18440 = 0C0300EF66040416</action>
            <action>maincpu.mq@18448 = 00100C0300DF6604</action>
            <action>maincpu.mq@18450 = 061600100C0300FE</action>
            <action>maincpu.mq@18458 = 660812164EB90000</action>
            <action>maincpu.mq@18460 = 8b440C0300FD6608</action>
            <action>maincpu.mq@18468 = 70024EB900060004</action>
            <action>maincpu.mq@18470 = 60B2FFFFFFFFFFFF</action>
            <!--
            18420 | 4DF8 8400      : lea    $8400.w,A6   // sound code address ($ff8400)
            18424 | 1403           : move.b D3,D2
            18426 | 1639 0084 0001 : move.b $840001.l,D3 // read input
            1842C | B403           : cmp.b  D3,D2
            1842E | 67F4           : beq    $18424
            18430 | 0C03 007F      : cmpi.b #$7f,D3
            18434 | 6602           : bne    $18438
            18436 | 5316           : subq.b #1,(A6)      // decrease code -01
            18438 | 0C03 00BF      : cmpi.b #-$41,D3
            1843C | 6602           : bne    $18440
            1843E | 5216           : addq.b #1,(A6)      // increase code +01
            18440 | 0C03 00EF      : cmpi.b #-$11,D3
            18444 | 6604           : bne    $1844a
            18446 | 0416 0010      : subi.b #$10,(A6)    // decrease code -10
            1844A | 0C03 00DF      : cmpi.b #-$21,D3
            1844E | 6604           : bne    $18454
            18450 | 0616 0010      : addi.b #$10,(A6)    // increase code +10
            18454 | 0C03 00FE      : cmpi.b #-$2,D3
            18458 | 6608           : bne    $18462
            1845A | 1216           : move.b (A6),D1      // play sound
            1845C | 4EB9 0000 8B44 : jsr    $8b44.l
            18462 | 0C03 00FD      : cmpi.b #-$3,D3
            18466 | 6608           : bne    $18470
            18468 | 7002           : moveq  #$2,D0       // stop sound
            1846A | 4EB9 0006 0004 : jsr    $60004.l
            18470 | 60B2           : bra    $18424
            -->
        </script>
        <script state="run">
            <output format="----- thunder force ac 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@FF8400</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@08B82 = 6000            </action>
            <action>maincpu.mq@00ECA = 31FC0001F19E203C</action>
            <action>maincpu.mq@18420 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@18428 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@18430 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@18438 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@18440 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@18448 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@18450 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@18458 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@18460 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@18468 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@18470 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
Post Reply