[skysmash] Sky Smasher

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

[skysmash] Sky Smasher

Post by jman »

Code: Select all

<cheat desc="P1 no hit">
    <script state="on">
        <action>maincpu.mb@3e78 = 60</action> <!-- enemy 1 -->
        <action>maincpu.mb@41d6 = 60</action> <!-- enemy 2 -->
        <action>maincpu.mb@461c = 60</action> <!-- enemy 3 -->
        <action>maincpu.mb@6392 = 60</action> <!-- bullet -->
        <action>maincpu.mb@4a6a = 60</action> <!-- boss -->
    </script>
    <script state="off">
        <action>maincpu.mb@3e78 = 64</action>
        <action>maincpu.mb@41d6 = 65</action>
        <action>maincpu.mb@461c = 65</action>
        <action>maincpu.mb@6392 = 64</action>
        <action>maincpu.mb@4a6a = 65</action>
    </script>
</cheat>

<cheat desc="P2 no hit">
    <script state="on">
        <action>maincpu.mb@3eea = 60</action> <!-- enemy 1 -->
        <action>maincpu.mb@425e = 60</action> <!-- enemy 2 -->
        <action>maincpu.mb@46a4 = 60</action> <!-- enemy 3 -->
        <action>maincpu.mb@63ea = 60</action> <!-- bullet -->
        <action>maincpu.mb@4af0 = 60</action> <!-- boss -->
    </script>
    <script state="off">
        <action>maincpu.mb@3eea = 64</action>
        <action>maincpu.mb@425e = 65</action>
        <action>maincpu.mb@46a4 = 65</action>
        <action>maincpu.mb@63ea = 64</action>
        <action>maincpu.mb@4af0 = 65</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mb@190f = 02</action>
    </script>
    <script state="off">
        <action>maincpu.mb@190f = 20</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter>
        <item value="0x0100">01 (slow)</item>
        <item value="0x0200">02       </item>
        <item value="0x0300">03       </item>
        <item value="0x0400">04       </item>
        <item value="0x0500">05 (fast)</item>
    </parameter>
    <script state="on">
        <action>maincpu.md@1630 =         4eb80100</action>
        <action>maincpu.mq@0100 = 24300004203c0000</action>
        <action>maincpu.mq@0108 = 00004a8167066a02</action>
        <action>maincpu.mq@0110 = 44802200203c0000</action>
        <action>maincpu.mq@0118 = 00004a8267066a02</action>
        <action>maincpu.mq@0120 = 448024004e750000</action>
        <!--
        0100 | 2430 0004      : move.l ($4,A0,D0.w),D2
        0104 | 203c 0000 xxxx : move.l #$xxxx,D0       // x position
        010a | 4a81           : tst.l  D1
        010c | 6706           : beq    $114
        010e | 6a02           : bpl    $112
        0110 | 4480           : neg.l  D0
        0112 | 2200           : move.l D0,D1
        0114 | 203c 0000 xxxx : move.l #$xxxx,D0       // y position
        011a | 4a82           : tst.l  D2
        011c | 6706           : beq    $124
        011e | 6a02           : bpl    $122
        0120 | 4480           : neg.l  D0
        0122 | 2400           : move.l D0,D2
        0124 | 4e75           : rts
        -->
    </script>
    <script state="change">
        <action>maincpu.mw@0108 = param</action>
        <action>maincpu.mw@0118 = param</action>
    </script>
    <script state="off">
        <action>maincpu.md@1630 =         24300004</action>
        <action>maincpu.mq@0100 = 0000000000000000</action>
        <action>maincpu.mq@0108 = 0000000000000000</action>
        <action>maincpu.mq@0110 = 0000000000000000</action>
        <action>maincpu.mq@0118 = 0000000000000000</action>
        <action>maincpu.mq@0120 = 0000000000000000</action>
    </script>
</cheat>

