[pwrinst2j] Power Instinct 2/Gouketsuji Ichizoku 2

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

[pwrinst2j] Power Instinct 2/Gouketsuji Ichizoku 2

Post by jman »

Code: Select all

<!-- Gouketsuji Ichizoku 2 (Japan, Ver. 94.04.08) -->
<mamecheat version="1">

    <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@23a9e = 4eb9000058706700</action> <!-- attack -->
            <action>maincpu.mq@16be6 = 4eb8587c201f4e75</action> <!-- throw -->
            <action>maincpu.mq@05860 = b3fc004007006706</action>
            <action>maincpu.mq@05868 = b3fc00400b004e75</action>
            <action>maincpu.mq@05870 = 61ee67060828001a</action>
            <action>maincpu.mq@05878 = 00864e7514004841</action>
            <action>maincpu.mq@05880 = 61de6604323c0100</action>
            <action>maincpu.mq@05888 = 4e75ffffffffffff</action>
            <!--
            5860 | b3fc 0040 0700 : cmpa.l #$400700,A1   // player check routine
            5866 | 6706           : beq    $586e
            5868 | b3fc 0040 0b00 : cmpa.l #$400b00,A1
            586e | 4e75           : rts
            5870 | 61ee           : bsr    $5860         // attack
            5872 | 6706           : beq    $587a
            5874 | 0828 001a 0086 : btst   #$1a,($86,A0)
            587a | 4e75           : rts
            587c | 1400           : move.b D0,D2         // throw
            587e | 4841           : swap   D1
            5880 | 61de           : bsr    $5860
            5882 | 6604           : bne    $5888
            5884 | 323c 0100      : move.w #$100,D1
            5888 | 4e75           : rts
            -->
        </script>
        <script state="change">
            <action                          >maincpu.mb@5863 = 00</action>
            <action                          >maincpu.mb@586b = 00</action>
            <action condition="param band 01">maincpu.mb@5863 = 40</action>
            <action condition="param band 02">maincpu.mb@586b = 40</action>
        </script>
        <script state="off">
            <action>maincpu.mq@23a9e = 0828001a00866700</action>
            <action>maincpu.mq@16be6 = 14004841201f4e75</action>
            <action>maincpu.mq@05860 = ffffffffffffffff</action>
            <action>maincpu.mq@05868 = ffffffffffffffff</action>
            <action>maincpu.mq@05870 = ffffffffffffffff</action>
            <action>maincpu.mq@05878 = ffffffffffffffff</action>
            <action>maincpu.mq@05880 = ffffffffffffffff</action>
            <action>maincpu.mq@05888 = 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.md@16aa4 =         4eb85890</action>
            <action>maincpu.mq@05890 = 122a0002b1fc0040</action>
            <action>maincpu.mq@05898 = 07006708b1fc0040</action>
            <action>maincpu.mq@058a0 = 0b006604122a0001</action>
            <action>maincpu.mq@058a8 = 4e75ffffffffffff</action>
            <!--
            5890 | 122a 0002      : move.b ($2,A2),D1
            5894 | b1fc 0040 0700 : cmpa.l #$400700,A0
            589a | 6708           : beq    $58a4
            589c | b1fc 0040 0b00 : cmpa.l #$400b00,A0
            58a2 | 6604           : bne    $58a8
            58a4 | 122a 0001      : move.b ($1,A2),D1
            58a8 | 4e75           : rts
            -->
        </script>
        <script state="change">
            <action                          >maincpu.mb@5897 = 00</action>
            <action                          >maincpu.mb@589f = 00</action>
            <action condition="param band 01">maincpu.mb@5897 = 40</action>
            <action condition="param band 02">maincpu.mb@589f = 40</action>
        </script>
        <script state="off">
            <action>maincpu.md@16aa4 =         122a0002</action>
            <action>maincpu.mq@05890 = ffffffffffffffff</action>
            <action>maincpu.mq@05898 = ffffffffffffffff</action>
            <action>maincpu.mq@058a0 = ffffffffffffffff</action>
            <action>maincpu.mq@058a8 = ffffffffffffffff</action>
        </script>
    </cheat>

    <cheat desc="special attack">
        <parameter>
            <item value="0x01">P1          </item>
            <item value="0x02">P2          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@105b4 = 4eb9000058b06600</action>
            <action>maincpu.mq@105d6 = 4eb9000058b06600</action>
            <action>maincpu.mq@1060e = 4eb9000058b06600</action>
            <action>maincpu.mq@058b0 = b1fc004007006708</action>
            <action>maincpu.mq@058b8 = b1fc00400b006606</action>
            <action>maincpu.mq@058c0 = 023c00fb4e750828</action>
            <action>maincpu.mq@058c8 = 000600a34e75ffff</action>
            <!--
            58b0 | b1fc 0040 0700 : cmpa.l #$400700,A0
            58b6 | 6708           : beq    $58c0
            58b8 | b1fc 0040 0b00 : cmpa.l #$400b00,A0
            58be | 6606           : bne    $58c6
            58c0 | 023c 00fb      : andi   #$fb,CCR
            58c4 | 4e75           : rts
            58c6 | 0828 0006 00a3 : btst   #$6,($a3,A0)
            58cc | 4e75           : rts
            -->
        </script>
        <script state="change">
            <action                          >maincpu.mb@58b3 = 00</action>
            <action                          >maincpu.mb@58bb = 00</action>
            <action condition="param band 01">maincpu.mb@58b3 = 40</action>
            <action condition="param band 02">maincpu.mb@58bb = 40</action>
        </script>
        <script state="off">
            <action>maincpu.mq@105b4 = 0828000600a36600</action>
            <action>maincpu.mq@105d6 = 0828000600a36600</action>
            <action>maincpu.mq@1060e = 0828000600a36600</action>
            <action>maincpu.mq@058b0 = ffffffffffffffff</action>
            <action>maincpu.mq@058b8 = ffffffffffffffff</action>
            <action>maincpu.mq@058c0 = ffffffffffffffff</action>
            <action>maincpu.mq@058c8 = ffffffffffffffff</action>
        </script>
    </cheat>

    <cheat desc="action speed up (test)">
        <comment>repeated winner's animation</comment>
        <parameter>
            <item value="0x01">P1          </item>
            <item value="0x02">P2          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@c116 =         4eb858d0</action>
            <action>maincpu.mq@58d0 = b1fc004007006708</action>
            <action>maincpu.mq@58d8 = b1fc00400b006602</action>
            <action>maincpu.mq@58e0 = 4200114000844e75</action>
            <!--
            58d0 | b1fc 0040 0700 : cmpa.l #$400700,A0
            58d6 | 6708           : beq    $58e0
            58d8 | b1fc 0040 0b00 : cmpa.l #$400b00,A0
            58de | 6602           : bne    $58e2
            58e0 | 4200           : clr.b  D0
            58e2 | 1140 0084      : move.b D0,($84,A0)
            58e6 | 4e75           : rts
            -->
        </script>
        <script state="change">
            <action                          >maincpu.mb@58d3 = 00</action>
            <action                          >maincpu.mb@58db = 00</action>
            <action condition="param band 01">maincpu.mb@58d3 = 40</action>
            <action condition="param band 02">maincpu.mb@58db = 40</action>
        </script>
        <script state="off">
            <action>maincpu.md@c116 =         11400084</action>
            <action>maincpu.mq@58d0 = ffffffffffffffff</action>
            <action>maincpu.mq@58d8 = ffffffffffffffff</action>
            <action>maincpu.mq@58e0 = ffffffffffffffff</action>
        </script>
    </cheat>

    <cheat desc="timer speed">
        <parameter>
            <item value="0x007f">01 (slow)</item>
            <item value="0x0060">02       </item>
            <item value="0x0040">03       </item>
            <item value="0x0020">04       </item>
            <item value="0x0000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mw@1f016 = 103c</action>
        </script>
        <script state="change">
            <action>maincpu.mb@1efe7 = param</action> <!-- initialize -->
            <action>maincpu.mw@1f018 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@1f016 = dcc01016</action>
        </script>
    </cheat>

    <cheat desc="region">
        <comment>reset the game to change region</comment>
        <parameter>
            <item value="0x00">gouketsuji ichizoku 2 (japan)      </item>
            <item value="0x01">power instinct 2 (usa)             </item>
            <item value="0x02">power instinct 2 (usa, alt license)</item> <!-- KM international co.,ltd -->
            <item value="0x03">power instinct 2 (usa?)            </item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@018a = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@018a = 00</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <!-- bank 0x01 is music, 0x03 and 0x04 are voice, 0x05 is sfx -->
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.md@12f2 =         4ef87e40</action>
            <action>maincpu.mq@7e40 = 204d43e8000145f9</action>
            <action>maincpu.mq@7e48 = 00e0000012001028</action>
            <action>maincpu.mq@7e50 = 0b03b20067f60c00</action>
            <action>maincpu.mq@7e58 = 0004660253100c00</action>
            <action>maincpu.mq@7e60 = 0008660252100c00</action>
            <action>maincpu.mq@7e68 = 0002660404100010</action>
            <action>maincpu.mq@7e70 = 0c00000166040610</action>
            <action>maincpu.mq@7e78 = 00100c0000446602</action>
            <action>maincpu.mq@7e80 = 53110c0000486602</action>
            <action>maincpu.mq@7e88 = 5211021100070c00</action>
            <action>maincpu.mq@7e90 = 0010660a42421411</action>
            <action>maincpu.mq@7e98 = e14a841034820c00</action>
            <action>maincpu.mq@7ea0 = 00206602425260a4</action>
            <!--
            7e40 | 204d           : movea.l A5,A0        // sound code address ($40f300)
            7e42 | 43e8 0001      : lea     ($1,A0),A1   // sound bank address ($40f301)
            7e46 | 45f9 00e0 0000 : lea     $e00000.l,A2 // sound latch address
            7e4c | 1200           : move.b  D0,D1
            7e4e | 1028 0b03      : move.b  ($b03,A0),D0 // read input ($40fe03)
            7e52 | b200           : cmp.b   D0,D1
            7e54 | 67f6           : beq     $7e4c
            7e56 | 0c00 0004      : cmpi.b  #$4,D0
            7e5a | 6602           : bne     $7e5e
            7e5c | 5310           : subq.b  #1,(A0)      // decrease code -01
            7e5e | 0c00 0008      : cmpi.b  #$8,D0
            7e62 | 6602           : bne     $7e66
            7e64 | 5210           : addq.b  #1,(A0)      // increase code +01
            7e66 | 0c00 0002      : cmpi.b  #$2,D0
            7e6a | 6604           : bne     $7e70
            7e6c | 0410 0010      : subi.b  #$10,(A0)    // decrease code -10
            7e70 | 0c00 0001      : cmpi.b  #$1,D0
            7e74 | 6604           : bne     $7e7a
            7e76 | 0610 0010      : addi.b  #$10,(A0)    // increase code +10
            7e7a | 0c00 0044      : cmpi.b  #$44,D0
            7e7e | 6602           : bne     $7e82
            7e80 | 5311           : subq.b  #1,(A1)      // decrease bank -01
            7e82 | 0c00 0048      : cmpi.b  #$48,D0
            7e86 | 6602           : bne     $7e8a
            7e88 | 5211           : addq.b  #1,(A1)      // increase bank +01
            7e8a | 0211 0007      : andi.b  #$7,(A1)
            7e8e | 0c00 0010      : cmpi.b  #$10,D0
            7e92 | 660a           : bne     $7e9e
            7e94 | 4242           : clr.w   D2           // play sound
            7e96 | 1411           : move.b  (A1),D2
            7e98 | e14a           : lsl.w   #8, D2
            7e9a | 8410           : or.b    (A0),D2
            7e9c | 3482           : move.w  D2,(A2)
            7e9e | 0c00 0020      : cmpi.b  #$20,D0
            7ea2 | 6602           : bne     $7ea6
            7ea4 | 4252           : clr.w   (A2)         // stop sound
            7ea6 | 60a4           : bra     $7e4c
            -->
        </script>
        <script state="run">
            <output format="----- gouketsuji ichizoku 2 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 3 + left : decrease bank -01"               line="15" align="center" />
            <output format="button 3 + right : increase bank +01"              line="16" align="center" />
            <output format="button 1 : play sound"                             line="17" align="center" />
            <output format="button 2 : stop sound"                             line="18" align="center" />
            <output format="----------------------------"                      line="19" align="center" />
            <output format="&lt;&lt; bank %2.2X &gt;&gt;"                      line="21" align="center"  >
                <argument>maincpu.pb@40f301</argument>
            </output>
            <output format="&lt;&lt; sound code %2.2X &gt;&gt;"   line="23" align="center"  >
                <argument>maincpu.pb@40f300</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@12f2 =         4ebafb08</action>
            <action>maincpu.mq@7e40 = ffffffffffffffff</action>
            <action>maincpu.mq@7e48 = ffffffffffffffff</action>
            <action>maincpu.mq@7e50 = ffffffffffffffff</action>
            <action>maincpu.mq@7e58 = ffffffffffffffff</action>
            <action>maincpu.mq@7e60 = ffffffffffffffff</action>
            <action>maincpu.mq@7e68 = ffffffffffffffff</action>
            <action>maincpu.mq@7e70 = ffffffffffffffff</action>
            <action>maincpu.mq@7e78 = ffffffffffffffff</action>
            <action>maincpu.mq@7e80 = ffffffffffffffff</action>
            <action>maincpu.mq@7e88 = ffffffffffffffff</action>
            <action>maincpu.mq@7e90 = ffffffffffffffff</action>
            <action>maincpu.mq@7e98 = ffffffffffffffff</action>
            <action>maincpu.mq@7ea0 = ffffffffffffffff</action>
        </script>
    </cheat>

</mamecheat>
  • "action speed up" : repeated winner's animation.
  • "region" : winner's message seems not to display if you change region from default.
  • "sound test mode" : bank 0x01 is music, 0x03 and 0x04 are voice, 0x05 is sfx. bank 0x02 seems to be unused.
BTW, I fail to search "unlock secret characters (in character selection screen)" because this game seems not to be programmed to remove restrictions for unselectable characters.
Post Reply