[sstingry] Super Stingray

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

[sstingry] Super Stingray

Post by jman »

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>maincpu.mb@39d4 =   60</action> <!-- enemy (x position) -->
        <action>maincpu.mb@3aec =   60</action> <!-- enemy (y position) -->
        <action>maincpu.mw@574c = 4e75</action> <!-- bomb -->
        <action>maincpu.mw@6600 = 4e75</action> <!-- laser -->
        <action>maincpu.mw@67fa = 4e75</action> <!-- bullet -->
        <action>maincpu.mw@6874 = 4e75</action> <!-- missile (small) -->
        <action>maincpu.mw@6904 = 4e75</action> <!-- missile (large) -->
    </script>
    <script state="off">
        <action>maincpu.mb@39d4 =   64</action>
        <action>maincpu.mb@3aec =   64</action>
        <action>maincpu.mw@574c = 552e</action>
        <action>maincpu.mw@6600 = 572e</action>
        <action>maincpu.mw@67fa = 042e</action>
        <action>maincpu.mw@6874 = 7040</action>
        <action>maincpu.mw@6904 = 7040</action>
    </script>
</cheat>

<cheat desc="walk through wall">
    <script state="on">
        <action>maincpu.mb@39ad = ff</action>
    </script>
    <script state="off">
        <action>maincpu.mb@39ad = 00</action>
    </script>
</cheat>

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

<cheat desc="player speed">
    <parameter min="0x01" max="0x05" step="0x01" />
    <script state="change">
        <action>maincpu.mb@31c9 =  param</action> <!-- up -->
        <action>maincpu.mb@31cd = -param</action> <!-- down -->
        <action>maincpu.mb@31d9 =  param</action> <!-- right -->
        <action>maincpu.mb@31dd = -param</action> <!-- left -->
    </script>
    <script state="off">
        <action>maincpu.mb@31c9 = 01</action>
        <action>maincpu.mb@31cd = ff</action>
        <action>maincpu.mb@31d9 = 01</action>
        <action>maincpu.mb@31dd = ff</action>
    </script>
</cheat>

<cheat desc="direct turn">
    <script state="on">
        <action>maincpu.mq@33c8 = 4eb90000d9104e71</action>
        <action>maincpu.mq@d910 = 102e000d0240000f</action>
        <action>maincpu.mq@d918 = 103b00081d400104</action>
        <action>maincpu.mq@d920 = 4e75000001ff0203</action>
        <action>maincpu.mq@d928 = 04ff050607ffffff</action>
        <!--
        d910 | 102e 000d : move.b ($d,A6),D0
        d914 | 0240 000f : andi.w #$f,D0
        d918 | 103b 0008 : move.b ($8,PC,D0.w),D0
        d91c | 1d40 0104 : move.b D0,($104,A6)
        d920 | 4e75      : rts
        d922 - d92c      : input/direction conversion table
            input direction
             01     00      : up
             02     01      : down
             04     02      : right
             05     03      : upper-right
             06     04      : lower-right
             08     05      : left
             09     06      : upper-left
             0a     07      : lower-left
        -->
    </script>
    <script state="off">
        <action>maincpu.mq@33c8 = 103b00341d400104</action>
        <action>maincpu.mq@d910 = ffffffffffffffff</action>
        <action>maincpu.mq@d918 = ffffffffffffffff</action>
        <action>maincpu.mq@d920 = ffffffffffffffff</action>
        <action>maincpu.mq@d928 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="timer speed">
    <parameter>
        <item value="0xff">01 (slow)</item>
        <item value="0x7f">02       </item>
        <item value="0x3f">03       </item>
        <item value="0x0f">04       </item>
        <item value="0x01">05 (fast)</item>
    </parameter>
    <script state="change">
        <action>maincpu.mb@2f75 = param</action>
    </script>
    <script state="off">
        <action>maincpu.mb@2f75 = 0f</action>
    </script>
</cheat>