<cheat desc="bullet speed">
    <parameter>
        <item value="0x0380">01 (slow)</item>
        <item value="0x0700">02       </item>
        <item value="0x0a80">03       </item>
        <item value="0x0e00">04       </item>
        <item value="0x1180">05 (fast)</item>
    </parameter>
    <script state="change">
        <!-- shot level 1 -->
        <action>maincpu.mw@1e8e = param</action>
        <!-- shot level 2 -->
        <action>maincpu.mw@1f14 = param</action>
        <action>maincpu.mw@1fa2 = param</action>
        <action>maincpu.mw@203a = param</action>
        <!-- shot level 3 -->
        <action>maincpu.mw@20ce = param</action>
        <action>maincpu.mw@215c = param</action>
        <action>maincpu.mw@21f8 = param</action>
        <!-- shot level 4 -->
        <action>maincpu.mw@228c = param</action>
        <action>maincpu.mw@231a = param</action>
        <action>maincpu.mw@23b6 = param</action>
    </script>
    <script state="off">
        <action>maincpu.mw@1e8e = 0700</action>
        <action>maincpu.mw@1f14 = 0700</action>
        <action>maincpu.mw@1fa2 = 0700</action>
        <action>maincpu.mw@203a = 0700</action>
        <action>maincpu.mw@20ce = 0700</action>
        <action>maincpu.mw@215c = 0700</action>
        <action>maincpu.mw@21f8 = 0700</action>
        <action>maincpu.mw@228c = 0700</action>
        <action>maincpu.mw@231a = 0700</action>
        <action>maincpu.mw@23b6 = 0700</action>
    </script>
</cheat>

<cheat desc="max bullets up">
    <script state="on">
        <action>maincpu.mb@17a3 = 06</action>
    </script>
    <script state="off">
        <action>maincpu.mb@17a3 = 03</action>
    </script>
</cheat>

<cheat desc="sound test mode">
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action>maincpu.md@005a6 =         0002f2f0</action>
        <action>maincpu.mq@2f2f0 = 41f9000801001401</action>
        <action>maincpu.mq@2f2f8 = 1239000e0003b401</action>
        <action>maincpu.mq@2f300 = 67f40c0100fb6602</action>
        <action>maincpu.mq@2f308 = 53100c0100f76602</action>
        <action>maincpu.mq@2f310 = 52100c0100fd6604</action>
        <action>maincpu.mq@2f318 = 041000100c0100fe</action>
        <action>maincpu.mq@2f320 = 6604061000100c01</action>
        <action>maincpu.mq@2f328 = 00ef66041010600a</action>
        <action>maincpu.mq@2f330 = 0c0100df660a103c</action>
        <action>maincpu.mq@2f338 = 00134eb90002039e</action>
        <action>maincpu.mq@2f340 = 60b4000000000000</action>
        <!--
        2f2f0 | 41f9 0008 0100 : lea    $80100.l,A0 // sound code address
        2f2f6 | 1401           : move.b D1,D2
        2f2f8 | 1239 000e 0003 : move.b $e0003.l,D1 // read input
        2f2fe | b401           : cmp.b  D1,D2
        2f300 | 67f4           : beq    $2f2f6
        2f302 | 0c01 00fb      : cmpi.b #-$5,D1
        2f306 | 6602           : bne    $2f30a
        2f308 | 5310           : subq.b #1,(A0)     // decrease code -01
        2f30a | 0c01 00f7      : cmpi.b #-$9,D1
        2f30e | 6602           : bne    $2f312
        2f310 | 5210           : addq.b #1,(A0)     // increase code +01
        2f312 | 0c01 00fd      : cmpi.b #-$3,D1
        2f316 | 6604           : bne    $2f31c
        2f318 | 0410 0010      : subi.b #$10,(A0)   // decrease code -10
        2f31c | 0c01 00fe      : cmpi.b #-$2,D1
        2f320 | 6604           : bne    $2f326
        2f322 | 0610 0010      : addi.b #$10,(A0)   // increase code +10
        2f326 | 0c01 00ef      : cmpi.b #-$11,D1
        2f32a | 6604           : bne    $2f330
        2f32c | 1010           : move.b (A0),D0     // play sound
        2f32e | 600a           : bra    $2f33a
        2f330 | 0c01 00df      : cmpi.b #-$21,D1
        2f334 | 660a           : bne    $2f340
        2f336 | 103c 0013      : move.b #$13,D0     // stop sound
        2f33a | 4eb9 0002 039e : jsr    $2039e.l    // send sound code
        2f340 | 60b4           : bra    $2f2f6
        -->
    </script>
    <script state="run">
        <output format="----- sky smasher 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@80100</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.md@005a6 =         00004e9e</action>
        <action>maincpu.mq@2f2f0 = 0000000000000000</action>
        <action>maincpu.mq@2f2f8 = 0000000000000000</action>
        <action>maincpu.mq@2f300 = 0000000000000000</action>
        <action>maincpu.mq@2f308 = 0000000000000000</action>
        <action>maincpu.mq@2f310 = 0000000000000000</action>
        <action>maincpu.mq@2f318 = 0000000000000000</action>
        <action>maincpu.mq@2f320 = 0000000000000000</action>
        <action>maincpu.mq@2f328 = 0000000000000000</action>
        <action>maincpu.mq@2f330 = 0000000000000000</action>
        <action>maincpu.mq@2f338 = 0000000000000000</action>
        <action>maincpu.mq@2f340 = 0000000000000000</action>
    </script>
