[terracre]+ Terra Cresta

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

[terracre]+ Terra Cresta

Post by jman »

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>maincpu.mb@a9d7 = 04</action> <!-- bullet -->
        <action>maincpu.mb@a8f9 = a2</action> <!-- enemy -->
        <action>maincpu.mb@a8eb = 58</action> <!-- spread bullet -->
    </script>
    <script state="off">
        <action>maincpu.mb@a9d7 = 06</action>
        <action>maincpu.mb@a8f9 = a6</action>
        <action>maincpu.mb@a8eb = 5c</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mb@9330 = 60</action>
    </script>
    <script state="off">
        <action>maincpu.mb@9330 = 67</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter>
        <item value="0x52">01 (slow)</item>
        <item value="0x54">02       </item>
        <item value="0x56">03       </item>
        <item value="0x58">04       </item>
        <item value="0x5a">05 (fast)</item>
    </parameter>
    <script state="change">
        <action>maincpu.mb@8568 = param    </action> <!-- left -->
        <action>maincpu.mb@8590 = param + 1</action> <!-- right -->
        <action>maincpu.mb@85a8 = param    </action> <!-- up -->
        <action>maincpu.mb@85b6 = param + 1</action> <!-- down -->
    </script>
    <script state="off">
        <action>maincpu.mb@8568 = 52</action>
        <action>maincpu.mb@8590 = 53</action>
        <action>maincpu.mb@85a8 = 52</action>
        <action>maincpu.mb@85b6 = 53</action>
    </script>
</cheat>

<cheat desc="bullet speed">
    <parameter>
        <item value="0x06">01 (slow)</item>
        <item value="0x09">02       </item>
        <item value="0x0c">03       </item>
        <item value="0x0f">04       </item>
        <item value="0x12">05 (fast)</item>
    </parameter>
    <script state="on">
        <action>maincpu.md@9886 =         4eb800f0</action>
        <action>maincpu.mq@00f0 = 0669000000044e75</action>
        <!--
        00f0 : 0669 00xx 0004 : addi.w #$xx,($4,A1)
        00f6 : 4e75           : rts
        -->
    </script>
    <script state="change">
        <action>maincpu.mb@00f3 = param</action>
    </script>
    <script state="off">
        <action>maincpu.md@9886 =         5c690004</action>
        <action>maincpu.mq@00f0 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="skip ram/rom check">
    <script state="on">
        <action>maincpu.mw@11a = 011c</action>
    </script>
    <script state="off">
        <action>maincpu.mw@11a = 1f2e</action>
    </script>
</cheat>
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[terracre] sound test mode

Post by jman »

Code: Select all

<cheat desc="sound test mode">
    <comment>set ram/rom check skip then reset the game (F3)</comment>
    <script state="on">
        <action>maincpu.md@00392 =         0001c000</action>
        <action>maincpu.mq@1c000 = 41f90002020043f9</action>
        <action>maincpu.mq@1c008 = 0002600d12001039</action>
        <action>maincpu.mq@1c010 = 00024001b20067f4</action>
        <action>maincpu.mq@1c018 = 0c0000fb66025310</action>
        <action>maincpu.mq@1c020 = 0c0000f766025210</action>
        <action>maincpu.mq@1c028 = 0c0000fd66040410</action>
        <action>maincpu.mq@1c030 = 00100c0000fe6604</action>
        <action>maincpu.mq@1c038 = 061000100c0000ef</action>
        <action>maincpu.mq@1c040 = 660212900c0000df</action>
        <action>maincpu.mq@1c048 = 660412bc00ff60bc</action>
        <!--
        1c000 | 41f9 0002 0200 : lea    $20200.l,A0 // sound code address
        1c006 | 43f9 0002 600d : lea    $2600d.l,A1 // sound latch address
        1c00c | 1200           : move.b D0,D1
        1c00e | 1039 0002 4001 : move.b $24001.l,D0
        1c014 | b200           : cmp.b  D0,D1
        1c016 | 67f4           : beq    $1c00c
        1c018 | 0c00 00fb      : cmpi.b #-$5,D0
        1c01c | 6602           : bne    $1c020
        1c01e | 5310           : subq.b #1,(A0)     // decrease code -01
        1c020 | 0c00 00f7      : cmpi.b #-$9,D0
        1c024 | 6602           : bne    $1c028
        1c026 | 5210           : addq.b #1,(A0)     // increase code +01
        1c028 | 0c00 00fd      : cmpi.b #-$3,D0
        1c02c | 6604           : bne    $1c032
        1c02e | 0410 0010      : subi.b #$10,(A0)   // decrease code -10
        1c032 | 0c00 00fe      : cmpi.b #-$2,D0
        1c036 | 6604           : bne    $1c03c
        1c038 | 0610 0010      : addi.b #$10,(A0)   // increase code +10
        1c03c | 0c00 00ef      : cmpi.b #-$11,D0
        1c040 | 6602           : bne    $1c044
        1c042 | 1290           : move.b (A0),(A1)   // play sound
        1c044 | 0c00 00df      : cmpi.b #-$21,D0
        1c048 | 6604           : bne    $1c04e
        1c04a | 12bc 00ff      : move.b #$ff,(A1)   // stop sound
        1c04e | 60bc           : bra    $1c00c
        -->
    </script>
    <script state="run">
        <output format="----- terra cresta 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@20200</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.md@00392 =         00008b14</action>
        <action>maincpu.mq@1c000 = ffffffffffffffff</action>
        <action>maincpu.mq@1c008 = ffffffffffffffff</action>
        <action>maincpu.mq@1c010 = ffffffffffffffff</action>
        <action>maincpu.mq@1c018 = ffffffffffffffff</action>
        <action>maincpu.mq@1c020 = ffffffffffffffff</action>
        <action>maincpu.mq@1c028 = ffffffffffffffff</action>
        <action>maincpu.mq@1c030 = ffffffffffffffff</action>
        <action>maincpu.mq@1c038 = ffffffffffffffff</action>
        <action>maincpu.mq@1c040 = ffffffffffffffff</action>
        <action>maincpu.mq@1c048 = ffffffffffffffff</action>
    </script>
