[powerinsj] Power Instinct/Gouketsuji Ichizoku

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: 865
Joined: Tue Dec 01, 2020 1:24 pm

[powerinsj] Power Instinct/Gouketsuji Ichizoku

Post by jman »

Code: Select all

<cheat desc="no hit">
    <parameter>
        <item value="0x01">P1          </item>
        <item value="0x02">P2          </item>
        <item value="0x03">both players</item>
    </parameter>
    <script state="on">
        <action>maincpu.mq@16a5c = 4eb900034fe26b00</action> <!-- attack -->
        <action>maincpu.md@0f404 =         00034ff4</action> <!-- throw -->
        <action>maincpu.mq@34fd0 = b3fc001806006602</action>
        <action>maincpu.mq@34fd8 = 4e75b3fc00180700</action>
        <action>maincpu.mq@34fe0 = 4e7561ec6606103c</action>
        <action>maincpu.mq@34fe8 = 00ff4e7510290081</action>
        <action>maincpu.mq@34ff0 = 53004e754eb90001</action>
        <action>maincpu.mq@34ff8 = 13c861d46606223c</action>
        <action>maincpu.mq@35000 = ffff00004e75ffff</action>
        <!--
        34fd0 | b3fc 0018 0600 : cmpa.l #$180600,A1   // player check routine
        34fd6 | 6602           : bne    $34fda
        34fd8 | 4e75           : rts
        34fda | b3fc 0018 0700 : cmpa.l #$180700,A1
        34fe0 | 4e75           : rts
        34fe2 | 61ec           : bsr    $34fd0        // attack
        34fe4 | 6606           : bne    $34fec
        34fe6 | 103c 00ff      : move.b #$ff,D0
        34fea | 4e75           : rts
        34fec | 1029 0081      : move.b ($81,A1),D0
        34ff0 | 5300           : subq.b #1,D0
        34ff2 | 4e75           : rts
        34ff4 | 4eb9 0001 13c8 : jsr    $113c8.l      // throw
        34ffa | 61d4           : bsr    $34fd0
        34ffc | 6606           : bne    $35004
        34ffe | 223c ffff 0000 : move.l #$ffff0000,D1
        35004 | 4e75           : rts
        -->
    </script>
    <script state="change">
        <action                                  >maincpu.md@34fd2 = 00000000</action>
        <action                                  >maincpu.md@34fdc = 00000000</action>
        <action condition="(param band 01) != 00">maincpu.md@34fd2 = 00180600</action>
        <action condition="(param band 02) != 00">maincpu.md@34fdc = 00180700</action>
    </script>
    <script state="off">
        <action>maincpu.mq@16a5c = 1029008153006b00</action>
        <action>maincpu.md@0f404 =         000113c8</action>
        <action>maincpu.mq@34fd0 = ffffffffffffffff</action>
        <action>maincpu.mq@34fd8 = ffffffffffffffff</action>
        <action>maincpu.mq@34fe0 = ffffffffffffffff</action>
        <action>maincpu.mq@34fe8 = ffffffffffffffff</action>
        <action>maincpu.mq@34ff0 = ffffffffffffffff</action>
        <action>maincpu.mq@34ff8 = ffffffffffffffff</action>
        <action>maincpu.mq@35000 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <parameter>
        <item value="0x01">P1          </item>
        <item value="0x02">P2          </item>
        <item value="0x03">both players</item>
    </parameter>
    <script state="on">
        <action>maincpu.mq@0b9b6 = 4eb9000350106600</action>
        <action>maincpu.mq@0ca5a = 4eb9000350106700</action>
        <action>maincpu.mq@35010 = b1fc001806006708</action>
        <action>maincpu.mq@35018 = b1fc001807006602</action>
        <action>maincpu.mq@35020 = 4840082a00020001</action>
        <action>maincpu.mq@35028 = 4e75ffffffffffff</action>
        <!--
        35010 | b1fc 0018 0600 : cmpa.l #$180600,A0
        35016 | 6708           : beq    $35020
        35018 | b1fc 0018 0700 : cmpa.l #$180700,A0
        3501e | 6602           : bne    $35022
        35020 | 4840           : swap   D0
        35022 | 082a 0002 0001 : btst   #$2,($1,A2)
        35028 | 4e75           : rts
        -->
    </script>
    <script state="change">
        <action                                  >maincpu.md@35012 = 00000000</action>
        <action                                  >maincpu.md@3501a = 00000000</action>
        <action condition="(param band 01) != 00">maincpu.md@35012 = 00180600</action>
        <action condition="(param band 02) != 00">maincpu.md@3501a = 00180700</action>
    </script>
    <script state="off">
        <action>maincpu.mq@0b9b6 = 082a000200016600</action>
        <action>maincpu.mq@0ca5a = 082a000200016700</action>
        <action>maincpu.mq@35010 = ffffffffffffffff</action>
        <action>maincpu.mq@35018 = ffffffffffffffff</action>
        <action>maincpu.mq@35020 = ffffffffffffffff</action>
        <action>maincpu.mq@35028 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="action speed up (test)">
    <parameter>
        <item value="0x01">P1          </item>
        <item value="0x02">P2          </item>
        <item value="0x03">both players</item>
    </parameter>
    <script state="on">
        <action>maincpu.mq@08670 = 4eb9000350305328</action>
        <action>maincpu.mq@35030 = b1fc001806006708</action>
        <action>maincpu.mq@35038 = b1fc00180700660e</action>
        <action>maincpu.mq@35040 = 0c28000100846506</action>
        <action>maincpu.mq@35048 = 117c000100843168</action>
        <action>maincpu.mq@35050 = 003600384e75ffff</action>
        <!--
        35030 | b1fc 0018 0600 : cmpa.l #$180600,A0
        35036 | 6708           : beq    $35040
        35038 | b1fc 0018 0700 : cmpa.l #$180700,A0
        3503e | 660e           : bne    $3504e
        35040 | 0c28 0001 0084 : cmpi.b #$1,($84,A0)
        35046 | 6506           : bcs    $3504e
        35048 | 117c 0001 0084 : move.b #$1,($84,A0)
        3504e | 3168 0036 0038 : move.w ($36,A0),($38,A0)
        35054 | 4e75           : rts
        -->
    </script>
    <script state="change">
        <action                                  >maincpu.md@35032 = 00000000</action>
        <action                                  >maincpu.md@3503a = 00000000</action>
        <action condition="(param band 01) != 00">maincpu.md@35032 = 00180600</action>
        <action condition="(param band 02) != 00">maincpu.md@3503a = 00180700</action>
    </script>
    <script state="off">
        <action>maincpu.mq@08670 = 3168003600385328</action>
        <action>maincpu.mq@35030 = ffffffffffffffff</action>
        <action>maincpu.mq@35038 = ffffffffffffffff</action>
        <action>maincpu.mq@35040 = ffffffffffffffff</action>
        <action>maincpu.mq@35048 = ffffffffffffffff</action>
        <action>maincpu.mq@35050 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="timer speed">
    <parameter>
        <item value="0x7f">01 (slow)</item>
        <item value="0x40">02       </item>
        <item value="0x28">03       </item>
        <item value="0x10">04       </item>
        <item value="0x00">05 (fast)</item>
    </parameter>
    <script state="change">
        <action>maincpu.mb@14151 = param</action>
        <action>maincpu.mb@1415f = param</action>
    </script>
    <script state="off">
        <action>maincpu.mb@14151 = 28</action>
        <action>maincpu.mb@14151 = 1e</action>
    </script>