<cheat desc="sound test mode">
    <comment>set ram/rom check skip then reset the game (F3)</comment>
    <script state="on">
        <action>maincpu.mw@1680 =             d930</action>
        <action>maincpu.mq@d930 = 41ee010043f9000e</action>
        <action>maincpu.mq@d938 = 000012001039000c</action>
        <action>maincpu.mq@d940 = 0001b20067f40c00</action>
        <action>maincpu.mq@d948 = 0008660253100c00</action>
        <action>maincpu.mq@d950 = 0004660252100c00</action>
        <action>maincpu.mq@d958 = 0002660404100010</action>
        <action>maincpu.mq@d960 = 0c00000166040610</action>
        <action>maincpu.mq@d968 = 00100c0000106606</action>
        <action>maincpu.mq@d970 = 1290115000010c00</action>
        <action>maincpu.mq@d978 = 0020660a14280001</action>
        <action>maincpu.mq@d980 = 020200f0128260b2</action>
        <!--
        d930 | 41ee 0100      : lea    ($100,A6),A0 // sound code address
        d934 | 43f9 000e 0000 : lea    $e0000.l,A1
        d93a | 1200           : move.b D0,D1
        d93c | 1039 000c 0001 : move.b $c0001.l,D0  // read input
        d942 | b200           : cmp.b  D0,D1
        d944 | 67f4           : beq    $d93a
        d946 | 0c00 0008      : cmpi.b #$8,D0
        d94a | 6602           : bne    $d94e
        d94c | 5310           : subq.b #1,(A0)      // decrease code -01
        d94e | 0c00 0004      : cmpi.b #$4,D0
        d952 | 6602           : bne    $d956
        d954 | 5210           : addq.b #1,(A0)      // increase code +01
        d956 | 0c00 0002      : cmpi.b #$2,D0
        d95a | 6604           : bne    $d960
        d95c | 0410 0010      : subi.b #$10,(A0)    // decrease code -10
        d960 | 0c00 0001      : cmpi.b #$1,D0
        d964 | 6604           : bne    $d96a
        d966 | 0610 0010      : addi.b #$10,(A0)    // increase code +10
        d96a | 0c00 0010      : cmpi.b #$10,D0
        d96e | 6606           : bne    $d976
        d970 | 1290           : move.b (A0),(A1)    // play sound
        d972 | 1150 0001      : move.b (A0),($1,A0)
        d976 | 0c00 0020      : cmpi.b #$20,D0
        d97a | 660a           : bne    $d986
        d97c | 1428 0001      : move.b ($1,A0),D2   // stop sound
        d980 | 0202 00f0      : andi.b #$f0,D2
        d984 | 1282           : move.b D2,(A1)
        d986 | 60b2           : bra    $d93a
        -->
    </script>
    <script state="run">
        <output format="----- super stingray 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@20100</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mw@1680 =             6ca6</action>
        <action>maincpu.mq@d930 = ffffffffffffffff</action>
        <action>maincpu.mq@d938 = ffffffffffffffff</action>
        <action>maincpu.mq@d940 = ffffffffffffffff</action>
        <action>maincpu.mq@d948 = ffffffffffffffff</action>
        <action>maincpu.mq@d950 = ffffffffffffffff</action>
        <action>maincpu.mq@d958 = ffffffffffffffff</action>
        <action>maincpu.mq@d960 = ffffffffffffffff</action>
        <action>maincpu.mq@d968 = ffffffffffffffff</action>
        <action>maincpu.mq@d970 = ffffffffffffffff</action>
        <action>maincpu.mq@d978 = ffffffffffffffff</action>
        <action>maincpu.mq@d980 = ffffffffffffffff</action>
    </script>
</cheat>

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

[sstingry] Super Stingray

Post by jman »

Code: Select all