</cheat>
I confirm that posted code works in all clones of terracre (the same addresses and codes).
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[terracre]+ Terra Cresta

Post by jman »

terracre.xml

Code: Select all

<!-- Terra Cresta (YM3526 set 1) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@A9D7 = 04</action> <!-- bullet -->
            <action>maincpu.mb@A8EB = 58</action> <!-- spread bullet -->
            <action>maincpu.mb@A8F9 = A2</action> <!-- enemy -->
        </script>
        <script state="off">
            <action>maincpu.mb@A9D7 = 06</action>
            <action>maincpu.mb@A8EB = 5C</action>
            <action>maincpu.mb@A8F9 = A6</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@9330 = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mb@9330 = 67</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x52">01 (slow)</item>
            <item value="0x54">02       </item>
            <item value="0x56">03       </item>
            <item value="0x58">04       </item>
            <item value="0x5a">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mb@85A6 = 64</action> <!-- moving range : up -->
            <action>maincpu.mb@85B4 = 65</action> <!-- moving range : down -->
        </script>
        <script state="change">
            <action>maincpu.mb@8568 = param    </action> <!-- left -->
            <action>maincpu.mb@8590 = param + 1</action> <!-- right -->
            <action>maincpu.mb@85A8 = param    </action> <!-- up -->
            <action>maincpu.mb@85B6 = param + 1</action> <!-- down -->
        </script>
        <script state="off">
            <action>maincpu.mb@85A6 = 67</action>
            <action>maincpu.mb@85B4 = 67</action>
            <action>maincpu.mb@8568 = 52</action>
            <action>maincpu.mb@8590 = 53</action>
            <action>maincpu.mb@85A8 = 52</action>
            <action>maincpu.mb@85B6 = 53</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x0003">01 (slow)</item>
            <item value="0x0006">02       </item>
            <item value="0x0009">03       </item>
            <item value="0x000c">04       </item>
            <item value="0x000f">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@9886 = 4EB80070        </action>
            <action>maincpu.mq@0070 = 0669000000044E75</action> <!-- addi.w #$xx,($4,A1) / rts -->
        </script>
        <script state="change">
            <action>maincpu.mw@0072 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@9886 = 5C690004        </action>
            <action>maincpu.mq@0070 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.md@00392 = 0001C000        </action>
            <action>maincpu.mq@1C000 = 41F90002020043F9</action>
            <action>maincpu.mq@1C008 = 0002600D12001039</action>
            <action>maincpu.mq@1C010 = 00024001B20067F4</action>
            <action>maincpu.mq@1C018 = 0C0000FB66025310</action>
            <action>maincpu.mq@1C020 = 0C0000F766025210</action>
            <action>maincpu.mq@1C028 = 0C0000FD66040410</action>
            <action>maincpu.mq@1C030 = 00100C0000FE6604</action>
            <action>maincpu.mq@1C038 = 061000100C0000EF</action>
            <action>maincpu.mq@1C040 = 660212900C0000DF</action>
            <action>maincpu.mq@1C048 = 660412BC00FF60BC</action>
            <!--
            1C000 | 41F9 0002 0200 : lea     $20200.l, A0 // sound code address
            1C006 | 43F9 0002 600D : lea     $2600d.l, A1 // sound latch address
            1C00C | 1200           : move.b  D0, D1
            1C00E | 1039 0002 4001 : move.b  $24001.l, D0 // read input
            1C014 | B200           : cmp.b   D0, D1
            1C016 | 67F4           : beq     $1c00c
            1C018 | 0C00 00FB      : cmpi.b  #-$5, D0
            1C01C | 6602           : bne     $1c020
            1C01E | 5310           : subq.b  #1, (A0)     // decrease code -01
            1C020 | 0C00 00F7      : cmpi.b  #-$9, D0
            1C024 | 6602           : bne     $1c028
            1C026 | 5210           : addq.b  #1, (A0)     // increase code +01
            1C028 | 0C00 00FD      : cmpi.b  #-$3, D0
            1C02C | 6604           : bne     $1c032
            1C02E | 0410 0010      : subi.b  #$10, (A0)   // decrease code -10
            1C032 | 0C00 00FE      : cmpi.b  #-$2, D0
            1C036 | 6604           : bne     $1c03c
            1C038 | 0610 0010      : addi.b  #$10, (A0)   // increase code +10
            1C03C | 0C00 00EF      : cmpi.b  #-$11, D0
            1C040 | 6602           : bne     $1c044
            1C042 | 1290           : move.b  (A0), (A1)   // play sound
            1C044 | 0C00 00DF      : cmpi.b  #-$21, D0
            1C048 | 6604           : bne     $1c04e
            1C04A | 12BC 00FF      : move.b  #$ff, (A1)   // stop sound
            1C04E | 60BC           : bra     $1c00c
            -->
        </script>
        <script state="run">
            <output format="----- terra cresta 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@20200</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@00392 = 00008B14        </action>
            <action>maincpu.mq@1C000 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1C008 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1C010 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1C018 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1C020 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1C028 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1C030 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1C038 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1C040 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1C048 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@011A = 011C</action>
        </script>
        <script state="off">
            <action>maincpu.mw@011A = 1F2E</action>
        </script>
    </cheat>