</cheat>

<cheat desc="unlock secret character">
    <comment>move cursor to otane in character selection screen then press left key</comment>
    <script state="on">
        <action>maincpu.mq@2a2f2 = 4eb9000350600829</action>
        <action>maincpu.mq@35060 = 0c00000467085340</action>
        <action>maincpu.mq@35068 = 024000074e755800</action>
        <action>maincpu.mq@35070 = 4e75ffffffffffff</action>
        <!--
        35060 | 0c00 0004 : cmpi.b #$4,D0
        35064 | 6708      : beq    $3506e
        35066 | 5340      : subq.w #1,D0
        35068 | 0240 0007 : andi.w #$7,D0
        3506c | 4e75      : rts
        3506e | 5800      : addq.b #4,D0
        35070 | 4e75      : rts
        -->
    </script>
    <script state="off">
        <action>maincpu.mq@2a2f2 = 5340024000070829</action>
        <action>maincpu.mq@35060 = ffffffffffffffff</action>
        <action>maincpu.mq@35068 = ffffffffffffffff</action>
        <action>maincpu.mq@35070 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="sound test mode">
    <!-- you can't stop sfx and voice by stop button -->
    <comment>reset the game to enter sound test mode</comment>
    <script state="on">
        <action>maincpu.mq@00ff0 = 4eb9000350804e71</action>
        <action>maincpu.mq@35080 = 41f90018000043f9</action>
        <action>maincpu.mq@35088 = 0010001f12001039</action>
        <action>maincpu.mq@35090 = 00100003b20067f4</action>
        <action>maincpu.mq@35098 = 0c0000fd66025310</action>
        <action>maincpu.mq@350a0 = 0c0000fe66025210</action>
        <action>maincpu.mq@350a8 = 0c0000fb66040410</action>
        <action>maincpu.mq@350b0 = 00100c0000f76604</action>
        <action>maincpu.mq@350b8 = 061000100c0000ef</action>
        <action>maincpu.mq@350c0 = 660212900c0000df</action>
        <action>maincpu.mq@350c8 = 6602421160beffff</action>
        <!--
        35080 | 41f9 0018 0000 : lea    $180000.l,A0 // sound code address
        35086 | 43f9 0010 001f : lea    $10001f.l,A1 // sound latch address
        3508c | 1200           : move.b D0,D1
        3508e | 1039 0010 0003 : move.b $100003.l,D0 // read input
        35094 | b200           : cmp.b  D0,D1
        35096 | 67f4           : beq    $3508c
        35098 | 0c00 00fd      : cmpi.b #-$3,D0
        3509c | 6602           : bne    $350a0
        3509e | 5310           : subq.b #1,(A0)      // decrease code -01
        350a0 | 0c00 00fe      : cmpi.b #-$2,D0
        350a4 | 6602           : bne    $350a8
        350a6 | 5210           : addq.b #1,(A0)      // increase code +01
        350a8 | 0c00 00fb      : cmpi.b #-$5,D0
        350ac | 6604           : bne    $350b2
        350ae | 0410 0010      : subi.b #$10,(A0)    // decrease code -10
        350b2 | 0c00 00f7      : cmpi.b #-$9,D0
        350b6 | 6604           : bne    $350bc
        350b8 | 0610 0010      : addi.b #$10,(A0)    // increase code +10
        350bc | 0c00 00ef      : cmpi.b #-$11,D0
        350c0 | 6602           : bne    $350c4
        350c2 | 1290           : move.b (A0),(A1)    // play sound
        350c4 | 0c00 00df      : cmpi.b #-$21,D0
        350c8 | 6602           : bne    $350cc
        350ca | 4211           : clr.b  (A1)         // stop music
        350cc | 60be           : bra    $3508c
        -->
    </script>
    <script state="run">
        <output format="----- gouketsuji ichizoku 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@180000</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mq@00ff0 = 4eba0c363e3c0078</action>
        <action>maincpu.mq@35080 = ffffffffffffffff</action>
        <action>maincpu.mq@35088 = ffffffffffffffff</action>
        <action>maincpu.mq@35090 = ffffffffffffffff</action>
        <action>maincpu.mq@35098 = ffffffffffffffff</action>
        <action>maincpu.mq@350a0 = ffffffffffffffff</action>
        <action>maincpu.mq@350a8 = ffffffffffffffff</action>
        <action>maincpu.mq@350b0 = ffffffffffffffff</action>
        <action>maincpu.mq@350b8 = ffffffffffffffff</action>
        <action>maincpu.mq@350c0 = ffffffffffffffff</action>
        <action>maincpu.mq@350c8 = ffffffffffffffff</action>
    </script>
</cheat>
"action speed up" : this is test code because winner's animation is repeated.
"unlock secret character" : you can choose "young otane" in chracter selection screen.
Image
move cursor to "otane".
Image
press left key. If cursor goes to out of screen, it succeeded.
Image
Both players can select "young otane".
Image
But winner's animation is missing.
Post Reply