[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: 1316
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 9 times

[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.
jman

my wip cheat database back-up (06/01/2025 ver.)
https://u3.getuploader.com/...../download/58
downloadpass : jman2020
jman
Posts: 1316
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 9 times

[pwrinst2]+ Power Instinct 2/Gouketsuji Ichizoku 2

Post by jman »

pwrinst2.xml

Code: Select all

<!-- Power Instinct 2 (US, Ver. 94.04.08, set 1) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@1695E = 4EB85860201F4E75</action> <!-- catch / throw -->
            <action>maincpu.mq@2371E = 4EB9000058726700</action> <!-- direct attack / firearms -->
            <action>maincpu.mq@05860 = 1400484108290000</action>
            <action>maincpu.mq@05868 = 01FF6704323C0100</action>
            <action>maincpu.mq@05870 = 4E750829000001FF</action>
            <action>maincpu.mq@05878 = 670442404E750828</action>
            <action>maincpu.mq@05880 = 001A00864E75FFFF</action>
            <!--
            5860 | 1400           : move.b  D0, D2         // catch / throw
            5862 | 4841           : swap    D1
            5864 | 0829 0000 01FF : btst    #$0, ($1ff,A1)
            586A | 6704           : beq     $5870
            586C | 323C 0100      : move.w  #$100, D1
            5870 | 4E75           : rts
            5872 | 0829 0000 01FF : btst    #$0, ($1ff,A1) // direct attack / firearms
            5878 | 6704           : beq     $587e
            587A | 4240           : clr.w   D0
            587C | 4E75           : rts
            587E | 0828 001A 0086 : btst    #$1a, ($86,A0)
            5884 | 4E75           : rts
            -->
        </script>
        <script state="run">
            <action condition="(param band 01) == 00">maincpu.pb@4008FF &amp;= ~01</action>
            <action condition="(param band 02) == 00">maincpu.pb@400CFF &amp;= ~01</action>
            <action condition="(param band 01) != 00">maincpu.pb@4008FF |= 01     </action>
            <action condition="(param band 02) != 00">maincpu.pb@400CFF |= 01     </action>
        </script>
        <script state="off">
            <action>maincpu.mq@1695E = 14004841201F4E75</action>
            <action>maincpu.mq@2371E = 0828001A00866700</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>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@1681C = 4EB85888        </action>
            <action>maincpu.mq@05888 = 122A000208280001</action>
            <action>maincpu.mq@05890 = 01FF6704122A0001</action>
            <action>maincpu.mq@05898 = 4E75FFFFFFFFFFFF</action>
            <!--
            5888 | 122A 0002      : move.b  ($2,A2), D1
            588C | 0828 0001 01FF : btst    #$1, ($1ff,A0)
            5892 | 6704           : beq     $5898
            5894 | 122A 0001      : move.b  ($1,A2), D1
            5898 | 4E75           : rts
            -->
        </script>
        <script state="run">
            <action condition="(param band 01) == 00">maincpu.pb@4008FF &amp;= ~02</action>
            <action condition="(param band 02) == 00">maincpu.pb@400CFF &amp;= ~02</action>
            <action condition="(param band 01) != 00">maincpu.pb@4008FF |= 02     </action>
            <action condition="(param band 02) != 00">maincpu.pb@400CFF |= 02     </action>
        </script>
        <script state="off">
            <action>maincpu.md@1681C = 122A0002        </action>
            <action>maincpu.mq@05888 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@05890 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@05898 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="action speed up (test)">
        <comment>repeated winner's animation</comment>
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@C100 = 4EB858A0        </action>
            <action>maincpu.mq@58A0 = 0828000201FF6702</action>
            <action>maincpu.mq@58A8 = 4200114000844E75</action>
            <!--
            58A0 | 0828 0002 01FF : btst    #$2, ($1ff,A0)
            58A6 | 6702           : beq     $58aa
            58A8 | 4200           : clr.b   D0
            58AA | 1140 0084      : move.b  D0, ($84,A0)
            58AE | 4E75           : rts
            -->
        </script>
        <script state="run">
            <action condition="(param band 01) == 00">maincpu.pb@4008FF &amp;= ~04</action>
            <action condition="(param band 02) == 00">maincpu.pb@400CFF &amp;= ~04</action>
            <action condition="(param band 01) != 00">maincpu.pb@4008FF |= 04     </action>
            <action condition="(param band 02) != 00">maincpu.pb@400CFF |= 04     </action>
        </script>
        <script state="off">
            <action>maincpu.md@C100 = 11400084        </action>
            <action>maincpu.mq@58A0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@58A8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="special move">
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@10464 = 4EB9000058B06600</action>
            <action>maincpu.mq@10486 = 4EB9000058B06600</action> <!-- annie -->
            <action>maincpu.mq@104BE = 4EB9000058B06600</action> <!-- kanji -->
            <action>maincpu.mq@058B0 = 0828000301FF6606</action>
            <action>maincpu.mq@058B8 = 0828000600A34E75</action>
            <!--
            58B0 | 0828 0003 01FF : btst    #$3, ($1ff,A0)
            58B6 | 6606           : bne     $58be
            58B8 | 0828 0006 00A3 : btst    #$6, ($a3,A0)
            58BE | 4E75           : rts
            -->
        </script>
        <script state="run">
            <action condition="(param band 01) == 00">maincpu.pb@4008FF &amp;= ~08</action>
            <action condition="(param band 02) == 00">maincpu.pb@400CFF &amp;= ~08</action>
            <action condition="(param band 01) != 00">maincpu.pb@4008FF |= 08     </action>
            <action condition="(param band 02) != 00">maincpu.pb@400CFF |= 08     </action>
        </script>
        <script state="off">
            <action>maincpu.mq@10464 = 0828000600A36600</action>
            <action>maincpu.mq@10486 = 0828000600A36600</action>
            <action>maincpu.mq@104BE = 0828000600A36600</action>
            <action>maincpu.mq@058B0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@058B8 = 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@1ECAC = 103C</action>
        </script>
        <script state="change">
            <action>maincpu.mb@1EC7D = param</action> <!-- initialize -->
            <action>maincpu.mw@1ECAE = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@1EC7D = 00      </action>
            <action>maincpu.md@1ECAC = DCC01016</action>
        </script>
    </cheat>

    <cheat desc="region">
        <comment>reset the game (F3) 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 = 01</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <!-- valid bank seems to be 0x01 (music), 0x03, 0x04 (voice) and 0x05 (sfx) -->
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mw@27FA = 0092            </action> <!-- disable credit display -->
            <action>maincpu.md@12F2 = 4EF858C0        </action>
            <action>maincpu.mq@58C0 = 41ED000143F900E0</action>
            <action>maincpu.mq@58C8 = 000042551200102D</action>
            <action>maincpu.mq@58D0 = 0B03B20067F60C00</action>
            <action>maincpu.mq@58D8 = 0004660253150C00</action>
            <action>maincpu.mq@58E0 = 0008660252150C00</action>
            <action>maincpu.mq@58E8 = 0002660404150010</action>
            <action>maincpu.mq@58F0 = 0C00000166040615</action>
            <action>maincpu.mq@58F8 = 00100C0000446602</action>
            <action>maincpu.mq@5900 = 53100C0000486602</action>
            <action>maincpu.mq@5908 = 5210021000070C00</action>
            <action>maincpu.mq@5910 = 0010660A42421410</action>
            <action>maincpu.mq@5918 = E14A841532820C00</action>
            <action>maincpu.mq@5920 = 00206602425160A4</action>
            <!--
            58C0 | 41ED 0001      : lea     ($1,A5), A0   // bank address ($40F301)
            58C4 | 43F9 00E0 0000 : lea     $e00000.l, A1 // sound latch address
            58CA | 4255           : clr.w   (A5)          // initialize sound and bank code
            58CC | 1200           : move.b  D0, D1
            58CE | 102D 0B03      : move.b  ($b03,A5), D0 // read input ($40FE03)
            58D2 | B200           : cmp.b   D0, D1
            58D4 | 67F6           : beq     $58cc
            58D6 | 0C00 0004      : cmpi.b  #$4, D0
            58DA | 6602           : bne     $58de
            58DC | 5315           : subq.b  #1, (A5)      // decrease code -01
            58DE | 0C00 0008      : cmpi.b  #$8, D0
            58E2 | 6602           : bne     $58e6
            58E4 | 5215           : addq.b  #1, (A5)      // increase code +01
            58E6 | 0C00 0002      : cmpi.b  #$2, D0
            58EA | 6604           : bne     $58f0
            58EC | 0415 0010      : subi.b  #$10, (A5)    // decrease code -10
            58F0 | 0C00 0001      : cmpi.b  #$1, D0
            58F4 | 6604           : bne     $58fa
            58F6 | 0615 0010      : addi.b  #$10, (A5)    // increase code +10
            58FA | 0C00 0044      : cmpi.b  #$44, D0
            58FE | 6602           : bne     $5902
            5900 | 5310           : subq.b  #1, (A0)      // decrease bank -01
            5902 | 0C00 0048      : cmpi.b  #$48, D0
            5906 | 6602           : bne     $590a
            5908 | 5210           : addq.b  #1, (A0)      // increase bank +01
            590A | 0210 0007      : andi.b  #$7, (A0)     // mask bank
            590E | 0C00 0010      : cmpi.b  #$10, D0
            5912 | 660A           : bne     $591e
            5914 | 4242           : clr.w   D2            // play sound
            5916 | 1410           : move.b  (A0), D2
            5918 | E14A           : lsl.w   #8, D2
            591A | 8415           : or.b    (A5), D2
            591C | 3282           : move.w  D2, (A1)
            591E | 0C00 0020      : cmpi.b  #$20, D0
            5922 | 6602           : bne     $5926
            5924 | 4251           : clr.w   (A1)          // stop sound
            5926 | 60A4           : bra     $58cc
            -->
        </script>
        <script state="run">
            <output format="----- 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 %X &gt;&gt;"             line="21" align="center"  >
                <argument>maincpu.pb@40F301</argument>
            </output>
            <output format="&lt;&lt; sound code %02X &gt;&gt;"     line="23" align="center"  >
                <argument>maincpu.pb@40F300</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@27FA = 0066            </action>
            <action>maincpu.md@12F2 = 4EBAFB08        </action>
            <action>maincpu.mq@58C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@58C8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@58D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@58D8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@58E0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@58E8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@58F0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@58F8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5900 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5908 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5910 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5918 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5920 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
pwrinst2a.xml

Code: Select all

<!-- Power Instinct 2 (US, Ver. 94.04.08, set 2) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@16BE6 = 4EB85980201F4E75</action> <!-- catch / throw -->
            <action>maincpu.mq@23A9E = 4EB9000059926700</action> <!-- direct attack / firearms -->
            <action>maincpu.mq@05980 = 1400484108290000</action>
            <action>maincpu.mq@05988 = 01FF6704323C0100</action>
            <action>maincpu.mq@05990 = 4E750829000001FF</action>
            <action>maincpu.mq@05998 = 670442404E750828</action>
            <action>maincpu.mq@059A0 = 001A00864E75FFFF</action>
            <!--
            5980 | 1400           : move.b  D0, D2         // catch / throw
            5982 | 4841           : swap    D1
            5984 | 0829 0000 01FF : btst    #$0, ($1ff,A1)
            598A | 6704           : beq     $5990
            598C | 323C 0100      : move.w  #$100, D1
            5990 | 4E75           : rts
            5992 | 0829 0000 01FF : btst    #$0, ($1ff,A1) // direct attack / firearms
            5998 | 6704           : beq     $599e
            599A | 4240           : clr.w   D0
            599C | 4E75           : rts
            599E | 0828 001A 0086 : btst    #$1a, ($86,A0)
            59A4 | 4E75           : rts
            -->
        </script>
        <script state="run">
            <action condition="(param band 01) == 00">maincpu.pb@4008FF &amp;= ~01</action>
            <action condition="(param band 02) == 00">maincpu.pb@400CFF &amp;= ~01</action>
            <action condition="(param band 01) != 00">maincpu.pb@4008FF |= 01     </action>
            <action condition="(param band 02) != 00">maincpu.pb@400CFF |= 01     </action>
        </script>
        <script state="off">
            <action>maincpu.mq@16BE6 = 14004841201F4E75</action>
            <action>maincpu.mq@23A9E = 0828001A00866700</action>
            <action>maincpu.mq@05980 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@05988 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@05990 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@05998 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@059A0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@16AA4 = 4EB859A8        </action>
            <action>maincpu.mq@059A8 = 122A000208280001</action>
            <action>maincpu.mq@059B0 = 01FF6704122A0001</action>
            <action>maincpu.mq@059B8 = 4E75FFFFFFFFFFFF</action>
            <!--
            59A8 | 122A 0002      : move.b  ($2,A2), D1
            59AC | 0828 0001 01FF : btst    #$1, ($1ff,A0)
            59B2 | 6704           : beq     $59b8
            59B4 | 122A 0001      : move.b  ($1,A2), D1
            59B8 | 4E75           : rts
            -->
        </script>
        <script state="run">
            <action condition="(param band 01) == 00">maincpu.pb@4008FF &amp;= ~02</action>
            <action condition="(param band 02) == 00">maincpu.pb@400CFF &amp;= ~02</action>
            <action condition="(param band 01) != 00">maincpu.pb@4008FF |= 02     </action>
            <action condition="(param band 02) != 00">maincpu.pb@400CFF |= 02     </action>
        </script>
        <script state="off">
            <action>maincpu.md@16AA4 = 122A0002        </action>
            <action>maincpu.mq@059A8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@059B0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@059B8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="action speed up (test)">
        <comment>repeated winner's animation</comment>
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@C116 = 4EB859C0        </action>
            <action>maincpu.mq@59C0 = 0828000201FF6702</action>
            <action>maincpu.mq@59C8 = 4200114000844E75</action>
            <!--
            59C0 | 0828 0002 01FF : btst    #$2, ($1ff,A0)
            59C6 | 6702           : beq     $59ca
            59C8 | 4200           : clr.b   D0
            59CA | 1140 0084      : move.b  D0, ($84,A0)
            59CE | 4E75           : rts
            -->
        </script>
        <script state="run">
            <action condition="(param band 01) == 00">maincpu.pb@4008FF &amp;= ~04</action>
            <action condition="(param band 02) == 00">maincpu.pb@400CFF &amp;= ~04</action>
            <action condition="(param band 01) != 00">maincpu.pb@4008FF |= 04     </action>
            <action condition="(param band 02) != 00">maincpu.pb@400CFF |= 04     </action>
        </script>
        <script state="off">
            <action>maincpu.md@C116 = 11400084        </action>
            <action>maincpu.mq@59C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@59C8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="special move">
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@105B4 = 4EB9000059D06600</action>
            <action>maincpu.mq@105D6 = 4EB9000059D06600</action> <!-- annie -->
            <action>maincpu.mq@1060E = 4EB9000059D06600</action> <!-- kanji -->
            <action>maincpu.mq@059D0 = 0828000301FF6606</action>
            <action>maincpu.mq@059D8 = 0828000600A34E75</action>
            <!--
            59D0 | 0828 0003 01FF : btst    #$3, ($1ff,A0)
            59D6 | 6606           : bne     $59de
            59D8 | 0828 0006 00A3 : btst    #$6, ($a3,A0)
            59DE | 4E75           : rts
            -->
        </script>
        <script state="run">
            <action condition="(param band 01) == 00">maincpu.pb@4008FF &amp;= ~08</action>
            <action condition="(param band 02) == 00">maincpu.pb@400CFF &amp;= ~08</action>
            <action condition="(param band 01) != 00">maincpu.pb@4008FF |= 08     </action>
            <action condition="(param band 02) != 00">maincpu.pb@400CFF |= 08     </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@059D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@059D8 = 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.mb@1EFE7 = 00      </action>
            <action>maincpu.md@1F016 = DCC01016</action>
        </script>
    </cheat>

    <cheat desc="region">
        <comment>reset the game (F3) 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">
        <!-- valid bank seems to be 0x01 (music), 0x03, 0x04 (voice) and 0x05 (sfx) -->
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mw@290A = 0092            </action> <!-- disable credit display -->
            <action>maincpu.md@12F8 = 4EF859E0        </action>
            <action>maincpu.mq@59E0 = 41ED000143F900E0</action>
            <action>maincpu.mq@59E8 = 000042551200102D</action>
            <action>maincpu.mq@59F0 = 0B03B20067F60C00</action>
            <action>maincpu.mq@59F8 = 0004660253150C00</action>
            <action>maincpu.mq@5A00 = 0008660252150C00</action>
            <action>maincpu.mq@5A08 = 0002660404150010</action>
            <action>maincpu.mq@5A10 = 0C00000166040615</action>
            <action>maincpu.mq@5A18 = 00100C0000446602</action>
            <action>maincpu.mq@5A20 = 53100C0000486602</action>
            <action>maincpu.mq@5A28 = 5210021000070C00</action>
            <action>maincpu.mq@5A30 = 0010660A42421410</action>
            <action>maincpu.mq@5A38 = E14A841532820C00</action>
            <action>maincpu.mq@5A40 = 00206602425160A4</action>
            <!--
            59E0 | 41ED 0001      : lea     ($1,A5), A0   // bank address ($40F301)
            59E4 | 43F9 00E0 0000 : lea     $e00000.l, A1 // sound latch address
            59EA | 4255           : clr.w   (A5)          // initialize sound and bank code
            59EC | 1200           : move.b  D0, D1
            59EE | 102D 0B03      : move.b  ($b03,A5), D0 // read input ($40FE03)
            59F2 | B200           : cmp.b   D0, D1
            59F4 | 67F6           : beq     $59ec
            59F6 | 0C00 0004      : cmpi.b  #$4, D0
            59FA | 6602           : bne     $59fe
            59FC | 5315           : subq.b  #1, (A5)      // decrease code -01
            59FE | 0C00 0008      : cmpi.b  #$8, D0
            5A02 | 6602           : bne     $5a06
            5A04 | 5215           : addq.b  #1, (A5)      // increase code +01
            5A06 | 0C00 0002      : cmpi.b  #$2, D0
            5A0A | 6604           : bne     $5a10
            5A0C | 0415 0010      : subi.b  #$10, (A5)    // decrease code -10
            5A10 | 0C00 0001      : cmpi.b  #$1, D0
            5A14 | 6604           : bne     $5a1a
            5A16 | 0615 0010      : addi.b  #$10, (A5)    // increase code +10
            5A1A | 0C00 0044      : cmpi.b  #$44, D0
            5A1E | 6602           : bne     $5a22
            5A20 | 5310           : subq.b  #1, (A0)      // decrease bank -01
            5A22 | 0C00 0048      : cmpi.b  #$48, D0
            5A26 | 6602           : bne     $5a2a
            5A28 | 5210           : addq.b  #1, (A0)      // increase bank +01
            5A2A | 0210 0007      : andi.b  #$7, (A0)     // mask bank
            5A2E | 0C00 0010      : cmpi.b  #$10, D0
            5A32 | 660A           : bne     $5a3e
            5A34 | 4242           : clr.w   D2            // play sound
            5A36 | 1410           : move.b  (A0), D2
            5A38 | E14A           : lsl.w   #8, D2
            5A3A | 8415           : or.b    (A5), D2
            5A3C | 3282           : move.w  D2, (A1)
            5A3E | 0C00 0020      : cmpi.b  #$20, D0
            5A42 | 6602           : bne     $5a46
            5A44 | 4251           : clr.w   (A1)          // stop sound
            5A46 | 60A4           : bra     $59ec
            -->
        </script>
        <script state="run">
            <output format="----- 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 %X &gt;&gt;"             line="21" align="center"  >
                <argument>maincpu.pb@40F301</argument>
            </output>
            <output format="&lt;&lt; sound code %02X &gt;&gt;"     line="23" align="center"  >
                <argument>maincpu.pb@40F300</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@290A = 0066            </action>
            <action>maincpu.md@12F8 = 4EBAFB08        </action>
            <action>maincpu.mq@58C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@58C8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@58D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@58D8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@58E0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@58E8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@58F0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@58F8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5900 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5908 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5910 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5918 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5920 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
pwrinst2j.xml

Code: Select all

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

    <cheat desc="no hit">
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@16BE6 = 4EB85860201F4E75</action> <!-- catch / throw -->
            <action>maincpu.mq@23A9E = 4EB9000058726700</action> <!-- direct attack / firearms -->
            <action>maincpu.mq@05860 = 1400484108290000</action>
            <action>maincpu.mq@05868 = 01FF6704323C0100</action>
            <action>maincpu.mq@05870 = 4E750829000001FF</action>
            <action>maincpu.mq@05878 = 670442404E750828</action>
            <action>maincpu.mq@05880 = 001A00864E75FFFF</action>
            <!--
            5860 | 1400           : move.b  D0, D2         // catch / throw
            5862 | 4841           : swap    D1
            5864 | 0829 0000 01FF : btst    #$0, ($1ff,A1)
            586A | 6704           : beq     $5870
            586C | 323C 0100      : move.w  #$100, D1
            5870 | 4E75           : rts
            5872 | 0829 0000 01FF : btst    #$0, ($1ff,A1) // direct attack / firearms
            5878 | 6704           : beq     $587e
            587A | 4240           : clr.w   D0
            587C | 4E75           : rts
            587E | 0828 001A 0086 : btst    #$1a, ($86,A0)
            5884 | 4E75           : rts
            -->
        </script>
        <script state="run">
            <action condition="(param band 01) == 00">maincpu.pb@4008FF &amp;= ~01</action>
            <action condition="(param band 02) == 00">maincpu.pb@400CFF &amp;= ~01</action>
            <action condition="(param band 01) != 00">maincpu.pb@4008FF |= 01     </action>
            <action condition="(param band 02) != 00">maincpu.pb@400CFF |= 01     </action>
        </script>
        <script state="off">
            <action>maincpu.mq@16BE6 = 14004841201F4E75</action>
            <action>maincpu.mq@23A9E = 0828001A00866700</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>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@16AA4 = 4EB85888        </action>
            <action>maincpu.mq@05888 = 122A000208280001</action>
            <action>maincpu.mq@05890 = 01FF6704122A0001</action>
            <action>maincpu.mq@05898 = 4E75FFFFFFFFFFFF</action>
            <!--
            5888 | 122A 0002      : move.b  ($2,A2), D1
            588C | 0828 0001 01FF : btst    #$1, ($1ff,A0)
            5892 | 6704           : beq     $5898
            5894 | 122A 0001      : move.b  ($1,A2), D1
            5898 | 4E75           : rts
            -->
        </script>
        <script state="run">
            <action condition="(param band 01) == 00">maincpu.pb@4008FF &amp;= ~02</action>
            <action condition="(param band 02) == 00">maincpu.pb@400CFF &amp;= ~02</action>
            <action condition="(param band 01) != 00">maincpu.pb@4008FF |= 02     </action>
            <action condition="(param band 02) != 00">maincpu.pb@400CFF |= 02     </action>
        </script>
        <script state="off">
            <action>maincpu.md@16AA4 = 122A0002        </action>
            <action>maincpu.mq@05888 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@05890 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@05898 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="action speed up (test)">
        <comment>repeated winner's animation</comment>
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@C116 = 4EB858A0        </action>
            <action>maincpu.mq@58A0 = 0828000201FF6702</action>
            <action>maincpu.mq@58A8 = 4200114000844E75</action>
            <!--
            58A0 | 0828 0002 01FF : btst    #$2, ($1ff,A0)
            58A6 | 6702           : beq     $58aa
            58A8 | 4200           : clr.b   D0
            58AA | 1140 0084      : move.b  D0, ($84,A0)
            58AE | 4E75           : rts
            -->
        </script>
        <script state="run">
            <action condition="(param band 01) == 00">maincpu.pb@4008FF &amp;= ~04</action>
            <action condition="(param band 02) == 00">maincpu.pb@400CFF &amp;= ~04</action>
            <action condition="(param band 01) != 00">maincpu.pb@4008FF |= 04     </action>
            <action condition="(param band 02) != 00">maincpu.pb@400CFF |= 04     </action>
        </script>
        <script state="off">
            <action>maincpu.md@C116 = 11400084        </action>
            <action>maincpu.mq@58A0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@58A8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="special move">
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@105B4 = 4EB9000058B06600</action>
            <action>maincpu.mq@105D6 = 4EB9000058B06600</action> <!-- annie -->
            <action>maincpu.mq@1060E = 4EB9000058B06600</action> <!-- kanji -->
            <action>maincpu.mq@058B0 = 0828000301FF6606</action>
            <action>maincpu.mq@058B8 = 0828000600A34E75</action>
            <!--
            58B0 | 0828 0003 01FF : btst    #$3, ($1ff,A0)
            58B6 | 6606           : bne     $58be
            58B8 | 0828 0006 00A3 : btst    #$6, ($a3,A0)
            58BE | 4E75           : rts
            -->
        </script>
        <script state="run">
            <action condition="(param band 01) == 00">maincpu.pb@4008FF &amp;= ~08</action>
            <action condition="(param band 02) == 00">maincpu.pb@400CFF &amp;= ~08</action>
            <action condition="(param band 01) != 00">maincpu.pb@4008FF |= 08     </action>
            <action condition="(param band 02) != 00">maincpu.pb@400CFF |= 08     </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>
        </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.mb@1EFE7 = 00      </action>
            <action>maincpu.md@1F016 = DCC01016</action>
        </script>
    </cheat>

    <cheat desc="region">
        <comment>reset the game (F3) 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">
        <!-- valid bank seems to be 0x01 (music), 0x03, 0x04 (voice) and 0x05 (sfx) -->
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mw@27FA = 0092            </action> <!-- disable credit display -->
            <action>maincpu.md@12F2 = 4EF858C0        </action>
            <action>maincpu.mq@58C0 = 41ED000143F900E0</action>
            <action>maincpu.mq@58C8 = 000042551200102D</action>
            <action>maincpu.mq@58D0 = 0B03B20067F60C00</action>
            <action>maincpu.mq@58D8 = 0004660253150C00</action>
            <action>maincpu.mq@58E0 = 0008660252150C00</action>
            <action>maincpu.mq@58E8 = 0002660404150010</action>
            <action>maincpu.mq@58F0 = 0C00000166040615</action>
            <action>maincpu.mq@58F8 = 00100C0000446602</action>
            <action>maincpu.mq@5900 = 53100C0000486602</action>
            <action>maincpu.mq@5908 = 5210021000070C00</action>
            <action>maincpu.mq@5910 = 0010660A42421410</action>
            <action>maincpu.mq@5918 = E14A841532820C00</action>
            <action>maincpu.mq@5920 = 00206602425160A4</action>
            <!--
            58C0 | 41ED 0001      : lea     ($1,A5), A0   // bank address ($40F301)
            58C4 | 43F9 00E0 0000 : lea     $e00000.l, A1 // sound latch address
            58CA | 4255           : clr.w   (A5)          // initialize sound and bank code
            58CC | 1200           : move.b  D0, D1
            58CE | 102D 0B03      : move.b  ($b03,A5), D0 // read input ($40FE03)
            58D2 | B200           : cmp.b   D0, D1
            58D4 | 67F6           : beq     $58cc
            58D6 | 0C00 0004      : cmpi.b  #$4, D0
            58DA | 6602           : bne     $58de
            58DC | 5315           : subq.b  #1, (A5)      // decrease code -01
            58DE | 0C00 0008      : cmpi.b  #$8, D0
            58E2 | 6602           : bne     $58e6
            58E4 | 5215           : addq.b  #1, (A5)      // increase code +01
            58E6 | 0C00 0002      : cmpi.b  #$2, D0
            58EA | 6604           : bne     $58f0
            58EC | 0415 0010      : subi.b  #$10, (A5)    // decrease code -10
            58F0 | 0C00 0001      : cmpi.b  #$1, D0
            58F4 | 6604           : bne     $58fa
            58F6 | 0615 0010      : addi.b  #$10, (A5)    // increase code +10
            58FA | 0C00 0044      : cmpi.b  #$44, D0
            58FE | 6602           : bne     $5902
            5900 | 5310           : subq.b  #1, (A0)      // decrease bank -01
            5902 | 0C00 0048      : cmpi.b  #$48, D0
            5906 | 6602           : bne     $590a
            5908 | 5210           : addq.b  #1, (A0)      // increase bank +01
            590A | 0210 0007      : andi.b  #$7, (A0)     // mask bank
            590E | 0C00 0010      : cmpi.b  #$10, D0
            5912 | 660A           : bne     $591e
            5914 | 4242           : clr.w   D2            // play sound
            5916 | 1410           : move.b  (A0), D2
            5918 | E14A           : lsl.w   #8, D2
            591A | 8415           : or.b    (A5), D2
            591C | 3282           : move.w  D2, (A1)
            591E | 0C00 0020      : cmpi.b  #$20, D0
            5922 | 6602           : bne     $5926
            5924 | 4251           : clr.w   (A1)          // stop sound
            5926 | 60A4           : bra     $58cc
            -->
        </script>
        <script state="run">
            <output format="----- 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 %X &gt;&gt;"             line="21" align="center"  >
                <argument>maincpu.pb@40F301</argument>
            </output>
            <output format="&lt;&lt; sound code %02X &gt;&gt;"     line="23" align="center"  >
                <argument>maincpu.pb@40F300</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@27FA = 0066            </action>
            <action>maincpu.md@12F2 = 4EBAFB08        </action>
            <action>maincpu.mq@58C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@58C8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@58D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@58D8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@58E0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@58E8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@58F0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@58F8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5900 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5908 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5910 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5918 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5920 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
  • "no hit", "rapid fire", "action speed up" and "special move" : Major rewritten routine.
  • "timer speed" : Added code for initialization.
  • "sound test mode" : Added code for credit display.
jman

my wip cheat database back-up (06/01/2025 ver.)
https://u3.getuploader.com/...../download/58
downloadpass : jman2020
Post Reply