<!-- Super Stingray (Japan) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mw@39D4 = 60CA</action> <!-- enemy -->
            <action>maincpu.mw@3AEC = 60CE</action> <!-- enemy -->
            <action>maincpu.mw@574C = 4E75</action> <!-- bomb -->
            <action>maincpu.mw@6600 = 4E75</action> <!-- laser -->
            <action>maincpu.mw@67FA = 4E75</action> <!-- bullet -->
            <action>maincpu.mw@6874 = 4E75</action> <!-- missile (small) -->
            <action>maincpu.mw@6904 = 4E75</action> <!-- missile (large) -->
        </script>
        <script state="off">
            <action>maincpu.mw@39D4 = 64CA</action>
            <action>maincpu.mw@3AEC = 64CE</action>
            <action>maincpu.mw@574C = 552E</action>
            <action>maincpu.mw@6600 = 572E</action>
            <action>maincpu.mw@67FA = 042E</action>
            <action>maincpu.mw@6874 = 7040</action>
            <action>maincpu.mw@6904 = 7040</action>
        </script>
    </cheat>

    <cheat desc="walk through wall">
        <script state="on">
            <action>maincpu.mb@39AD = FF</action>
        </script>
        <script state="off">
            <action>maincpu.mb@39AD = 00</action>
        </script>
    </cheat>

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

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="change">
            <action>maincpu.mb@31C9 =  param</action> <!-- up -->
            <action>maincpu.mb@31CD = -param</action> <!-- down -->
            <action>maincpu.mb@31D9 =  param</action> <!-- right -->
            <action>maincpu.mb@31DD = -param</action> <!-- left -->
        </script>
        <script state="off">
            <action>maincpu.mb@31C9 = 01</action>
            <action>maincpu.mb@31CD = FF</action>
            <action>maincpu.mb@31D9 = 01</action>
            <action>maincpu.mb@31DD = FF</action>
        </script>
    </cheat>

    <cheat desc="direct turn">
        <script state="on">
            <action>maincpu.mq@33C8 = 4EB90000D9104E71</action>
            <action>maincpu.mq@D910 = 102E000D0240000F</action>
            <action>maincpu.mq@D918 = 103B00081D400104</action>
            <action>maincpu.mq@D920 = 4E75000001FF0203</action>
            <action>maincpu.mq@D928 = 04FF050607FFFFFF</action>
            <!--
            D910 | 102E 000D : move.b  ($d,A6), D0
            D914 | 0240 000F : andi.w  #$f, D0
            D918 | 103B 0008 : move.b  ($8,PC,D0.w), D0
            D91C | 1D40 0104 : move.b  D0, ($104,A6)
            D920 | 4E75      : rts
            D922 - D92C      : input/direction conversion table
             input direction
              01     00      : up
              02     01      : down
              04     02      : right
              05     03      : upper-right
              06     04      : lower-right
              08     05      : left
              09     06      : upper-left
              0a     07      : lower-left
            -->
        </script>
        <script state="off">
            <action>maincpu.mq@33C8 = 103B00341D400104</action>
            <action>maincpu.mq@D910 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D918 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D920 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D928 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="timer speed">
        <parameter>
            <item value="0xff">01 (slow)</item>
            <item value="0x7f">02       </item>
            <item value="0x3f">03       </item>
            <item value="0x0f">04       </item>
            <item value="0x01">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@2F75 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@2F75 = 0F</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mq@1F8C = 4EF90000D9307E04</action>
            <action>maincpu.mq@D930 = 41F90002000043F9</action>
            <action>maincpu.mq@D938 = 000E000012001039</action>
            <action>maincpu.mq@D940 = 000C0001B20067F4</action>
            <action>maincpu.mq@D948 = 0C00000866025310</action>
            <action>maincpu.mq@D950 = 0C00000466025210</action>
            <action>maincpu.mq@D958 = 0C00000266040410</action>
            <action>maincpu.mq@D960 = 00100c0000016604</action>
            <action>maincpu.mq@D968 = 061000100C000010</action>
            <action>maincpu.mq@D970 = 660212900C000020</action>
            <action>maincpu.mq@D978 = 660412BC000160BC</action>
            <!--
            D930 | 41F9 0002 0000 : lea     $20000.l, A0 // sound code address
            D936 | 43F9 000E 0000 : lea     $e0000.l, A1 // sound latch address
            D93C | 1200           : move.b  D0, D1
            D93E | 1039 000C 0001 : move.b  $c0001.l, D0 // read input
            D944 | B200           : cmp.b   D0, D1
            D946 | 67F4           : beq     $d93c
            D948 | 0C00 0008      : cmpi.b  #$8, D0
            D94C | 6602           : bne     $d950
            D94E | 5310           : subq.b  #1, (A0)     // decrease code -01
            D950 | 0C00 0004      : cmpi.b  #$4, D0
            D954 | 6602           : bne     $d958
            D956 | 5210           : addq.b  #1, (A0)     // increase code +01
            D958 | 0C00 0002      : cmpi.b  #$2, D0
            D95C | 6604           : bne     $d962
            D95E | 0410 0010      : subi.b  #$10, (A0)   // decrease code -10
            D962 | 0C00 0001      : cmpi.b  #$1, D0
            D966 | 6604           : bne     $d96c
            D968 | 0610 0010      : addi.b  #$10, (A0)   // increase code +10
            D96C | 0C00 0010      : cmpi.b  #$10, D0
            D970 | 6602           : bne     $d974
            D972 | 1290           : move.b  (A0), (A1)   // play sound
            D974 | 0C00 0020      : cmpi.b  #$20, D0
            D978 | 6604           : bne     $d97e
            D97A | 12BC 0001      : move.b  #$1, (A1)    // stop sound
            D97E | 60BC           : bra     $d93c
            -->
            <action>audiocpu.mw@02FF = 3F80            </action>
            <action>audiocpu.mq@3F80 = 32810032803132AF</action>
            <action>audiocpu.mq@3F88 = 32803032033E8110</action>
            <action>audiocpu.mq@3F90 = 8059328050328039</action>
            <action>audiocpu.mq@3F98 = 0132807932807032</action>
            <action>audiocpu.mq@3FA0 = 5132103E81113281</action>
            <action>audiocpu.mq@3FA8 = FF3E807132203E80</action>
            <action>audiocpu.mq@3FB0 = 000002BAC3824032</action>
            <!--
            3F80 | AF       : xor  a
            3F81 | 32 31 80 : ld   ($8031),a
            3F84 | 32 00 81 : ld   ($8100),a
            3F87 | 32 10 81 : ld   ($8110),a
            3F8A | 3E 03    : ld   a,$03
            3F8C | 32 30 80 : ld   ($8030),a
            3F8F | 32 39 80 : ld   ($8039),a
            3F92 | 32 50 80 : ld   ($8050),a
            3F95 | 32 59 80 : ld   ($8059),a
            3F98 | 32 70 80 : ld   ($8070),a
            3F9B | 32 79 80 : ld   ($8079),a
            3F9E | 32 01 81 : ld   ($8101),a
            3FA1 | 32 11 81 : ld   ($8111),a
            3FA4 | 3E 10    : ld   a,$10
            3FA6 | 32 51 80 : ld   ($8051),a
            3FA9 | 3E 20    : ld   a,$20
            3FAB | 32 71 80 : ld   ($8071),a
            3FAE | 3E FF    : ld   a,$FF
            3FB0 | 32 40 82 : ld   ($8240),a
            3FB3 | C3 BA 02 : jp   $02BA
            -->
        </script>
        <script state="run">
            <output format="----- super stingray 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@20000</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mq@1F8C = 41F9000418F67E04</action>
            <action> maincpu.mq@D930 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@D938 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@D940 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@D948 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@D950 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@D958 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@D960 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@D968 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@D970 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@D978 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mw@02FF = 02BA            </action>
            <action>audiocpu.mq@3F80 = 0000000000000000</action>
            <action>audiocpu.mq@3F88 = 0000000000000000</action>
            <action>audiocpu.mq@3F90 = 0000000000000000</action>
            <action>audiocpu.mq@3F98 = 0000000000000000</action>
            <action>audiocpu.mq@3FA0 = 0000000000000000</action>
            <action>audiocpu.mq@3FA8 = 0000000000000000</action>
            <action>audiocpu.mq@3FB0 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="skip rom check">
        <script state="on">
            <action> maincpu.md@1DFA = 600000AA</action>
            <action>audiocpu.mw@0107 = 01CC    </action>
        </script>
        <script state="off">
            <action> maincpu.md@1DFA = 45F80072</action>
            <action>audiocpu.mw@0107 = 0112    </action>
        </script>
    </cheat>

</mamecheat>
  • "sound test mode" : Fixed sound stop by sound stop button.
  • "skip rom check" : Added code for audiocpu.
Post Reply