</mamecheat>
terracreo.xml

Code: Select all

<!-- Terra Cresta (YM3526 set 2) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@A9D7 = 04</action> <!-- bullet -->
            <action>maincpu.mb@A8EB = 58</action> <!-- spread bullet -->
            <action>maincpu.mb@A8F9 = A2</action> <!-- enemy -->
        </script>
        <script state="off">
            <action>maincpu.mb@A9D7 = 06</action>
            <action>maincpu.mb@A8EB = 5C</action>
            <action>maincpu.mb@A8F9 = A6</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@9330 = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mb@9330 = 67</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x52">01 (slow)</item>
            <item value="0x54">02       </item>
            <item value="0x56">03       </item>
            <item value="0x58">04       </item>
            <item value="0x5a">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mb@85A6 = 64</action> <!-- moving range : up -->
            <action>maincpu.mb@85B4 = 65</action> <!-- moving range : down -->
        </script>
        <script state="change">
            <action>maincpu.mb@8568 = param    </action> <!-- left -->
            <action>maincpu.mb@8590 = param + 1</action> <!-- right -->
            <action>maincpu.mb@85A8 = param    </action> <!-- up -->
            <action>maincpu.mb@85B6 = param + 1</action> <!-- down -->
        </script>
        <script state="off">
            <action>maincpu.mb@85A6 = 67</action>
            <action>maincpu.mb@85B4 = 67</action>
            <action>maincpu.mb@8568 = 52</action>
            <action>maincpu.mb@8590 = 53</action>
            <action>maincpu.mb@85A8 = 52</action>
            <action>maincpu.mb@85B6 = 53</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x0003">01 (slow)</item>
            <item value="0x0006">02       </item>
            <item value="0x0009">03       </item>
            <item value="0x000c">04       </item>
            <item value="0x000f">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@9886 = 4EB80070        </action>
            <action>maincpu.mq@0070 = 0669000000044E75</action> <!-- addi.w #$xx,($4,A1) / rts -->
        </script>
        <script state="change">
            <action>maincpu.mw@0072 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@9886 = 5C690004        </action>
            <action>maincpu.mq@0070 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.md@00392 = 0001C000        </action>
            <action>maincpu.mq@1C000 = 41F90002020043F9</action>
            <action>maincpu.mq@1C008 = 0002600D12001039</action>
            <action>maincpu.mq@1C010 = 00024001B20067F4</action>
            <action>maincpu.mq@1C018 = 0C0000FB66025310</action>
            <action>maincpu.mq@1C020 = 0C0000F766025210</action>
            <action>maincpu.mq@1C028 = 0C0000FD66040410</action>
            <action>maincpu.mq@1C030 = 00100C0000FE6604</action>
            <action>maincpu.mq@1C038 = 061000100C0000EF</action>
            <action>maincpu.mq@1C040 = 660212900C0000DF</action>
            <action>maincpu.mq@1C048 = 660412BC00FF60BC</action>
            <!--
            1C000 | 41F9 0002 0200 : lea     $20200.l, A0 // sound code address
            1C006 | 43F9 0002 600D : lea     $2600d.l, A1 // sound latch address
            1C00C | 1200           : move.b  D0, D1
            1C00E | 1039 0002 4001 : move.b  $24001.l, D0 // read input
            1C014 | B200           : cmp.b   D0, D1
            1C016 | 67F4           : beq     $1c00c
            1C018 | 0C00 00FB      : cmpi.b  #-$5, D0
            1C01C | 6602           : bne     $1c020
            1C01E | 5310           : subq.b  #1, (A0)     // decrease code -01
            1C020 | 0C00 00F7      : cmpi.b  #-$9, D0
            1C024 | 6602           : bne     $1c028
            1C026 | 5210           : addq.b  #1, (A0)     // increase code +01
            1C028 | 0C00 00FD      : cmpi.b  #-$3, D0
            1C02C | 6604           : bne     $1c032
            1C02E | 0410 0010      : subi.b  #$10, (A0)   // decrease code -10
            1C032 | 0C00 00FE      : cmpi.b  #-$2, D0
            1C036 | 6604           : bne     $1c03c
            1C038 | 0610 0010      : addi.b  #$10, (A0)   // increase code +10
            1C03C | 0C00 00EF      : cmpi.b  #-$11, D0
            1C040 | 6602           : bne     $1c044
            1C042 | 1290           : move.b  (A0), (A1)   // play sound
            1C044 | 0C00 00DF      : cmpi.b  #-$21, D0
            1C048 | 6604           : bne     $1c04e
            1C04A | 12BC 00FF      : move.b  #$ff, (A1)   // stop sound
            1C04E | 60BC           : bra     $1c00c
            -->
        </script>
        <script state="run">
            <output format="----- terra cresta 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@20200</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@00392 = 00008B14        </action>
            <action>maincpu.mq@1C000 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1C008 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1C010 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1C018 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1C020 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1C028 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1C030 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1C038 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1C040 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1C048 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@011A = 011C</action>
        </script>
        <script state="off">
            <action>maincpu.mw@011A = 1F2E</action>
        </script>
    </cheat>

