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 &= ~01</action>
<action condition="(param band 02) == 00">maincpu.pb@400CFF &= ~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 &= ~02</action>
<action condition="(param band 02) == 00">maincpu.pb@400CFF &= ~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 &= ~04</action>
<action condition="(param band 02) == 00">maincpu.pb@400CFF &= ~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 &= ~08</action>
<action condition="(param band 02) == 00">maincpu.pb@400CFF &= ~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="<< bank %X >>" line="21" align="center" >
<argument>maincpu.pb@40F301</argument>
</output>
<output format="<< sound code %02X >>" 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 &= ~01</action>
<action condition="(param band 02) == 00">maincpu.pb@400CFF &= ~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 &= ~02</action>
<action condition="(param band 02) == 00">maincpu.pb@400CFF &= ~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 &= ~04</action>
<action condition="(param band 02) == 00">maincpu.pb@400CFF &= ~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 &= ~08</action>
<action condition="(param band 02) == 00">maincpu.pb@400CFF &= ~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="<< bank %X >>" line="21" align="center" >
<argument>maincpu.pb@40F301</argument>
</output>
<output format="<< sound code %02X >>" 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 &= ~01</action>
<action condition="(param band 02) == 00">maincpu.pb@400CFF &= ~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 &= ~02</action>
<action condition="(param band 02) == 00">maincpu.pb@400CFF &= ~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 &= ~04</action>
<action condition="(param band 02) == 00">maincpu.pb@400CFF &= ~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 &= ~08</action>
<action condition="(param band 02) == 00">maincpu.pb@400CFF &= ~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="<< bank %X >>" line="21" align="center" >
<argument>maincpu.pb@40F301</argument>
</output>
<output format="<< sound code %02X >>" 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.