Page 1 of 1

[samesame] Fire Shark/Same! Same! Same!

Posted: Sun Aug 07, 2022 1:48 pm
by jman

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>maincpu.mb@2294 = 60</action> <!-- large enemy -->
        <action>maincpu.mb@22c6 = 60</action> <!-- enemy -->
        <action>maincpu.mb@2320 = 60</action> <!-- bullet -->
    </script>
    <script state="off">
        <action>maincpu.mb@2294 = 66</action>
        <action>maincpu.mb@22c6 = 64</action>
        <action>maincpu.mb@2320 = 64</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mw@3044 = 4e71</action>
    </script>
    <script state="off">
        <action>maincpu.mw@3044 = 640c</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter>
        <item value="0x08">01 (slow)</item>
        <item value="0x10">02       </item>
        <item value="0x20">03       </item>
        <item value="0x30">04       </item>
        <item value="0x40">05 (fast)</item>
    </parameter>
    <script state="on">
        <action>maincpu.md@3094 = 303c0000</action> <!-- move.w #$xx,D0 -->
    </script>
    <script state="change">
        <action>maincpu.mb@3097 = param</action>
    </script>
    <script state="off">
        <action>maincpu.md@3094 = d06e003c</action>
    </script>
</cheat>

<cheat desc="bullet speed - blue">
    <parameter>
        <item value="0x10">01 (slow)</item>
        <item value="0x60">02       </item>
        <item value="0x90">03       </item>
        <item value="0xc0">04       </item>
        <item value="0xf0">05 (fast)</item>
    </parameter>
    <script state="change">
        <action>maincpu.mb@36f3 = param</action>
    </script>
    <script state="off">
        <action>maincpu.mb@36f3 = 60</action>
    </script>
</cheat>

<cheat desc="bullet speed - green">
    <parameter>
        <item value="0x10">01 (slow)</item>
        <item value="0x20">02       </item>
        <item value="0x40">03       </item>
        <item value="0x80">04       </item>
        <item value="0xc0">05 (fast)</item>
    </parameter>
    <script state="change">
        <action>maincpu.mb@3805 = param</action>
    </script>
    <script state="off">
        <action>maincpu.mb@3805 = 40</action>
    </script>
</cheat>

<cheat desc="short hit mark">
    <script state="on">
        <action>maincpu.mb@36ac = 60</action> <!-- blue -->
        <action>maincpu.mb@3886 = 60</action> <!-- green -->
    </script>
    <script state="off">
        <action>maincpu.mb@36ac = 64</action>
        <action>maincpu.mb@3886 = 64</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.mw@0236 =             e9b0</action>
        <action>maincpu.mq@e9b0 = 4eb900005e0641f9</action>
        <action>maincpu.mq@e9b8 = 000c001043f90014</action>
        <action>maincpu.mq@e9c0 = 000f120010390014</action>
        <action>maincpu.mq@e9c8 = 0001b20067f40c00</action>
        <action>maincpu.mq@e9d0 = 0004660253100c00</action>
        <action>maincpu.mq@e9d8 = 0008660252100c00</action>
        <action>maincpu.mq@e9e0 = 0002660404100010</action>
        <action>maincpu.mq@e9e8 = 0c00000166040610</action>
        <action>maincpu.mq@e9f0 = 00100c0000106602</action>
        <action>maincpu.mq@e9f8 = 12900c0000206604</action>
        <action>maincpu.mq@ea00 = 12bc00fe60bcffff</action>
        <!--
        e9b0 | 4eb9 0000 5e06 : jsr    $5e06.l      // erase screen
        e9b6 | 41f9 000c 0010 : lea    $c0010.l,A0  // sound code address
        e9bc | 43f9 0014 000f : lea    $14000f.l,A1 // sound latch address
        e9c2 | 1200           : move.b D0,D1
        e9c4 | 1039 0014 0001 : move.b $140001.l,D0 // read input
        e9ca | b200           : cmp.b  D0,D1
        e9cc | 67f4           : beq    $e9c2
        e9ce | 0c00 0004      : cmpi.b #$4,D0
        e9d2 | 6602           : bne    $e9d6
        e9d4 | 5310           : subq.b #1,(A0)      // decrease code -01
        e9d6 | 0c00 0008      : cmpi.b #$8,D0
        e9da | 6602           : bne    $e9de
        e9dc | 5210           : addq.b #1,(A0)      // increase code +01
        e9de | 0c00 0002      : cmpi.b #$2,D0
        e9e2 | 6604           : bne    $e9e8
        e9e4 | 0410 0010      : subi.b #$10,(A0)    // decrease code -10
        e9e8 | 0c00 0001      : cmpi.b #$1,D0
        e9ec | 6604           : bne    $e9f2
        e9ee | 0610 0010      : addi.b #$10,(A0)    // increase code +10
        e9f2 | 0c00 0010      : cmpi.b #$10,D0
        e9f6 | 6602           : bne    $e9fa
        e9f8 | 1290           : move.b (A0),(A1)    // play sound
        e9fa | 0c00 0020      : cmpi.b #$20,D0
        e9fe | 6604           : bne    $ea04
        ea00 | 12bc 00fe      : move.b #$fe,(A1)    // stop sound
        ea04 | 60bc           : bra    $e9c2
        -->
    </script>
    <script state="run">
        <output format="----- same! same! same! 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 music"                         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@c0010</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mw@0236 =             5e06</action>
        <action>maincpu.mq@e9b0 = ffffffffffffffff</action>
        <action>maincpu.mq@e9b8 = ffffffffffffffff</action>
        <action>maincpu.mq@e9c0 = ffffffffffffffff</action>
        <action>maincpu.mq@e9c8 = ffffffffffffffff</action>
        <action>maincpu.mq@e9d0 = ffffffffffffffff</action>
        <action>maincpu.mq@e9d8 = ffffffffffffffff</action>
        <action>maincpu.mq@e9e0 = ffffffffffffffff</action>
        <action>maincpu.mq@e9e8 = ffffffffffffffff</action>
        <action>maincpu.mq@e9f0 = ffffffffffffffff</action>
        <action>maincpu.mq@e9f8 = ffffffffffffffff</action>
        <action>maincpu.mq@ea00 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="skip rom check">
    <script state="on">
        <action>maincpu.mw@6d1c = 601c</action>
    </script>
    <script state="off">
        <action>maincpu.mw@6d1c = 7005</action>
    </script>
</cheat>
BTW, "invincibility" in the cheat package based on 0.245 doesn't work.

Code: Select all

  <cheat desc="Invincibility">
    <script state="run">
      <action>maincpu.pb@02320=60</action>
      <action>maincpu.pw@022CC=4E71</action> <!-- Pt 1 bullets, Pt 2 planes -->
    </script>
  </cheat>
This has two problems. One is region tag (not "p" but "m") and another is that large plane in level 2 kills you.

Code: Select all

<cheat desc="invincibility">
    <comment>see the dip switch menu to enable another invincibility</comment>
    <script state="on">
        <action>maincpu.mb@2320 =   60</action> <!-- bullets -->
        <action>maincpu.mw@22cc = 4e71</action> <!-- planes -->
        <action>maincpu.mw@229a = 4e71</action> <!-- large planes -->
    </script>
    <script state="off">
        <action>maincpu.mb@2320 =   60</action>
        <action>maincpu.mw@22cc = 6510</action>
        <action>maincpu.mw@229a = 653a</action>
    </script>
</cheat>
NOTE : "invincibility" in DIP menu is not "no hit".