</mamecheat>
terracrea.xml

Code: Select all

<!-- Terra Cresta (YM3526 set 3) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@A9D7 = 04</action> <!-- bullet -->
            <action>maincpu.mb@A8EB = 58</action> <!-- spread bullet -->
            <action>maincpu.mb@A8F9 = A2</action> <!-- enemy -->
        </script>
        <script state="off">
            <action>maincpu.mb@A9D7 = 06</action>
            <action>maincpu.mb@A8EB = 5C</action>
            <action>maincpu.mb@A8F9 = A6</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@9330 = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mb@9330 = 67</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x52">01 (slow)</item>
            <item value="0x54">02       </item>
            <item value="0x56">03       </item>
            <item value="0x58">04       </item>
            <item value="0x5a">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mb@85A6 = 64</action> <!-- moving range : up -->
            <action>maincpu.mb@85B4 = 65</action> <!-- moving range : down -->
        </script>
        <script state="change">
            <action>maincpu.mb@8568 = param    </action> <!-- left -->
            <action>maincpu.mb@8590 = param + 1</action> <!-- right -->
            <action>maincpu.mb@85A8 = param    </action> <!-- up -->
            <action>maincpu.mb@85B6 = param + 1</action> <!-- down -->
        </script>
        <script state="off">
            <action>maincpu.mb@85A6 = 67</action>
            <action>maincpu.mb@85B4 = 67</action>
            <action>maincpu.mb@8568 = 52</action>
            <action>maincpu.mb@8590 = 53</action>
            <action>maincpu.mb@85A8 = 52</action>
            <action>maincpu.mb@85B6 = 53</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x0003">01 (slow)</item>
            <item value="0x0006">02       </item>
            <item value="0x0009">03       </item>
            <item value="0x000c">04       </item>
            <item value="0x000f">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@9886 = 4EB80070        </action>
            <action>maincpu.mq@0070 = 0669000000044E75</action> <!-- addi.w #$xx,($4,A1) / rts -->
        </script>
        <script state="change">
            <action>maincpu.mw@0072 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@9886 = 5C690004        </action>
            <action>maincpu.mq@0070 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.md@00392 = 0001C000        </action>
            <action>maincpu.mq@1C000 = 41F90002020043F9</action>
            <action>maincpu.mq@1C008 = 0002600D12001039</action>
            <action>maincpu.mq@1C010 = 00024001B20067F4</action>
            <action>maincpu.mq@1C018 = 0C0000FB66025310</action>
            <action>maincpu.mq@1C020 = 0C0000F766025210</action>
            <action>maincpu.mq@1C028 = 0C0000FD66040410</action>
            <action>maincpu.mq@1C030 = 00100C0000FE6604</action>
            <action>maincpu.mq@1C038 = 061000100C0000EF</action>
            <action>maincpu.mq@1C040 = 660212900C0000DF</action>
            <action>maincpu.mq@1C048 = 660412BC00FF60BC</action>
            <!--
            1C000 | 41F9 0002 0200 : lea     $20200.l, A0 // sound code address
            1C006 | 43F9 0002 600D : lea     $2600d.l, A1 // sound latch address
            1C00C | 1200           : move.b  D0, D1
            1C00E | 1039 0002 4001 : move.b  $24001.l, D0 // read input
            1C014 | B200           : cmp.b   D0, D1
            1C016 | 67F4           : beq     $1c00c
            1C018 | 0C00 00FB      : cmpi.b  #-$5, D0
            1C01C | 6602           : bne     $1c020
            1C01E | 5310           : subq.b  #1, (A0)     // decrease code -01
            1C020 | 0C00 00F7      : cmpi.b  #-$9, D0
            1C024 | 6602           : bne     $1c028
            1C026 | 5210           : addq.b  #1, (A0)     // increase code +01
            1C028 | 0C00 00FD      : cmpi.b  #-$3, D0
            1C02C | 6604           : bne     $1c032
            1C02E | 0410 0010      : subi.b  #$10, (A0)   // decrease code -10
            1C032 | 0C00 00FE      : cmpi.b  #-$2, D0
            1C036 | 6604           : bne     $1c03c
            1C038 | 0610 0010      : addi.b  #$10, (A0)   // increase code +10
            1C03C | 0C00 00EF      : cmpi.b  #-$11, D0
            1C040 | 6602           : bne     $1c044
            1C042 | 1290           : move.b  (A0), (A1)   // play sound
            1C044 | 0C00 00DF      : cmpi.b  #-$21, D0
            1C048 | 6604           : bne     $1c04e
            1C04A | 12BC 00FF      : move.b  #$ff, (A1)   // stop sound
            1C04E | 60BC           : bra     $1c00c
            -->
        </script>
        <script state="run">
            <output format="----- terra cresta 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@20200</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@00392 = 00008B14        </action>
            <action>maincpu.mq@1C000 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1C008 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1C010 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1C018 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1C020 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1C028 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1C030 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1C038 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1C040 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1C048 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@011A = 011C</action>
        </script>
        <script state="off">
            <action>maincpu.mw@011A = 1F2E</action>
        </script>
    </cheat>