</cheat>
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[skysmash] Sky Smasher

Post by jman »

Code: Select all

<!-- Sky Smasher -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <!-- P1 -->
            <action>maincpu.mb@3E78 = 60</action> <!-- enemy -->
            <action>maincpu.mb@41D6 = 60</action> <!-- enemy -->
            <action>maincpu.mb@461C = 60</action> <!-- enemy -->
            <action>maincpu.mb@4A6A = 60</action> <!-- boss -->
            <action>maincpu.mb@6392 = 60</action> <!-- bullet -->
            <!-- P2 -->
            <action>maincpu.mb@3EEA = 60</action> <!-- enemy -->
            <action>maincpu.mb@425E = 60</action> <!-- enemy -->
            <action>maincpu.mb@46A4 = 60</action> <!-- enemy -->
            <action>maincpu.mb@4AF0 = 60</action> <!-- boss -->
            <action>maincpu.mb@63EA = 60</action> <!-- bullet -->
        </script>
        <script state="off">
            <action>maincpu.mb@3E78 = 64</action>
            <action>maincpu.mb@41D6 = 65</action>
            <action>maincpu.mb@461C = 65</action>
            <action>maincpu.mb@4A6A = 65</action>
            <action>maincpu.mb@6392 = 64</action>
            <action>maincpu.mb@3EEA = 64</action>
            <action>maincpu.mb@425E = 65</action>
            <action>maincpu.mb@46A4 = 65</action>
            <action>maincpu.mb@4AF0 = 65</action>
            <action>maincpu.mb@63EA = 64</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@190F = 02</action>
        </script>
        <script state="off">
            <action>maincpu.mb@190F = 20</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x00000080">01 (slow)</item>
            <item value="0x00000200">02       </item>
            <item value="0x00000380">03       </item>
            <item value="0x00000500">04       </item>
            <item value="0x00000680">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@0162C = 4EB90002F2F04E71</action>
            <action>maincpu.mq@2F2F0 = 263C000000002230</action>
            <action>maincpu.mq@2F2F8 = 000067066A024483</action>
            <action>maincpu.mq@2F300 = 2203263C00000000</action>
            <action>maincpu.mq@2F308 = 2430000467066A02</action>
            <action>maincpu.mq@2F310 = 448324034E750000</action>
            <!--
            2F2F0 | 263C xxxx xxxx : move.l  #$xxxx, D3       // x position
            2F2F6 | 2230 0000      : move.l  (A0,D0.w), D1
            2F2FA | 6706           : beq     $2f302
            2F2FC | 6A02           : bpl     $2f300
            2F2FE | 4483           : neg.l   D3
            2F300 | 2203           : move.l  D3, D1
            2F302 | 263C xxxx xxxx : move.l  #$xxxx, D3
            2F308 | 2430 0004      : move.l  ($4,A0,D0.w), D2 // y position
            2F30C | 6706           : beq     $2f314
            2F30E | 6A02           : bpl     $2f312
            2F310 | 4483           : neg.l   D3
            2F312 | 2403           : move.l  D3, D2
            2F314 | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@2F2F2 = param</action>
            <action>maincpu.md@2F304 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@0162C = 2230000024300004</action>
            <action>maincpu.mq@2F2F0 = 0000000000000000</action>
            <action>maincpu.mq@2F2F8 = 0000000000000000</action>
            <action>maincpu.mq@2F300 = 0000000000000000</action>
            <action>maincpu.mq@2F308 = 0000000000000000</action>
            <action>maincpu.mq@2F310 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x0380">01 (slow)</item>
            <item value="0x0700">02       </item>
            <item value="0x0a80">03       </item>
            <item value="0x0e00">04       </item>
            <item value="0x1180">05 (fast)</item>
        </parameter>
        <script state="change">
            <!-- shot level 1 -->
            <action>maincpu.mw@1E8E = param</action>
            <!-- shot level 2 -->
            <action>maincpu.mw@1F14 = param</action>
            <action>maincpu.mw@1FA2 = param</action>
            <action>maincpu.mw@203A = param</action>
            <!-- shot level 3 -->
            <action>maincpu.mw@20CE = param</action>
            <action>maincpu.mw@215C = param</action>
            <action>maincpu.mw@21F8 = param</action>
            <!-- shot level 4 -->
            <action>maincpu.mw@228C = param</action>
            <action>maincpu.mw@231A = param</action>
            <action>maincpu.mw@23B6 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@1E8E = 0700</action>
            <action>maincpu.mw@1F14 = 0700</action>
            <action>maincpu.mw@1FA2 = 0700</action>
            <action>maincpu.mw@203A = 0700</action>
            <action>maincpu.mw@20CE = 0700</action>
            <action>maincpu.mw@215C = 0700</action>
            <action>maincpu.mw@21F8 = 0700</action>
            <action>maincpu.mw@228C = 0700</action>
            <action>maincpu.mw@231A = 0700</action>
            <action>maincpu.mw@23B6 = 0700</action>
        </script>
    </cheat>

    <cheat desc="max bullets up">
        <script state="on">
            <action>maincpu.mb@17A3 = 06</action>
        </script>
        <script state="off">
            <action>maincpu.mb@17A3 = 03</action>
        </script>
    </cheat>

    <cheat desc="short hit mark">
        <script state="on">
            <!-- shot level 1 -->
            <action>maincpu.mw@1EAE = 6034</action>
            <!-- shot level 2 -->
            <action>maincpu.mw@1F34 = 6034</action>
            <action>maincpu.mw@1FC2 = 6034</action>
            <action>maincpu.mw@205A = 6034</action>
            <!-- shot level 3 -->
            <action>maincpu.mw@20EE = 6034</action>
            <action>maincpu.mw@217C = 6034</action>
            <action>maincpu.mw@2218 = 6034</action>
            <!-- shot level 4 -->
            <action>maincpu.mw@22AC = 6034</action>
            <action>maincpu.mw@233A = 6034</action>
            <action>maincpu.mw@23D6 = 6034</action>
        </script>
        <script state="off">
            <action>maincpu.mw@1EAE = 660C</action>
            <action>maincpu.mw@1F34 = 660C</action>
            <action>maincpu.mw@1FC2 = 660C</action>
            <action>maincpu.mw@205A = 660C</action>
            <action>maincpu.mw@20EE = 660C</action>
            <action>maincpu.mw@217C = 660C</action>
            <action>maincpu.mw@2218 = 660C</action>
            <action>maincpu.mw@22AC = 660C</action>
            <action>maincpu.mw@233A = 660C</action>
            <action>maincpu.mw@23D6 = 660C</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <!-- you can't stop some sounds (eg 0x01) by sound stop button -->
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.md@005A6 = 0002F320        </action>
            <action>maincpu.mq@2F320 = 41F9000800001401</action>
            <action>maincpu.mq@2F328 = 1239000E0003B401</action>
            <action>maincpu.mq@2F330 = 67F40C0100FB6602</action>
            <action>maincpu.mq@2F338 = 53100C0100F76602</action>
            <action>maincpu.mq@2F340 = 52100C0100FD6604</action>
            <action>maincpu.mq@2F348 = 041000100C0100FE</action>
            <action>maincpu.mq@2F350 = 6604061000100C01</action>
            <action>maincpu.mq@2F358 = 00EF66041010600A</action>
            <action>maincpu.mq@2F360 = 0C0100DF660A103C</action>
            <action>maincpu.mq@2F368 = 00134EB90002039E</action>
            <action>maincpu.mq@2F370 = 60B4000000000000</action>
            <!--
            2F320 | 41F9 0008 0000 : lea     $80000.l, A0 // sound code address
            2F326 | 1401           : move.b  D1, D2
            2F328 | 1239 000E 0003 : move.b  $e0003.l, D1 // read input
            2F32E | B401           : cmp.b   D1, D2
            2F330 | 67F4           : beq     $2f326
            2F332 | 0C01 00FB      : cmpi.b  #-$5, D1
            2F336 | 6602           : bne     $2f33a
            2F338 | 5310           : subq.b  #1, (A0)     // decrease code -01
            2F33A | 0C01 00F7      : cmpi.b  #-$9, D1
            2F33E | 6602           : bne     $2f342
            2F340 | 5210           : addq.b  #1, (A0)     // increase code +01
            2F342 | 0C01 00FD      : cmpi.b  #-$3, D1
            2F346 | 6604           : bne     $2f34c
            2F348 | 0410 0010      : subi.b  #$10, (A0)   // decrease code -10
            2F34C | 0C01 00FE      : cmpi.b  #-$2, D1
            2F350 | 6604           : bne     $2f356
            2F352 | 0610 0010      : addi.b  #$10, (A0)   // increase code +10
            2F356 | 0C01 00EF      : cmpi.b  #-$11, D1
            2F35A | 6604           : bne     $2f360
            2F35C | 1010           : move.b  (A0), D0     // play sound
            2F35E | 600A           : bra     $2f36a
            2F360 | 0C01 00DF      : cmpi.b  #-$21, D1
            2F364 | 660A           : bne     $2f370
            2F366 | 103C 0013      : move.b  #$13, D0     // stop sound
            2F36A | 4EB9 0002 039E : jsr     $2039e.l     // send sound code
            2F370 | 60B4           : bra     $2f326
            -->
        </script>
        <script state="run">
            <output format="----- sky smasher 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@80000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@005A6 = 00004E9E        </action>
            <action>maincpu.mq@2F2F0 = 0000000000000000</action>
            <action>maincpu.mq@2F2F8 = 0000000000000000</action>
            <action>maincpu.mq@2F300 = 0000000000000000</action>
            <action>maincpu.mq@2F308 = 0000000000000000</action>
            <action>maincpu.mq@2F310 = 0000000000000000</action>
            <action>maincpu.mq@2F318 = 0000000000000000</action>
            <action>maincpu.mq@2F320 = 0000000000000000</action>
            <action>maincpu.mq@2F328 = 0000000000000000</action>
            <action>maincpu.mq@2F330 = 0000000000000000</action>
            <action>maincpu.mq@2F338 = 0000000000000000</action>
            <action>maincpu.mq@2F340 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
  • "no hit" : Merged 2 codes into one.
  • "player speed" : Rewritten routine.
  • "short hit mark" : Added new.
  • "sound test mode" : You can't stop some sounds (eg 0x01) by sound stop button
Post Reply