</mamecheat>
terracren.xml

Code: Select all

<!-- Terra Cresta (YM2203) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@A9D7 = 04</action> <!-- bullet -->
            <action>maincpu.mb@A8EB = 58</action> <!-- spread bullet -->
            <action>maincpu.mb@A8F9 = A2</action> <!-- enemy -->
        </script>
        <script state="off">
            <action>maincpu.mb@A9D7 = 06</action>
            <action>maincpu.mb@A8EB = 5C</action>
            <action>maincpu.mb@A8F9 = A6</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@9330 = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mb@9330 = 67</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x52">01 (slow)</item>
            <item value="0x54">02       </item>
            <item value="0x56">03       </item>
            <item value="0x58">04       </item>
            <item value="0x5a">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mb@85A6 = 64</action> <!-- moving range : up -->
            <action>maincpu.mb@85B4 = 65</action> <!-- moving range : down -->
        </script>
        <script state="change">
            <action>maincpu.mb@8568 = param    </action> <!-- left -->
            <action>maincpu.mb@8590 = param + 1</action> <!-- right -->
            <action>maincpu.mb@85A8 = param    </action> <!-- up -->
            <action>maincpu.mb@85B6 = param + 1</action> <!-- down -->
        </script>
        <script state="off">
            <action>maincpu.mb@85A6 = 67</action>
            <action>maincpu.mb@85B4 = 67</action>
            <action>maincpu.mb@8568 = 52</action>
            <action>maincpu.mb@8590 = 53</action>
            <action>maincpu.mb@85A8 = 52</action>
            <action>maincpu.mb@85B6 = 53</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x0003">01 (slow)</item>
            <item value="0x0006">02       </item>
            <item value="0x0009">03       </item>
            <item value="0x000c">04       </item>
            <item value="0x000f">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@9886 = 4EB80070        </action>
            <action>maincpu.mq@0070 = 0669000000044E75</action> <!-- addi.w #$xx,($4,A1) / rts -->
        </script>
        <script state="change">
            <action>maincpu.mw@0072 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@9886 = 5C690004        </action>
            <action>maincpu.mq@0070 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.md@00392 = 0001C000        </action>
            <action>maincpu.mq@1C000 = 41F90002020043F9</action>
            <action>maincpu.mq@1C008 = 0002600D12001039</action>
            <action>maincpu.mq@1C010 = 00024001B20067F4</action>
            <action>maincpu.mq@1C018 = 0C0000FB66025310</action>
            <action>maincpu.mq@1C020 = 0C0000F766025210</action>
            <action>maincpu.mq@1C028 = 0C0000FD66040410</action>
            <action>maincpu.mq@1C030 = 00100C0000FE6604</action>
            <action>maincpu.mq@1C038 = 061000100C0000EF</action>
            <action>maincpu.mq@1C040 = 660212900C0000DF</action>
            <action>maincpu.mq@1C048 = 660412BC00FF60BC</action>
            <!--
            1C000 | 41F9 0002 0200 : lea     $20200.l, A0 // sound code address
            1C006 | 43F9 0002 600D : lea     $2600d.l, A1 // sound latch address
            1C00C | 1200           : move.b  D0, D1
            1C00E | 1039 0002 4001 : move.b  $24001.l, D0 // read input
            1C014 | B200           : cmp.b   D0, D1
            1C016 | 67F4           : beq     $1c00c
            1C018 | 0C00 00FB      : cmpi.b  #-$5, D0
            1C01C | 6602           : bne     $1c020
            1C01E | 5310           : subq.b  #1, (A0)     // decrease code -01
            1C020 | 0C00 00F7      : cmpi.b  #-$9, D0
            1C024 | 6602           : bne     $1c028
            1C026 | 5210           : addq.b  #1, (A0)     // increase code +01
            1C028 | 0C00 00FD      : cmpi.b  #-$3, D0
            1C02C | 6604           : bne     $1c032
            1C02E | 0410 0010      : subi.b  #$10, (A0)   // decrease code -10
            1C032 | 0C00 00FE      : cmpi.b  #-$2, D0
            1C036 | 6604           : bne     $1c03c
            1C038 | 0610 0010      : addi.b  #$10, (A0)   // increase code +10
            1C03C | 0C00 00EF      : cmpi.b  #-$11, D0
            1C040 | 6602           : bne     $1c044
            1C042 | 1290           : move.b  (A0), (A1)   // play sound
            1C044 | 0C00 00DF      : cmpi.b  #-$21, D0
            1C048 | 6604           : bne     $1c04e
            1C04A | 12BC 00FF      : move.b  #$ff, (A1)   // stop sound
            1C04E | 60BC           : bra     $1c00c
            -->
        </script>
        <script state="run">
            <output format="----- terra cresta 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@20200</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@00392 = 00008B14        </action>
            <action>maincpu.mq@1C000 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1C008 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1C010 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1C018 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1C020 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1C028 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1C030 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1C038 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1C040 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1C048 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@011A = 011C</action>
        </script>
        <script state="off">
            <action>maincpu.mw@011A = 1F2E</action>
        </script>
    </cheat>

</mamecheat>
"player speed" : Fixed "out of screen" bug.
Post Reply