Permalink
Find file
Fetching contributors…
Cannot retrieve contributors at this time
2139 lines (2010 sloc) 93.2 KB
<mamecheat version="1">
<!--
http://www.mamecheat.co.uk/forums/viewtopic.php?p=13271#p13271
maincpu.pb@10BEEF=0F
1. maincpu: This is the tag of the CPU whose memory you want to poke, maincpu is in 99% of cases the tag you will need
2. p : This is the memory space that needs to be poked, there are 7 possibilities p/d/i/3/o/r/m (they won't all work for all games)
p = program write (most RAM cheats need this)
m = region write (most ROM cheats use this)
r = RAM write (use this for ROM cheats if m doesn't work or for RAM cheats if p doesn't work)
o = Opcode Write (use this for ROM cheats if m and r don't work - often used for encrypted memory )
d = data write (don't think I've ever used this)
i = i/o write (don't think I've ever used this)
3 = SPACE3 write (I've definitely never used this)
3. b : memory size of what's being poked, there are four possibilities b (byte), w (word=2 bytes), d (doubleword=4 bytes) or q (quadword=8 bytes)
I'm sure you can work out that 10BEEF is the address and 0x0F is what's being poked.
Note, the pb part above can be preceded by p (physical/default) or l (logical) if p/d/i/3 memory spaces are being poked - it's a rare occurrence to need 'l' and it's normal just to drop p for physical so eg. maincpu.pb rather than maincpu.ppb .
-->
<cheat desc="Training mode (Pasky)">
<!-- author: Pasky
origin: http://forums.shoryuken.com/discussion/133697/super-turbo-training-mode-for-pc-with-hud-hitbox-input-display-cheat
origin: http://forums.shoryuken.com/discussion/comment/5141353/#Comment_5141353
description: recharges health bar after every hit, player never gets dizzy
glitches: health not recharged after throws
-->
<script state="on">
<action>maincpu.ow@4C97C=0x4EF9</action>
<action>maincpu.od@4C97E=0x4EF90FFFFD12</action>
<action>maincpu.pd@FFFFD12=0x542E0002</action>
<action>maincpu.pd@FFFFD16=0x13FC0090</action>
<action>maincpu.pd@FFFFD1A=0x00FF8479</action>
<action>maincpu.pd@FFFFD1E=0x13FC0090</action>
<action>maincpu.pd@FFFFD22=0x00FF860B</action>
<action>maincpu.pd@FFFFD26=0x13FC0090</action>
<action>maincpu.pd@FFFFD2A=0x00FF8879</action>
<action>maincpu.pd@FFFFD2E=0x13FC0090</action>
<action>maincpu.pd@FFFFD32=0x00FF8A0B</action>
<action>maincpu.pw@FFFFD36=0x4E75</action>
<action>maincpu.pb@FF88AD=0</action>
<action>maincpu.pb@FF84AD=0</action>
</script>
<script state="run">
<action>maincpu.pw@FF8DCE=9928</action>
<action>maincpu.ow@4C97C=0x4EF9 </action>
<action>maincpu.od@4C97E=0x4EF90FFFFD12</action>
<action>maincpu.pd@FFFFD12=0x542E0002</action>
<action>maincpu.pd@FFFFD16=0x13FC0090</action>
<action>maincpu.pd@FFFFD1A=0x00FF8479</action>
<action>maincpu.pd@FFFFD1E=0x13FC0090</action>
<action>maincpu.pd@FFFFD22=0x00FF860B</action>
<action>maincpu.pd@FFFFD26=0x13FC0090</action>
<action>maincpu.pd@FFFFD2A=0x00FF8879</action>
<action>maincpu.pd@FFFFD2E=0x13FC0090</action>
<action>maincpu.pd@FFFFD32=0x00FF8A0B</action>
<action>maincpu.pw@FFFFD36=0x4E75</action>
<action>maincpu.pb@FF88AD=0</action>
<action>maincpu.pb@FF84AD=0</action>
</script>
<script state="off">
<action>maincpu.ow@4C97C=0x542E</action>
<action>maincpu.od@4C97E=0x00024E75</action>
<action>maincpu.pd@FFFFD12=0</action>
<action>maincpu.pd@FFFFD16=0</action>
<action>maincpu.pd@FFFFD1A=0</action>
<action>maincpu.pd@FFFFD1E=0</action>
<action>maincpu.pd@FFFFD22=0</action>
<action>maincpu.pd@FFFFD26=0</action>
<action>maincpu.pd@FFFFD2A=0</action>
<action>maincpu.pd@FFFFD2E=0</action>
<action>maincpu.pd@FFFFD32=0</action>
<action>maincpu.pw@FFFFD36=0</action>
</script>
</cheat>
<cheat desc="Training mode (Pasky+pof_fix)">
<!-- author: Pasky
origin: http://forums.shoryuken.com/discussion/133697/super-turbo-training-mode-for-pc-with-hud-hitbox-input-display-cheat
origin: http://forums.shoryuken.com/discussion/comment/5141353/#Comment_5141353
comment: throw glitch fixed by pof
description: recharges health bar after every hit, player never gets dizzy
glitches: none known
-->
<script state="on">
<action>maincpu.ow@4C97C=0x4EF9</action>
<action>maincpu.od@4C97E=0x4EF90FFFFD12</action>
<action>maincpu.pd@FFFFD12=0x542E0002</action>
<action>maincpu.pd@FFFFD16=0x13FC0090</action>
<action>maincpu.pd@FFFFD1A=0x00FF8479</action>
<action>maincpu.pd@FFFFD1E=0x13FC0090</action>
<action>maincpu.pd@FFFFD22=0x00FF860B</action>
<action>maincpu.pd@FFFFD26=0x13FC0090</action>
<action>maincpu.pd@FFFFD2A=0x00FF8879</action>
<action>maincpu.pd@FFFFD2E=0x13FC0090</action>
<action>maincpu.pd@FFFFD32=0x00FF8A0B</action>
<action>maincpu.pw@FFFFD36=0x4E75</action>
</script>
<script state="run">
<action>maincpu.pw@FF88AC=0</action>
<action>maincpu.pw@FF84AC=0</action>
<action>maincpu.pw@FF8DCE=9928</action>
<action condition="(maincpu.pw@ff860a lt 73 and maincpu.pb@ff8451==14)">
maincpu.pw@ff8478=90, maincpu.pw@ff847a=90, maincpu.pw@ff860a=90
</action>
<action condition="(maincpu.pw@ff887a lt 73 and maincpu.pb@ff8851==14)">
maincpu.pw@ff8878=90, maincpu.pw@ff887a=90, maincpu.pw@ff8a0a=90
</action>
</script>
<script state="off">
<action>maincpu.ow@4C97C=0x542E</action>
<action>maincpu.od@4C97E=0x00024E75</action>
<action>maincpu.pd@FFFFD12=0</action>
<action>maincpu.pd@FFFFD16=0</action>
<action>maincpu.pd@FFFFD1A=0</action>
<action>maincpu.pd@FFFFD1E=0</action>
<action>maincpu.pd@FFFFD22=0</action>
<action>maincpu.pd@FFFFD26=0</action>
<action>maincpu.pd@FFFFD2A=0</action>
<action>maincpu.pd@FFFFD2E=0</action>
<action>maincpu.pd@FFFFD32=0</action>
<action>maincpu.pw@FFFFD36=0</action>
</script>
</cheat>
<cheat desc="Training mode (d9x)">
<!-- author: d9x/dammit
origin: http://www.mamecheat.co.uk/forums/viewtopic.php?f=4&t=4103#p13288
comment: consolidated into single cheat by pof
description: recharges health bar when below 33.3%
glitches: sometimes when health is recharged opponent gets hit or pushed back
-->
<script state="run">
<action>maincpu.pw@FF8DCE=9928</action>
<action condition="maincpu.rw@FF8478 lt 30 and (maincpu.rb@FF8451 band 10) == 00">
maincpu.pw@FF8478=90, maincpu.pw@FF860A=90
</action>
<action condition="maincpu.rw@FF8878 lt 30 and (maincpu.rb@FF8851 band 10) == 00">
maincpu.pw@FF8878=90, maincpu.pw@FF8A0A=90
</action>
</script>
</cheat>
<cheat desc="Training mode beta (jedpossum)">
<!-- author: jedpossum
origin: http://forums.shoryuken.com/discussion/comment/8699161/#Comment_8699161
comment: ported to mame cheat format by pof
description: infinite time, super does not discharge, when health bar empty the game continues
glitches: vertical position after wall throw, KO slowdown
-->
<script state="on">
<action>
maincpu.ow@49c4=0090, <!-- throw3 (life refill) -->
maincpu.ow@49e8=0002, <!-- remove ko knockdown (throw3) -->
maincpu.ow@4a78=0090, <!-- throw (life refill) -->
maincpu.oq@4a96=4eb90007f2b24e75, <!-- throw1 ko slowdown -->
maincpu.ow@4db0=0090, <!-- throw (life refill) -->
maincpu.ow@e2fe=0034, <!-- music (character select) -->
maincpu.ow@ecc0=0034, <!-- music (character select) -->
maincpu.ow@eccc=0034, <!-- music (character select) -->
maincpu.ow@ecda=637c, <!-- timer (character select) -->
maincpu.ow@fe90=0dd0, <!-- timer (mid match) -->
maincpu.ow@27faa=02c4, <!-- super doesn't drain -->
maincpu.ow@be64e=0090, <!-- regular hits (life refill) -->
maincpu.ow@bebae=0090 <!-- projectiles (life refill) -->
</action>
</script>
<script state="off">
<action>
maincpu.ow@49c4=ffff,
maincpu.ow@49e8=0004,
maincpu.ow@4a78=ffff,
maincpu.oq@4a96=4eb82ca6608a4e75,
maincpu.ow@4db0=ffff,
maincpu.ow@e2fe=00d3,
maincpu.ow@ecc0=00d3,
maincpu.ow@eccc=00d3,
maincpu.ow@ecda=532d,
maincpu.ow@fe90=0dce,
maincpu.ow@27faa=02b4,
maincpu.ow@be64e=ffff,
maincpu.ow@bebae=ffff
</action>
</script>
</cheat>
<cheat desc="Training mode Hack 1.1 (jedpossum)">
<!-- author: jedpossum
origin: http://forums.shoryuken.com/discussion/comment/8902051/#Comment_8902051
http://forums.shoryuken.com/discussion/comment/9813797/#Comment_9813797
comment: ported to mame cheat format by pof
description: infinite time, super recharges, health recharges, dizzy ok, random stages, hold start to return to character selection
glitches: minor glitches when health is empty
-->
<script state="on">
<action>
<!--
;19D8
4EB9 000D 6A80 jsr $d6a80.l;
-->
maincpu.ow@19D8=4EB9,
maincpu.ow@19DA=000D,
maincpu.ow@19DC=6A80,
<!-- jump to code to hold start for character select -->
maincpu.ow@19E0=000D,
maincpu.ow@19E2=6C60,
<!-- random stages -->
maincpu.ow@39a6=4EB9,
maincpu.ow@39a8=000c,
maincpu.ow@39aa=cc10,
<!-- / -->
maincpu.ow@49c4=0000, <!-- throw3 (life refill) -->
maincpu.ow@49e8=0002, <!-- remove ko knockdown (throw3) -->
maincpu.ow@4a78=0000, <!-- throw (life refill) -->
maincpu.ow@4a96=4EB9, <!-- throw1 ko slowdown -->
maincpu.ow@4a98=0007,
maincpu.ow@4a9a=f2b2,
maincpu.ow@4db0=0000, <!-- throw (life refill) -->
maincpu.ow@e2fe=0034, <!-- music (character select) -->
maincpu.ow@ecc0=0034, <!-- music (character select) -->
maincpu.ow@eccc=0034, <!-- music (character select) -->
maincpu.ow@fe90=0dd0, <!-- timer (mid match) -->
maincpu.ow@be64e=0000, <!-- regular hits (life refill) -->
maincpu.ow@bebae=0000, <!-- projectiles (life refill) -->
<!-- random stages -->
maincpu.ow@ccc10=302D,
maincpu.ow@ccc12=61D2,
maincpu.ow@ccc14=0240,
maincpu.ow@ccc16=000f,
maincpu.ow@ccc18=3b40,
maincpu.ow@ccc1a=0c4e,
maincpu.ow@ccc1c=d040,
maincpu.ow@ccc1e=4e75,
<!-- / -->
<!--
;D6A80 (56A80)
;Address setting 28 bytes
41F9 00FF 844E lea $ff844e,A0
43F9 00FF 884E lea $ff884e,A1
45F9 00FF F100 lea $fff100,A2; 1P timer - Send undamned network memory test
6108 bsr; PC+$08
C149 exg A0,A1
45F9 00FF F200 lea $fff200,A2; 2P timer
-->
maincpu.ow@D6A80=41F9,
maincpu.ow@D6A82=00FF,
maincpu.ow@D6A84=844E,
maincpu.ow@D6A86=43F9,
maincpu.ow@D6A88=00FF,
maincpu.ow@D6A8A=884E,
maincpu.ow@D6A8C=45F9,
maincpu.ow@D6A8E=00FF,
maincpu.ow@D6A90=F100,
maincpu.ow@D6A92=6108,
maincpu.ow@D6A94=C149,
maincpu.ow@D6A96=45F9,
maincpu.ow@D6A98=00FF,
maincpu.ow@D6A9A=F200,
<!--
;Timer set and countdown 6
4A2A 0000 tst.b ($0,A2);checks if there is a timer already
6710 beq; PC+$?? | Timer = 0 branch to refill
-->
maincpu.ow@D6A9C=4A2A,
maincpu.ow@D6A9E=0000,
maincpu.ow@D6AA0=6710,
<!--
;Hurt check and Subtraction 16 bytes
4A29 0003 tst.b ($3,A1)
6608 bne; PC+$08 | If hurt skip subtraction
102A 0000 move.b ($0,A2), D0
5300 subq.b #1,D0
1480 move.b D0, (A2)
4E75 rts
-->
maincpu.ow@D6AA2=4A29,
maincpu.ow@D6AA4=0003,
maincpu.ow@D6AA6=6608,
maincpu.ow@D6AA8=102A,
maincpu.ow@D6AAA=0000,
maincpu.ow@D6AAC=5300,
maincpu.ow@D6AAE=1480,
maincpu.ow@D6AB0=4E75,
<!--
;Refill 30 bytes
157C 0096 0000 move.b #$96, ($0,A2); Refill Timer
117C 0030 02B4 move.b #$30, ($2B4,A0); Refill Super
303C 0090 move.w #$90, D0
3340 01BC move.w D0, ($1bc, A1); Refill Graphic
3340 002A move.w D0, ($2a, A1); Refill Life
3340 002C move.w D0, ($2c, A1); Refill Life
4E75 rts
-->
maincpu.ow@D6AB2=157C,
maincpu.ow@D6AB4=0096,
maincpu.ow@D6AB6=0000,
maincpu.ow@D6AB8=117C,
maincpu.ow@D6ABA=0030,
maincpu.ow@D6ABC=02B4,
maincpu.ow@D6ABE=303C,
maincpu.ow@D6AC0=0090,
maincpu.ow@D6AC2=3340,
maincpu.ow@D6AC4=01BC,
maincpu.ow@D6AC6=3340,
maincpu.ow@D6AC8=002A,
maincpu.ow@D6ACA=3340,
maincpu.ow@D6ACC=002C,
maincpu.ow@D6ACE=4E75,
<!--
20 bytes
45F9 00FF F080 lea $FFF080,A2 ;Set address for timer
4A2D 007E tst.b ($7E,A5);Checks Start input
6608 bne; PC+08 | branch if start isn't pressed
157C 0030 0000 move.b #$30, ($0,A2); Refill Timer
4E75 rts
-->
maincpu.ow@D6C60=45F9,
maincpu.ow@D6C62=00FF,
maincpu.ow@D6C64=F080,
maincpu.ow@D6C66=4A2D,
maincpu.ow@D6C68=007E,
maincpu.ow@D6C6A=6608,
maincpu.ow@D6C6C=157C,
maincpu.ow@D6C6E=0030,
maincpu.ow@D6C70=0000,
maincpu.ow@D6C72=4E75,
<!--
6 bytes
4A2A 0000 tst.b ($0,A2); start timer check
6620 bne; PC+20 | branch if timer isn't 0
-->
maincpu.ow@D6C74=4A2A,
maincpu.ow@D6C76=0000,
maincpu.ow@D6C78=6620,
<!--
18 bytes
;Set Scene aka Set it to be character select 2
3B7C 000C 0004 move.w #$c, ($4,A5)
3B7C 0002 0008 move.w #$2, ($8,A5)
3B7C 0010 000A move.w #$10, ($a,A5)
-->
maincpu.ow@D6C7A=3B7C,
maincpu.ow@D6C7C=000C,
maincpu.ow@D6C7E=0004,
maincpu.ow@D6C80=3B7C,
maincpu.ow@D6C82=0002,
maincpu.ow@D6C84=0008,
maincpu.ow@D6C86=3B7C,
maincpu.ow@D6C88=0010,
maincpu.ow@D6C8A=000A,
<!--
14 bytes
;Deselect characters
102A 0000 move.b #$0, D0
1B40 07DD move.b D0, ($7dd,A5)
1B40 0BDD move.b D0, ($bdd,A5)
4E75 rts
-->
maincpu.ow@D6C8C=102A,
maincpu.ow@D6C8E=0000,
maincpu.ow@D6C90=1B40,
maincpu.ow@D6C92=07DD,
maincpu.ow@D6C94=1B40,
maincpu.ow@D6C96=0BDD,
maincpu.ow@D6C98=4E75,
<!--
10 bytes
;Timer countdown
102A 0000 move.b ($0,A2), D0
5300 subq.b #1,D0
1480 move.b D0, (A2)
4E75 rts
-->
maincpu.ow@D6C9A=102A,
maincpu.ow@D6C9C=0000,
maincpu.ow@D6C9E=5300,
maincpu.ow@D6CA0=1480,
maincpu.ow@D6CA2=4E75
</action>
</script>
<script state="off">
<action>
maincpu.ow@19D8=4EB9,
maincpu.ow@19DA=0001,
maincpu.ow@19DC=0EFC,
maincpu.ow@19E0=0001,
maincpu.ow@19E2=0EFC,
maincpu.ow@39a6=3B71,
maincpu.ow@39a8=0000,
maincpu.ow@39aa=0c4e,
maincpu.ow@49c4=ffff,
maincpu.ow@49e8=0004,
maincpu.ow@4a78=ffff,
maincpu.ow@4a96=4EB8,
maincpu.ow@4a98=2CA6,
maincpu.ow@4a9a=608A,
maincpu.ow@4db0=ffff,
maincpu.ow@e2fe=00d3,
maincpu.ow@ecc0=00d3,
maincpu.ow@eccc=00d3,
maincpu.ow@fe90=0dce,
maincpu.ow@be64e=ffff,
maincpu.ow@bebae=ffff,
maincpu.ow@ccc10=0000,
maincpu.ow@ccc12=0000,
maincpu.ow@ccc14=0000,
maincpu.ow@ccc16=0000,
maincpu.ow@ccc18=0000,
maincpu.ow@ccc1a=0000,
maincpu.ow@ccc1c=0000,
maincpu.ow@ccc1e=0000,
maincpu.ow@D6A80=283D,
maincpu.ow@D6A82=5BE1,
maincpu.ow@D6A84=EAD4,
maincpu.ow@D6A86=352E,
maincpu.ow@D6A88=9617,
maincpu.ow@D6A8A=D205,
maincpu.ow@D6A8C=08CE,
maincpu.ow@D6A8E=68B9,
maincpu.ow@D6A90=3450,
maincpu.ow@D6A92=0C45,
maincpu.ow@D6A94=E35E,
maincpu.ow@D6A96=FD8F,
maincpu.ow@D6A98=A5B4,
maincpu.ow@D6A9A=DB9D,
maincpu.ow@D6A9C=5995,
maincpu.ow@D6A9E=359F,
maincpu.ow@D6AA0=143E,
maincpu.ow@D6AA2=AEF2,
maincpu.ow@D6AA4=6C88,
maincpu.ow@D6AA6=C4B5,
maincpu.ow@D6AA8=5AE9,
maincpu.ow@D6AAA=267B,
maincpu.ow@D6AAC=9690,
maincpu.ow@D6AAE=7CA2,
maincpu.ow@D6AB0=B6B4,
maincpu.ow@D6AB2=4405,
maincpu.ow@D6AB4=FFE4,
maincpu.ow@D6AB6=1777,
maincpu.ow@D6AB8=6579,
maincpu.ow@D6ABA=D24B,
maincpu.ow@D6ABC=17CA,
maincpu.ow@D6ABE=3DC7,
maincpu.ow@D6AC0=E006,
maincpu.ow@D6AC2=20D1,
maincpu.ow@D6AC4=7132,
maincpu.ow@D6AC6=F943,
maincpu.ow@D6AC8=6090,
maincpu.ow@D6ACA=2D83,
maincpu.ow@D6ACC=F56B,
maincpu.ow@D6ACE=00F6,
maincpu.ow@D6C60=41C4,
maincpu.ow@D6C62=511B,
maincpu.ow@D6C64=98C4,
maincpu.ow@D6C66=1D41,
maincpu.ow@D6C68=A0A4,
maincpu.ow@D6C6A=8107,
maincpu.ow@D6C6C=3069,
maincpu.ow@D6C6E=52A1,
maincpu.ow@D6C70=FF0C,
maincpu.ow@D6C72=E4B9,
maincpu.ow@D6C74=8670,
maincpu.ow@D6C76=7D09,
maincpu.ow@D6C78=6BBF,
maincpu.ow@D6C7A=A3D3,
maincpu.ow@D6C7C=621C,
maincpu.ow@D6C7E=86C9,
maincpu.ow@D6C80=F317,
maincpu.ow@D6C82=07DE,
maincpu.ow@D6C84=1E87,
maincpu.ow@D6C86=531A,
maincpu.ow@D6C88=8E5E,
maincpu.ow@D6C8A=B685,
maincpu.ow@D6C8C=7ECF,
maincpu.ow@D6C8E=3271,
maincpu.ow@D6C90=6284,
maincpu.ow@D6C92=E61D,
maincpu.ow@D6C94=2C73,
maincpu.ow@D6C96=6B5B,
maincpu.ow@D6C98=0564,
maincpu.ow@D6C9A=065A,
maincpu.ow@D6C9C=1F47,
maincpu.ow@D6C9E=AE1A,
maincpu.ow@D6CA0=DCFE,
maincpu.ow@D6CA2=FFA7
</action>
</script>
</cheat>
<cheat desc="Training mode (pof)">
<!-- author: pof
origin: http://pof.eslack.org/category/superturbo/
comment: based on previous cheats by jedpossum & dammit/d9x
description: infinite time, health recharges when idle or near zero, dizzy ok
glitches: none known
-->
<script state="on">
<action>
<!-- make sure the round never ends, energy gets recharged to 9f so ew end up in "method2" below -->
maincpu.ow@49c4=009f,
maincpu.ow@4a78=009f,
maincpu.ow@4db0=009f,
maincpu.ow@be64e=009f,
maincpu.ow@bebae=009f
</action>
</script>
<script state="off">
<action>
maincpu.ow@49c4=ffff,
maincpu.ow@4a78=ffff,
maincpu.ow@4db0=ffff,
maincpu.ow@be64e=ffff,
maincpu.ow@bebae=ffff
</action>
</script>
<script state="run">
<!-- infinite time -->
<action condition="maincpu.pb@ff8dce le 97">maincpu.pw@ff8dce=9928</action>
<!-- method1: recharge energy when both players are idle -->
<action condition="(maincpu.pb@ff8451==0 and maincpu.pw@ff847a lt 90 and (maincpu.pb@ff8851==2 or maincpu.pb@ff8851==0))">
maincpu.pw@ff8478=90, maincpu.pw@ff847a=90, maincpu.pw@ff860a=90
</action>
<action condition="(maincpu.pb@ff8851==0 and maincpu.pw@ff887a lt 90 and (maincpu.pb@ff8451==2 or maincpu.pb@ff8451==0))">
maincpu.pw@ff8878=90, maincpu.pw@ff887a=90, maincpu.pw@ff8a0a=90
</action>
<!-- method2: recharge energy when round is about to end -->
<action condition="(maincpu.pw@ff847a lt f and (maincpu.pb@ff8451==14 or maincpu.pb@ff8451==E) and maincpu.pb@FFFF00==0) or (maincpu.pw@ff8478 gt 90 or maincpu.pb@ff860b gt 90 or maincpu.pb@ff860b==0)">
maincpu.pw@ff8478=90, maincpu.pw@ff847a=90, maincpu.pw@ff860a=90, maincpu.pb@FFFF00=0x20, maincpu.pb@FF82F2=0
</action>
<action condition="(maincpu.pw@ff887a lt f and (maincpu.pb@ff8851==14 or maincpu.pb@ff8851==E) and maincpu.pb@FFFF01==0) or (maincpu.pw@ff8878 gt 90 or maincpu.pb@ff8a0b gt 90 or maincpu.pb@ff8a0b==0)">
maincpu.pw@ff8878=90, maincpu.pw@ff887a=90, maincpu.pw@ff8a0a=90, maincpu.pb@FFFF01=0x20, maincpu.pb@FF82F2=0
</action>
<!-- fix glitches with stun/dizzy & disable KO slowdown when recharging energy using method2 -->
<action condition="maincpu.pb@FFFF00 gt 0">
maincpu.pb@FF84AD=0, maincpu.pw@FF84AE=0, maincpu.pw@FF84AB=0, maincpu.pb@FFFF00=maincpu.pb@FFFF00-1, maincpu.pb@FF82F2=0
</action>
<action condition="maincpu.pb@FFFF01 gt 0">
maincpu.pb@FF88AD=0, maincpu.pw@FF88AE=0, maincpu.pw@FF88AB=0, maincpu.pb@FFFF01=maincpu.pb@FFFF01-1, maincpu.pb@FF82F2=0
</action>
</script>
</cheat>
<cheat desc=" "/>
<cheat desc="Training mode (pof) - Select health recharge delay:">
<!-- author: pof
origin: http://pof.eslack.org/category/superturbo/
comment: based on previous cheats by jedpossum & dammit/d9x
description: infinite time, health recharges when idle or near zero, dizzy ok
glitches: none known
-->
<parameter>
<item value="0x00">No delay</item>
<item value="0x0a">10</item>
<item value="0x14">20</item>
<item value="0x1e">30</item>
<item value="0x28">40</item>
<item value="0x32">50</item>
<item value="0x3c">60</item>
<item value="0x46">70</item>
<item value="0x50">80</item>
<item value="0x5a">90</item>
<item value="0x64">100</item>
<item value="0x6e">110</item>
<item value="0x78">120</item>
<item value="0x82">130</item>
<item value="0x8c">140</item>
<item value="0x96">150</item>
<item value="0xa0">160</item>
<item value="0xaa">170</item>
<item value="0xb4">180</item>
<item value="0xbe">190</item>
<item value="0xc8">200</item>
<item value="0xd2">210</item>
<item value="0xdc">220</item>
<item value="0xe6">230</item>
<item value="0xf0">240</item>
<item value="0xfa">250</item>
<item value="0xff">No idle recharge</item>
</parameter>
<script state="on">
<action>
<!-- make sure the round never ends, energy gets recharged to 9f so ew end up in "method2" below -->
maincpu.ow@49c4=009f,
maincpu.ow@4a78=009f,
maincpu.ow@4db0=009f,
maincpu.ow@be64e=009f,
maincpu.ow@bebae=009f,
maincpu.pb@FFFF01=0,
maincpu.pb@FFFF02=0,
maincpu.pb@FFFF03=0
</action>
</script>
<script state="off">
<action>
maincpu.ow@49c4=ffff,
maincpu.ow@4a78=ffff,
maincpu.ow@4db0=ffff,
maincpu.ow@be64e=ffff,
maincpu.ow@bebae=ffff,
maincpu.pb@FFFF01=0,
maincpu.pb@FFFF02=0,
maincpu.pb@FFFF03=0
</action>
</script>
<script state="run">
<!-- infinite time -->
<action condition="maincpu.pb@ff8dce le 97">maincpu.pw@ff8dce=9928</action>
<!-- timers -->
<action condition="maincpu.pb@ff8451==14 or maincpu.pb@ff8451==E">maincpu.pb@FFFF02=param</action>
<action condition="maincpu.pb@ff8851==14 or maincpu.pb@ff8851==E">maincpu.pb@FFFF03=param</action>
<action condition="maincpu.pb@FFFF02 gt 0 and param != 0xff">maincpu.pb@FFFF02=maincpu.pb@FFFF02-1</action>
<action condition="maincpu.pb@FFFF03 gt 0 and param != 0xff">maincpu.pb@FFFF03=maincpu.pb@FFFF03-1</action>
<!-- method1: recharge energy when opponent is idle/crouching and we're not blocking or after being hit/thrown -->
<action condition="((maincpu.pb@ff8451!=14 and maincpu.pb@ff8451!=E and maincpu.pb@ff8451!=8) and maincpu.pw@ff847a lt 90 and (maincpu.pb@ff8851==2 or maincpu.pb@ff8851==0) and maincpu.pb@FFFF02==0)">
maincpu.pw@ff8478=90, maincpu.pw@ff847a=90, maincpu.pw@ff860a=90
</action>
<action condition="((maincpu.pb@ff8851!=14 and maincpu.pb@ff8851!=E and maincpu.pb@ff8851!=8) and maincpu.pw@ff887a lt 90 and (maincpu.pb@ff8451==2 or maincpu.pb@ff8451==0) and maincpu.pb@FFFF03==0)">
maincpu.pw@ff8878=90, maincpu.pw@ff887a=90, maincpu.pw@ff8a0a=90
</action>
<!-- method2: recharge energy when round is about to end -->
<action condition="(maincpu.pw@ff847a lt a and (maincpu.pb@ff8451==14 or maincpu.pb@ff8451==E) and maincpu.pb@FFFF00==0) or (maincpu.pw@ff8478 gt 90 or maincpu.pb@ff860b gt 90 or maincpu.pb@ff860b==0)">
maincpu.pw@ff8478=90, maincpu.pw@ff847a=90, maincpu.pw@ff860a=90, maincpu.pb@FFFF00=0x20, maincpu.pb@FF82F2=0
</action>
<action condition="(maincpu.pw@ff887a lt a and (maincpu.pb@ff8851==14 or maincpu.pb@ff8851==E) and maincpu.pb@FFFF01==0) or (maincpu.pw@ff8878 gt 90 or maincpu.pb@ff8a0b gt 90 or maincpu.pb@ff8a0b==0)">
maincpu.pw@ff8878=90, maincpu.pw@ff887a=90, maincpu.pw@ff8a0a=90, maincpu.pb@FFFF01=0x20, maincpu.pb@FF82F2=0
</action>
<!-- fix glitches with stun/dizzy & disable KO slowdown when recharging energy using method2 -->
<action condition="maincpu.pb@FFFF00 gt 0">
maincpu.pb@FF84AD=0, maincpu.pw@FF84AE=0, maincpu.pw@FF84AB=0, maincpu.pb@FFFF00=maincpu.pb@FFFF00-1, maincpu.pb@FF82F2=0
</action>
<action condition="maincpu.pb@FFFF01 gt 0">
maincpu.pb@FF88AD=0, maincpu.pw@FF88AE=0, maincpu.pw@FF88AB=0, maincpu.pb@FFFF01=maincpu.pb@FFFF01-1, maincpu.pb@FF82F2=0
</action>
</script>
</cheat>
<cheat desc=" PL1 Action">
<parameter>
<item value="0x00">Neutral (Stand)</item>
<item value="0xfd">Block Everything</item>
<item value="0xfc">Block Ground Attacks</item>
<item value="0xfb">Block Auto</item>
<item value="0x08">Up (Jump)</item>
<item value="0x09">Up-Right</item>
<item value="0x0A">Up-Left</item>
<item value="0x04">Down (Crouch)</item>
<item value="0x05">Down-Right</item>
<item value="0x06">Down-Left</item>
<item value="0x01">Right</item>
<item value="0x02">Left</item>
<item value="0xff">Throw-Right (fierce throw)</item>
<item value="0xfe">Throw-Left (fierce throw)</item>
</parameter>
<script state="on">
<action>maincpu.ow@078034=4E71</action>
<action>ow@2cd4=4e71,ow@2cd6=4e71,ow@2cd8=4e71</action>
<action>maincpu.pb@FFFF04=60</action>
</script>
<script state="run">
<action>maincpu.ow@078034=4E71</action>
<action condition="param == 0xff and frame % 2 == 0">maincpu.pw@FF87E0=0001</action>
<action condition="param == 0xff and frame % 2 != 0">maincpu.pw@FF87E0=0041</action>
<action condition="param == 0xfe and frame % 2 == 0">maincpu.pw@FF87E0=0002</action>
<action condition="param == 0xfe and frame % 2 != 0">maincpu.pw@FF87E0=0042</action>
<action condition="param lt 0x0f">maincpu.pb@FF87E1=param</action>
<!-- block auto (do not block all hits): -->
<!-- attacker state (ff8451 or +0x400 for p2): 0 idle, 2 crouching, 4 jumping, 10 doing a ground normal attack or throw, 12 on hitstun (doing an special attack) -->
<!-- attacked state (ff8451 or +0x400 for p2): 6 waking up meaty, 8 blocking, 14 hit (receiving an attack), 20 thrown -->
<action condition="param == 0xfb and maincpu.pb@FFFF04 le 1">maincpu.pb@FFFF04=60</action>
<action condition="param == 0xfb and maincpu.pb@ff8851==0">maincpu.pw@FF87E0=0000</action> <!-- neutral when opponent is neutral -->
<action condition="param == 0xfb and (maincpu.pb@ff8851==A or maincpu.pb@ff8851==C) and ((maincpu.pb@FF8BE1 band 4) == 4) and maincpu.pb@FF860C==0 and maincpu.pb@FFFF04 ge 30">maincpu.pb@FFFF04=maincpu.pb@FFFF04-1</action> <!-- if opponent attacking and pressing down, block low (on P1 side) -->
<action condition="param == 0xfb and (maincpu.pb@ff8851==A or maincpu.pb@ff8851==C) and ((maincpu.pb@FF8BE1 band 4) == 4) and maincpu.pb@FF860C==0 and maincpu.pb@FFFF04 le 2f">maincpu.pw@FF87E0=0005, maincpu.pb@FFFF04=maincpu.pb@FFFF04-1</action> <!-- if opponent attacking and pressing down, block low (on P1 side) -->
<action condition="param == 0xfb and (maincpu.pb@ff8851==A or maincpu.pb@ff8851==C) and ((maincpu.pb@FF8BE1 band 4) == 4) and maincpu.pb@FF860C==1 and maincpu.pb@FFFF04 ge 30">maincpu.pb@FFFF04=maincpu.pb@FFFF04-1</action> <!-- if opponent attacking and pressing down, block low (on P2 side) -->
<action condition="param == 0xfb and (maincpu.pb@ff8851==A or maincpu.pb@ff8851==C) and ((maincpu.pb@FF8BE1 band 4) == 4) and maincpu.pb@FF860C==1 and maincpu.pb@FFFF04 le 2f">maincpu.pw@FF87E0=0006, maincpu.pb@FFFF04=maincpu.pb@FFFF04-1</action> <!-- if opponent attacking and pressing down, block low (on P2 side) -->
<action condition="param == 0xfb and (maincpu.pb@ff8851==A or maincpu.pb@ff8851==C) and ((maincpu.pb@FF8BE1 band 4) != 4) and maincpu.pb@FF860C==0 and maincpu.pb@FFFF04 ge 30">maincpu.pb@FFFF04=maincpu.pb@FFFF04-1</action> <!-- if opponent attacking and not pressing down, block high (on P1 side) -->
<action condition="param == 0xfb and (maincpu.pb@ff8851==A or maincpu.pb@ff8851==C) and ((maincpu.pb@FF8BE1 band 4) != 4) and maincpu.pb@FF860C==0 and maincpu.pb@FFFF04 le 2f">maincpu.pw@FF87E0=0001, maincpu.pb@FFFF04=maincpu.pb@FFFF04-1</action> <!-- if opponent attacking and not pressing down, block high (on P1 side) -->
<action condition="param == 0xfb and (maincpu.pb@ff8851==A or maincpu.pb@ff8851==C) and ((maincpu.pb@FF8BE1 band 4) != 4) and maincpu.pb@FF860C==1 and maincpu.pb@FFFF04 ge 30">maincpu.pb@FFFF04=maincpu.pb@FFFF04-1</action> <!-- if opponent attacking and not pressing down, block high (on P2 side) -->
<action condition="param == 0xfb and (maincpu.pb@ff8851==A or maincpu.pb@ff8851==C) and ((maincpu.pb@FF8BE1 band 4) != 4) and maincpu.pb@FF860C==1 and maincpu.pb@FFFF04 le 2f">maincpu.pw@FF87E0=0002, maincpu.pb@FFFF04=maincpu.pb@FFFF04-1</action> <!-- if opponent attacking and not pressing down, block high (on P2 side) -->
<!-- block ground attacks -->
<action condition="param == 0xfc and maincpu.pb@ff8851==0">maincpu.pw@FF87E0=0000</action> <!-- neutral when opponent is neutral -->
<action condition="param == 0xfc and (maincpu.pb@ff8851==A or maincpu.pb@ff8851==C) and (maincpu.pb@FF8BE1 band 4) == 4 and maincpu.pb@FF860C==0">maincpu.pw@FF87E0=0005</action> <!-- if opponent attacking and pressing down, block low (on P1 side) -->
<action condition="param == 0xfc and (maincpu.pb@ff8851==A or maincpu.pb@ff8851==C) and (maincpu.pb@FF8BE1 band 4) == 4 and maincpu.pb@FF860C==1">maincpu.pw@FF87E0=0006</action> <!-- if opponent attacking and pressing down, block low (on P2 side) -->
<action condition="param == 0xfc and (maincpu.pb@ff8851==A or maincpu.pb@ff8851==C) and (maincpu.pb@FF8BE1 band 4) != 4 and maincpu.pb@FF860C==0">maincpu.pw@FF87E0=0001</action> <!-- if opponent attacking and not pressing down, block high (on P1 side) -->
<action condition="param == 0xfc and (maincpu.pb@ff8851==A or maincpu.pb@ff8851==C) and (maincpu.pb@FF8BE1 band 4) != 4 and maincpu.pb@FF860C==1">maincpu.pw@FF87E0=0002</action> <!-- if opponent attacking and not pressing down, block high (on P2 side) -->
<!-- block everything: -->
<action condition="param == 0xfd and maincpu.pb@ff8851==0">maincpu.pw@FF87E0=0000</action> <!-- neutral when opponent is neutral -->
<action condition="param == 0xfd and (maincpu.pb@ff8851==A or maincpu.pb@ff8851==C) and (maincpu.pb@FF8BE1 band 4) == 4 and maincpu.pb@FF860C==0">maincpu.pw@FF87E0=0005</action> <!-- if opponent attacking and pressing down, block low (on P1 side) -->
<action condition="param == 0xfd and (maincpu.pb@ff8851==A or maincpu.pb@ff8851==C) and (maincpu.pb@FF8BE1 band 4) == 4 and maincpu.pb@FF860C==1">maincpu.pw@FF87E0=0006</action> <!-- if opponent attacking and pressing down, block low (on P2 side) -->
<action condition="param == 0xfd and (maincpu.pb@ff8851==A or maincpu.pb@ff8851==C) and (maincpu.pb@FF8BE1 band 4) != 4 and maincpu.pb@FF860C==0">maincpu.pw@FF87E0=0001</action> <!-- if opponent attacking and not pressing down, block high (on P1 side) -->
<action condition="param == 0xfd and (maincpu.pb@ff8851==A or maincpu.pb@ff8851==C) and (maincpu.pb@FF8BE1 band 4) != 4 and maincpu.pb@FF860C==1">maincpu.pw@FF87E0=0002</action> <!-- if opponent attacking and not pressing down, block high (on P2 side) -->
<!-- jump attacks (ff8851==4) -->
<action condition="param == 0xfd and maincpu.pb@ff8851==4 and (maincpu.pw@FF8454-maincpu.pw@FF8854 lt F) and maincpu.pb@FF860C==0">maincpu.pw@FF87E0=0001</action> <!-- block high if the opponent is at close range (<0xF) on P1 side -->
<action condition="param == 0xfd and maincpu.pb@ff8851==4 and (maincpu.pw@FF8854-maincpu.pw@FF8454 lt F) and maincpu.pb@FF860C==1">maincpu.pw@FF87E0=0002</action> <!-- block high if the opponent is at close range (<0xF) on P2 side -->
<action condition="param == 0xfd and maincpu.pb@ff8851==4 and (maincpu.pw@FF8454-maincpu.pw@FF8854 > 20) and maincpu.pb@FF860C==0">maincpu.pw@FF87E0=0000</action> <!-- stop blocking if the opponent is farther than 0x20 on P1 side -->
<action condition="param == 0xfd and maincpu.pb@ff8851==4 and (maincpu.pw@FF8854-maincpu.pw@FF8454 > 20) and maincpu.pb@FF860C==1">maincpu.pw@FF87E0=0000</action> <!-- stop blocking if the opponent is farther than 0x20 on P2 side -->
<!-- ... except if: the opponent hits any kick or punch button -->
<action condition="param == 0xfd and maincpu.pb@ff8851==4 and (maincpu.pw@FF8BE0 band ~000F) != 0 and maincpu.pb@FF860C==0">maincpu.pw@FF87E0=0001</action>
<action condition="param == 0xfd and maincpu.pb@ff8851==4 and (maincpu.pw@FF8BE0 band ~000F) != 0 and maincpu.pb@FF860C==1">maincpu.pw@FF87E0=0002</action>
<!-- ... and do not block when the opponent is so far that he can't reach us with a jumping normal attack -->
<action condition="param == 0xfd and maincpu.pb@ff8851==4 and (maincpu.pw@FF8454-maincpu.pw@FF8854 > 70) and maincpu.pb@FF860C==0">maincpu.pw@FF87E0=0000</action>
<action condition="param == 0xfd and maincpu.pb@ff8851==4 and (maincpu.pw@FF8854-maincpu.pw@FF8454 > 70) and maincpu.pb@FF860C==1">maincpu.pw@FF87E0=0000</action>
</script>
<script state="off">
<action>maincpu.pw@FF87E0=0</action>
<action>maincpu.ow@078034=6710</action>
<action>ow@2cd4=3B6D,ow@2cd6=0086,ow@2cd8=07E0</action>
</script>
</cheat>
<cheat desc=" PL1 Super">
<parameter>
<item value="0x30">Infinite</item>
<item value="0x00">Empty</item>
</parameter>
<script state="run">
<action condition="maincpu.rw@FF8008 == A">maincpu.pb@FF8702=param</action>
</script>
</cheat>
<cheat desc=" PL1 Dizzy">
<parameter>
<item value="0x00">Never get dizzied</item>
<item value="0x40">Always get dizzied</item>
</parameter>
<script state="run">
<action>maincpu.pw@FF84AA=param</action> <!--timeout-->
<action>maincpu.pw@FF84AC=param</action> <!--damage-->
</script>
</cheat>
<cheat desc=" PL2 Action">
<parameter>
<item value="0x00">Neutral (Stand)</item>
<item value="0xfd">Block Everything</item>
<item value="0xfc">Block Ground Attacks</item>
<item value="0xfb">Block Auto</item>
<item value="0x08">Up (Jump)</item>
<item value="0x09">Up-Right</item>
<item value="0x0A">Up-Left</item>
<item value="0x04">Down (Crouch)</item>
<item value="0x05">Down-Right</item>
<item value="0x06">Down-Left</item>
<item value="0x01">Right</item>
<item value="0x02">Left</item>
<item value="0xff">Throw-Right (fierce throw)</item>
<item value="0xfe">Throw-Left (fierce throw)</item>
</parameter>
<script state="on">
<action>maincpu.ow@078034=4E71</action>
<action>ow@2cda=4e71,ow@2cdc=4e71,ow@2cde=4e71</action>
<action>maincpu.pb@FFFF05=60</action>
</script>
<script state="run">
<action>maincpu.ow@078034=4E71</action>
<action condition="param == 0xff and frame % 2 == 0">maincpu.pw@FF8BE0=0001</action>
<action condition="param == 0xff and frame % 2 != 0">maincpu.pw@FF8BE0=0041</action>
<action condition="param == 0xfe and frame % 2 == 0">maincpu.pw@FF8BE0=0002</action>
<action condition="param == 0xfe and frame % 2 != 0">maincpu.pw@FF8BE0=0042</action>
<action condition="param lt 0x0f">maincpu.pb@FF8BE1=param</action>
<!-- block auto (do not block all hits): -->
<!-- attacker state (ff8451 or +0x400 for p2): 0 idle, 2 crouching, 4 jumping, 10 doing a ground normal attack or throw, 12 on hitstun (doing an special attack) -->
<!-- attacked state (ff8451 or +0x400 for p2): 6 waking up meaty, 8 blocking, 14 hit (receiving an attack), 20 thrown -->
<action condition="param == 0xfb and maincpu.pb@FFFF05 le 1">maincpu.pb@FFFF05=60</action>
<action condition="param == 0xfb and maincpu.pb@ff8451==0">maincpu.pw@FF8BE0=0000</action> <!-- neutral when opponent is neutral -->
<action condition="param == 0xfb and (maincpu.pb@ff8451==A or maincpu.pb@ff8451==C) and ((maincpu.pb@FF87E1 band 4) == 4) and maincpu.pb@FF8A0C==0 and maincpu.pb@FFFF05 ge 30">maincpu.pb@FFFF05=maincpu.pb@FFFF05-1</action> <!-- if opponent attacking and pressing down, block low (on P1 side) -->
<action condition="param == 0xfb and (maincpu.pb@ff8451==A or maincpu.pb@ff8451==C) and ((maincpu.pb@FF87E1 band 4) == 4) and maincpu.pb@FF8A0C==0 and maincpu.pb@FFFF05 le 2f">maincpu.pw@FF8BE0=0005, maincpu.pb@FFFF05=maincpu.pb@FFFF05-1</action> <!-- if opponent attacking and pressing down, block low (on P1 side) -->
<action condition="param == 0xfb and (maincpu.pb@ff8451==A or maincpu.pb@ff8451==C) and ((maincpu.pb@FF87E1 band 4) == 4) and maincpu.pb@FF8A0C==1 and maincpu.pb@FFFF05 ge 30">maincpu.pb@FFFF05=maincpu.pb@FFFF05-1</action> <!-- if opponent attacking and pressing down, block low (on P2 side) -->
<action condition="param == 0xfb and (maincpu.pb@ff8451==A or maincpu.pb@ff8451==C) and ((maincpu.pb@FF87E1 band 4) == 4) and maincpu.pb@FF8A0C==1 and maincpu.pb@FFFF05 le 2f">maincpu.pw@FF8BE0=0006, maincpu.pb@FFFF05=maincpu.pb@FFFF05-1</action> <!-- if opponent attacking and pressing down, block low (on P2 side) -->
<action condition="param == 0xfb and (maincpu.pb@ff8451==A or maincpu.pb@ff8451==C) and ((maincpu.pb@FF87E1 band 4) != 4) and maincpu.pb@FF8A0C==0 and maincpu.pb@FFFF05 ge 30">maincpu.pb@FFFF05=maincpu.pb@FFFF05-1</action> <!-- if opponent attacking and not pressing down, block high (on P1 side) -->
<action condition="param == 0xfb and (maincpu.pb@ff8451==A or maincpu.pb@ff8451==C) and ((maincpu.pb@FF87E1 band 4) != 4) and maincpu.pb@FF8A0C==0 and maincpu.pb@FFFF05 le 2f">maincpu.pw@FF8BE0=0001, maincpu.pb@FFFF05=maincpu.pb@FFFF05-1</action> <!-- if opponent attacking and not pressing down, block high (on P1 side) -->
<action condition="param == 0xfb and (maincpu.pb@ff8451==A or maincpu.pb@ff8451==C) and ((maincpu.pb@FF87E1 band 4) != 4) and maincpu.pb@FF8A0C==1 and maincpu.pb@FFFF05 ge 30">maincpu.pb@FFFF05=maincpu.pb@FFFF05-1</action> <!-- if opponent attacking and not pressing down, block high (on P2 side) -->
<action condition="param == 0xfb and (maincpu.pb@ff8451==A or maincpu.pb@ff8451==C) and ((maincpu.pb@FF87E1 band 4) != 4) and maincpu.pb@FF8A0C==1 and maincpu.pb@FFFF05 le 2f">maincpu.pw@FF8BE0=0002, maincpu.pb@FFFF05=maincpu.pb@FFFF05-1</action> <!-- if opponent attacking and not pressing down, block high (on P2 side) -->
<!-- block ground attacks -->
<action condition="param == 0xfc and maincpu.pb@ff8451==0">maincpu.pw@FF8BE0=0000</action> <!-- neutral when opponent is neutral -->
<action condition="param == 0xfc and (maincpu.pb@ff8451==A or maincpu.pb@ff8451==C) and (maincpu.pb@FF87E1 band 4) == 4 and maincpu.pb@FF8A0C==0">maincpu.pw@FF8BE0=0005</action> <!-- if opponent attacking and pressing down, block low (on P1 side) -->
<action condition="param == 0xfc and (maincpu.pb@ff8451==A or maincpu.pb@ff8451==C) and (maincpu.pb@FF87E1 band 4) == 4 and maincpu.pb@FF8A0C==1">maincpu.pw@FF8BE0=0006</action> <!-- if opponent attacking and pressing down, block low (on P2 side) -->
<action condition="param == 0xfc and (maincpu.pb@ff8451==A or maincpu.pb@ff8451==C) and (maincpu.pb@FF87E1 band 4) != 4 and maincpu.pb@FF8A0C==0">maincpu.pw@FF8BE0=0001</action> <!-- if opponent attacking and not pressing down, block high (on P1 side) -->
<action condition="param == 0xfc and (maincpu.pb@ff8451==A or maincpu.pb@ff8451==C) and (maincpu.pb@FF87E1 band 4) != 4 and maincpu.pb@FF8A0C==1">maincpu.pw@FF8BE0=0002</action> <!-- if opponent attacking and not pressing down, block high (on P2 side) -->
<!-- block everything: -->
<action condition="param == 0xfd and maincpu.pb@ff8451==0">maincpu.pw@FF8BE0=0000</action> <!-- neutral when opponent is neutral -->
<action condition="param == 0xfd and (maincpu.pb@ff8451==A or maincpu.pb@ff8451==C) and (maincpu.pb@FF87E1 band 4) == 4 and maincpu.pb@FF8A0C==0">maincpu.pw@FF8BE0=0005</action> <!-- if opponent attacking and pressing down, block low (on P1 side) -->
<action condition="param == 0xfd and (maincpu.pb@ff8451==A or maincpu.pb@ff8451==C) and (maincpu.pb@FF87E1 band 4) == 4 and maincpu.pb@FF8A0C==1">maincpu.pw@FF8BE0=0006</action> <!-- if opponent attacking and pressing down, block low (on P2 side) -->
<action condition="param == 0xfd and (maincpu.pb@ff8451==A or maincpu.pb@ff8451==C) and (maincpu.pb@FF87E1 band 4) != 4 and maincpu.pb@FF8A0C==0">maincpu.pw@FF8BE0=0001</action> <!-- if opponent attacking and not pressing down, block high (on P1 side) -->
<action condition="param == 0xfd and (maincpu.pb@ff8451==A or maincpu.pb@ff8451==C) and (maincpu.pb@FF87E1 band 4) != 4 and maincpu.pb@FF8A0C==1">maincpu.pw@FF8BE0=0002</action> <!-- if opponent attacking and not pressing down, block high (on P2 side) -->
<!-- jump attacks (ff8451==4) -->
<action condition="param == 0xfd and maincpu.pb@ff8451==4 and (maincpu.pw@FF8854-maincpu.pw@FF8454 lt F) and maincpu.pb@FF8A0C==0">maincpu.pw@FF8BE0=0001</action> <!-- block high if the opponent is at close range (<0xF) on P1 side -->
<action condition="param == 0xfd and maincpu.pb@ff8451==4 and (maincpu.pw@FF8454-maincpu.pw@FF8854 lt F) and maincpu.pb@FF8A0C==1">maincpu.pw@FF8BE0=0002</action> <!-- block high if the opponent is at close range (<0xF) on P2 side -->
<action condition="param == 0xfd and maincpu.pb@ff8451==4 and (maincpu.pw@FF8854-maincpu.pw@FF8454 > 20) and maincpu.pb@FF8A0C==0">maincpu.pw@FF8BE0=0000</action> <!-- stop blocking if the opponent is farther than 0x20 on P1 side -->
<action condition="param == 0xfd and maincpu.pb@ff8451==4 and (maincpu.pw@FF8454-maincpu.pw@FF8854 > 20) and maincpu.pb@FF8A0C==1">maincpu.pw@FF8BE0=0000</action> <!-- stop blocking if the opponent is farther than 0x20 on P2 side -->
<!-- ... except if: the opponent hits any kick or punch button -->
<action condition="param == 0xfd and maincpu.pb@ff8451==4 and (maincpu.pw@FF87E0 band ~000F) != 0 and maincpu.pb@FF8A0C==0">maincpu.pw@FF8BE0=0001</action>
<action condition="param == 0xfd and maincpu.pb@ff8451==4 and (maincpu.pw@FF87E0 band ~000F) != 0 and maincpu.pb@FF8A0C==1">maincpu.pw@FF8BE0=0002</action>
<!-- ... and do not block when the opponent is so far that he can't reach us with a jumping normal attack -->
<action condition="param == 0xfd and maincpu.pb@ff8451==4 and (maincpu.pw@FF8854-maincpu.pw@FF8454 > 70) and maincpu.pb@FF8A0C==0">maincpu.pw@FF8BE0=0000</action>
<action condition="param == 0xfd and maincpu.pb@ff8451==4 and (maincpu.pw@FF8454-maincpu.pw@FF8854 > 70) and maincpu.pb@FF8A0C==1">maincpu.pw@FF8BE0=0000</action>
</script>
<script state="off">
<action>maincpu.pw@FF8BE0=0</action>
<action>maincpu.ow@078034=6710</action>
<action>ow@2cda=3B6D,ow@2cdc=008A,ow@2cde=0BE0</action>
</script>
</cheat>
<cheat desc=" PL2 Super">
<parameter>
<item value="0x30">Infinite</item>
<item value="0x00">Empty</item>
</parameter>
<script state="run">
<action condition="maincpu.rw@FF8008 == A">maincpu.pb@FF8B02=param</action>
</script>
</cheat>
<cheat desc=" PL2 Dizzy">
<parameter>
<item value="0x00">Never get dizzied</item>
<item value="0x40">Always get dizzied</item>
</parameter>
<script state="run">
<action>maincpu.pw@FF88AA=param</action> <!--timeout-->
<action>maincpu.pw@FF88AC=param</action> <!--damage-->
</script>
</cheat>
<cheat desc=" "/>
<cheat desc="Show combo messages on CPU">
<script state="on">
<action>maincpu.ow@68f58=4E71</action>
</script>
<script state="off">
<action>maincpu.ow@68f58=671A</action>
</script>
</cheat>
<cheat desc="Select Background">
<parameter>
<item value="0x00">Ryu</item>
<item value="0x01">E.Honda</item>
<item value="0x02">Blanka</item>
<item value="0x03">Guile</item>
<item value="0x04">Ken</item>
<item value="0x05">Chun Li</item>
<item value="0x06">Zangief</item>
<item value="0x07">Dhalsim</item>
<item value="0x08">Dictator</item>
<item value="0x09">Sagat</item>
<item value="0x0A">Boxer</item>
<item value="0x0B">Claw</item>
<item value="0x0C">Cammy</item>
<item value="0x0D">T.Hawk</item>
<item value="0x0E">Fei Long</item>
<item value="0x0F">Dee Jay</item>
</parameter>
<script state="run">
<action condition="(maincpu.pw@FF8008 == 4)">maincpu.pb@FF8C4F=param</action>
</script>
</cheat>
<cheat desc="Select Difficulty">
<parameter>
<item value="0x00">1/Easiest</item>
<item value="0x01">2/Very Easy</item>
<item value="0x02">3/Easy</item>
<item value="0x03">4/Medium</item>
<item value="0x04">5/Medium Hard</item>
<item value="0x05">6/Hard</item>
<item value="0x06">7/Very Hard</item>
<item value="0x07">8/Hardest</item>
</parameter>
<script state="on">
<action>temp0=maincpu.rb@FF82D3</action>
</script>
<script state="run">
<action>maincpu.pb@FF82D3=param</action>
</script>
<script state="off">
<action>maincpu.pb@FF82D3=temp0</action>
</script>
</cheat>
<cheat desc="Select Speed">
<parameter>
<item value="0xFF">No frameskip (like SSF2)</item>
<item value="0x80">Turbo 1 (Japan)/Turbo 0 (other)</item>
<item value="0x70">Turbo 2 (Japan)/Turbo 1 (other)</item>
<item value="0x60">Turbo 3 (Japan)/Turbo 2 (other)</item>
<item value="0x50">Turbo 4 (Japan)/Turbo 3 (other)</item>
<item value="0x00">Maximum frameskip (double speed)</item>
</parameter>
<script state="on">
<action>temp0=maincpu.pb@FF83A9</action> <!--operator menu setting-->
</script>
<script state="run">
<action>maincpu.pb@FF8CD3=param</action>
<action condition="param==0x80">maincpu.pb@FF83A9=0</action>
<action condition="param==0x70">maincpu.pb@FF83A9=1</action>
<action condition="param==0x60">maincpu.pb@FF83A9=2</action>
<action condition="param==0x50">maincpu.pb@FF83A9=3</action>
</script>
<script state="off">
<action>temp1=maincpu.pb@FF8CD5</action> <!--free select setting-->
<action>maincpu.pb@FF83A9=temp0</action> <!--operator menu setting-->
<action condition="temp0==0 or (temp0==4 and temp1==0)">maincpu.pb@FF8CD3=0x80</action>
<action condition="temp0==1 or (temp0==4 and temp1==1)">maincpu.pb@FF8CD3=0x70</action>
<action condition="temp0==2 or (temp0==4 and temp1==2)">maincpu.pb@FF8CD3=0x60</action>
<action condition="temp0==3">maincpu.pb@FF8CD3=0x50</action>
</script>
</cheat>
<cheat desc="No Background Music">
<script state="run">
<action>audiocpu.pw@F018=0000</action>
</script>
</cheat>
<cheat desc="Hide Background"> <comment>Activate before match start; set to Claw or Dictator stage for no BG sprites</comment>
<script state="on">
<action>
temp0=maincpu.pb@FF8049 band 0F, temp1=maincpu.pb@FF804F band 0F,
temp2=maincpu.ow@00D7CA, temp3=maincpu.od@00D7CC, temp4=maincpu.od@00D7D0,
temp5=maincpu.ow@00D80E, temp6=maincpu.ow@006A44, temp7=maincpu.ow@0093F8, temp8=maincpu.ow@009526
</action>
</script>
<script state="run">
<action>
maincpu.pb@FF8049=maincpu.pb@FF8049 bor temp0, maincpu.pb@FF804F=maincpu.pb@FF804F bor temp1,
maincpu.ow@00D80E=temp5, maincpu.ow@006A44=temp6, maincpu.ow@0093F8=temp7, maincpu.ow@009526=temp8,
maincpu.ow@00D7CA=4E71, maincpu.od@00D7CC=4E714E71, <!--initial HUD draw-->
maincpu.od@00D7D0=4E714E71 <!--initial timer draw-->
</action>
<action condition="(maincpu.pw@FF8008 > 6 and maincpu.pb@FF8478 == 0 and maincpu.pb@FF8878 == 0)"> <!--activate only before and during match-->
maincpu.ow@00D80E=6016, <!--HUD updates-->
maincpu.ow@006A44=4E75 <!--score updates-->
</action>
<action condition="(maincpu.pw@FF8008 == A and maincpu.pw@FF8DD2 == 0)"> <!--activate only during match-->
maincpu.pb@FF8049=maincpu.pb@FF8049 band F0, maincpu.pb@FF804F=maincpu.pb@FF804F band F0, <!--BG layers-->
maincpu.ow@0093F8=4E71, maincpu.ow@009526=4E71 <!--flashing text-->
</action>
</script>
<script state="off">
<action>
maincpu.pb@FF8049=maincpu.pb@FF8049 bor temp0, maincpu.pb@FF804F=maincpu.pb@FF804F bor temp1,
maincpu.ow@00D7CA=temp2, maincpu.od@00D7CC=temp3, maincpu.od@00D7D0=temp4,
maincpu.ow@00D80E=temp5, maincpu.ow@006A44=temp6, maincpu.ow@0093F8=temp7, maincpu.ow@009526=temp8
</action>
</script>
</cheat>
<cheat desc="Infinite Time">
<script state="run">
<action>maincpu.pw@FF8DCE=9928</action> <!--round time-->
<action>maincpu.pw@FFE1D2=253C</action> <!--char select time-->
<action condition="maincpu.pw@FF84D6 == 0101">
maincpu.pw@FF846C=0258 <!--PL1 speed select time-->
</action>
<action condition="maincpu.pw@FF88D6 == 0101">
maincpu.pw@FF886C=0258 <!--PL2 speed select time-->
</action>
</script>
</cheat>
<cheat desc="Free Play">
<script state="run">
<action>maincpu.pb@FF82DF=0x01,maincpu.pb@FF8342=0x12</action>
</script>
</cheat>
<cheat desc="CPU to Human Player">
<comment>Human controlled CPU</comment>
<script state="on">
<action>maincpu.ow@078034=4E71</action>
</script>
<script state="off">
<action>maincpu.ow@078034=6710</action>
</script>
</cheat>
<cheat desc="Select Stage 1 Oponent">
<parameter>
<item value="0x00">Ryu</item>
<item value="0x01">E.Honda</item>
<item value="0x02">Blanka</item>
<item value="0x03">Guile</item>
<item value="0x04">Ken</item>
<item value="0x05">Chun Li</item>
<item value="0x06">Zangief</item>
<item value="0x07">Dhalsim</item>
<item value="0x08">Dictator</item>
<item value="0x09">Sagat</item>
<item value="0x0A">Boxer</item>
<item value="0x0B">Claw</item>
<item value="0x0C">Cammy</item>
<item value="0x0D">T.Hawk</item>
<item value="0x0E">Fei Long</item>
<item value="0x0F">Dee Jay</item>
</parameter>
<script state="run">
<action>maincpu.pw@FFE18A=param</action>
</script>
</cheat>
<cheat desc="Set current stage"> <comment>To set the first stage, use just after picking character.</comment>
<parameter>
<item value="0x00">Stage 1</item>
<item value="0x01">Stage 2</item>
<item value="0x02">Stage 3</item>
<item value="0x03">Stage 4</item>
<item value="0x04">Stage 5</item>
<item value="0x05">Stage 6</item>
<item value="0x06">Stage 7</item>
<item value="0x07">Stage 8</item>
<item value="0x08">Stage 9 (Boxer)</item>
<item value="0x09">Stage 10 (Claw)</item>
<item value="0x0A">Stage 11 (Sagat)</item>
<item value="0x0B">Stage 12 (Dictator)</item>
</parameter>
<script state="change">
<action>maincpu.pb@FF8C51=param</action>
</script>
</cheat>
<cheat desc="Random Stages"><comment>It is a known bug that'll you'll keep fighting Ryu indefinitely in single player.</comment>
<!-- author: jedpossum
origin: http://forums.shoryuken.com/discussion/comment/8809939/#Comment_8809939 -->
<script state="on">
<action>maincpu.ow@39A6=4EB9, maincpu.od@39A8=000CCC10</action>
<action>maincpu.od@CCC10=302D61D2, maincpu.od@CCC14=0240000F, maincpu.od@CCC18=3B400C4E, maincpu.ow@CCC1C=D040, maincpu.ow@CCC1E=4E75</action>
</script>
<script state="off">
<action>maincpu.ow@39A6=3B71, maincpu.od@39A8=00000C4E</action>
<action>maincpu.od@CCC10=0, maincpu.od@CCC14=0, maincpu.od@CCC18=0, maincpu.ow@CCC1C=0, maincpu.ow@CCC1E=0</action>
</script>
</cheat>
<cheat desc="Select Ending">
<parameter>
<item value="1">No Losses (Akuma/Gouki)</item>
<item value="2">No Continues (Akuma/Gouki)</item>
<item value="3">Normal (Dictator)</item>
</parameter>
<script state="run">
<action condition="param == 1">maincpu.pb@FF831A=00, maincpu.pb@FF8CA1=00</action>
<action condition="param == 2">maincpu.pb@FF831A=00, maincpu.pb@FF8CA1=01</action>
<action condition="param == 3">maincpu.pb@FF831A=01</action>
</script>
</cheat>
<cheat desc="Turbo Mode!"> <comment>Characters move faster</comment>
<script state="run">
<action>maincpu.pb@FF82ED=01</action>
</script>
<script state="off">
<action>maincpu.pb@FF82ED=00</action>
</script>
</cheat>
<cheat desc="Select Region"> <comment>This cheat sets the machine region - the effectiveness may vary! You have to enable this ASAP - ON or before the ROM check screen! Or enable + RESET</comment>
<parameter>
<item value="0x00">Japan</item>
<item value="0x02">USA</item>
<item value="0x04">ETC</item>
<item value="0x08">Asia</item>
<item value="0x0A">Asia TW</item>
</parameter>
<script state="run">
<action>maincpu.pb@FF82CF=param</action>
</script>
</cheat>
<cheat desc="Finish this Round Now!">
<script state="on">
<action>maincpu.pb@FF8DCE=00</action>
</script>
</cheat>
<cheat desc="Disable projectile impact slowdown">
<script state="run">
<action condition="maincpu.rb@FF8478 != FF and maincpu.rb@FF8878 != FF"> <!-- allow KO slowdown -->
maincpu.pb@FF82F2=00
</action>
</script>
</cheat>
<cheat desc="Torunament battle">
<script state="run">
<action condition="(maincpu.pw@FF8008 == 4)">maincpu.pb@FF8349=0xff</action>
</script>
<script state="off">
<action>maincpu.pb@FF8349=0</action>
</script>
</cheat>
<cheat desc=" "/>
<cheat desc="Infinite Energy PL1 mode1">
<script state="run">
<action condition="maincpu.rw@FF8478 lt 60 and (maincpu.rb@FF8451 band 10) == 00">
maincpu.pw@FF8478=90, maincpu.pw@FF860A=90
</action>
</script>
</cheat>
<cheat desc="Infinite Energy PL1 mode2">
<script state="run">
<action>maincpu.pb@FF8479=90</action>
<action>maincpu.pb@FF860B=90</action>
</script>
</cheat>
<cheat desc="Invincibility PL1">
<script state="run">
<action>maincpu.pb@FF860D=01</action>
</script>
<script state="off">
<action>maincpu.pb@FF860D=00</action>
</script>
</cheat>
<cheat desc="Drain All Energy Now! PL1">
<script state="on">
<action>maincpu.pb@FF8479=00</action>
<action>maincpu.pb@FF860B=00</action>
</script>
</cheat>
<cheat desc="Have Sprite Trails PL1">
<script state="run">
<action>maincpu.pb@FF8703=01</action>
</script>
</cheat>
<cheat desc="Set PL1 rounds won">
<parameter min="00" max="02" step="1" />
<script state="change">
<action>maincpu.pb@FF87DE=param</action>
</script>
</cheat>
<cheat desc="Allow special moves during jump PL1">
<script state="run">
<action>maincpu.pb@FF85CF=00</action>
</script>
</cheat>
<cheat desc="All normal moves cancelable PL1">
<script state="run">
<action>maincpu.pb@FF85E3=01</action>
</script>
</cheat>
<cheat desc="Always motion cancel PL1">
<script state="run">
<action>maincpu.pb@FF8467=01</action>
</script>
</cheat>
<cheat desc="Hadouken motion cancel PL1"> <comment>Buggy</comment>
<script state="run">
<action>maincpu.pb@FF846C=01</action>
</script>
</cheat>
<cheat desc="No limit next shot PL1"> <comment>Buggy</comment>
<script state="run">
<action>maincpu.pb@FF8622=00</action>
<action>maincpu.pb@FF8623=00</action>
</script>
</cheat>
<cheat desc="Set Boxer Turnpunch level PL1">
<parameter>
<item value="0001">"One"</item>
<item value="0121">"Two"</item>
<item value="0241">"Three"</item>
<item value="0481">"Four"</item>
<item value="0961">"Five"</item>
<item value="1441">"Six"</item>
<item value="1921">"Seven"</item>
<item value="2401">"Final"</item>
</parameter>
<script state="run">
<action condition="maincpu.pb@(FF844E+391) == 0A AND maincpu.pb@(FF844E+3BD) == 00"> <!--Boxer only-->
maincpu.pw@(FF844E+B6)=param, maincpu.pw@(FF844E+B8)=param <!--both P and K versions-->
</action>
</script>
</cheat>
<cheat desc="Easy charge moves PL1">
<script state="run">
<action>temp0=maincpu.pb@(FF844E+391), temp1=maincpu.pb@(FF844E+3B6)</action> <!--char and mode-->
<action condition="maincpu.pb@(FF844E+3BD) != 0">temp0=10</action> <!--Akuma-->
<action condition="maincpu.pb@FF844E == 0">temp0=FF</action> <!--match inactive-->
<action condition="temp0 == 1 AND temp1 == 1"> <!--old E.Honda-->
maincpu.pb@(FF844E+81)=01 <!--B,F+P-->
</action>
<action condition="temp0 == 1 AND temp1 == 1 AND maincpu.pb@(FF844E+AA) LE 02"> <!--old E.Honda-->
maincpu.pb@(FF844E+AB)=01 <!--D,U+K-->
</action>
<action condition="temp0 == 1 AND temp1 == 0 AND maincpu.pb@(FF844E+88) LE 02"> <!--E.Honda-->
maincpu.pb@(FF844E+89)=01 <!--B,F+P-->
</action>
<action condition="temp0 == 1 AND temp1 == 0 AND maincpu.pb@(FF844E+90) LE 02"> <!--E.Honda-->
maincpu.pb@(FF844E+91)=01 <!--D,U+K-->
</action>
<action condition="temp0 == 1 AND temp1 == 0 AND maincpu.pb@(FF844E+94) LE 02"> <!--E.Honda-->
maincpu.pb@(FF844E+95)=01 <!--B,F,B,F+P-->
</action>
<action condition="temp0 == 2"> <!--Blanka-->
maincpu.pb@(FF844E+81)=01, <!--B,F+P-->
maincpu.pb@(FF844E+B4)=01, <!--D,U+K-->
maincpu.pb@(FF844E+BA)=01, <!--B,F+K-->
maincpu.pb@(FF844E+C2)=01 <!--B,F,B,F+P-->
</action>
<action condition="temp0 == 3"> <!--Guile-->
maincpu.pb@(FF844E+81)=01, <!--B,F+P-->
maincpu.pb@(FF844E+87)=01, <!--D,U+K-->
maincpu.pb@(FF844E+95)=01 <!--D,F,B,U+K-->
</action>
<action condition="temp0 == 5"> <!--Chun Li-->
maincpu.pb@(FF844E+81)=01 <!--B,F+P-->
</action>
<action condition="temp0 == 5 AND maincpu.pb@(FF844E+B0) LE 02"> <!--Chun Li-->
maincpu.pb@(FF844E+B1)=01 <!--B,F,B,F+K-->
</action>
<action condition="temp0 == 5 AND maincpu.pb@(FF844E+BA) LE 02"> <!--Chun Li-->
maincpu.pb@(FF844E+BB)=01 <!--D,U+K-->
</action>
<action condition="temp0 == 5 AND maincpu.pb@(FF844E+BF) LE 02"> <!--Chun Li-->
maincpu.pb@(FF844E+C0)=01 <!--B,F+K-->
</action>
<action condition="temp0 == 8"> <!--Dictator-->
maincpu.pb@(FF844E+81)=01, <!--B,F+P-->
maincpu.pb@(FF844E+89)=01, <!--B,F+K-->
maincpu.pb@(FF844E+92)=01, <!--D,U+K-->
maincpu.pb@(FF844E+C6)=01 <!--B,F,B,F+K-->
</action>
<action condition="temp0 == 8 AND maincpu.pb@(FF844E+AC) LE 02"> <!--Dictator-->
maincpu.pb@(FF844E+AD)=01 <!--D,U+P-->
</action>
<action condition="temp0 == A"> <!--Boxer-->
maincpu.pb@(FF844E+81)=01, <!--B,F+P-->
maincpu.pb@(FF844E+89)=01, <!--B,F+K-->
maincpu.pb@(FF844E+C1)=01, <!--D,U+P-->
maincpu.pb@(FF844E+D7)=01, <!--B,DF+P-->
maincpu.pb@(FF844E+DE)=01, <!--B,DF+K-->
maincpu.pw@(FF844E+B2)=0101 <!--TAP-->
</action>
<action condition="temp0 == A AND temp1 == 0 AND maincpu.pb@(FF844E+D4) LE 02"> <!--Boxer-->
maincpu.pb@(FF844E+D5)=01 <!--B,F,B,F+P-->
</action>
<action condition="temp0 == B AND maincpu.pb@(FF844E+88) LE 02"> <!--Claw-->
maincpu.pb@(FF844E+89)=01 <!--B,F+P-->
</action>
<action condition="temp0 == B AND maincpu.pb@(FF844E+8C) LE 02"> <!--Claw-->
maincpu.pb@(FF844E+8D)=01 <!--D,U+K-->
</action>
<action condition="temp0 == B AND maincpu.pb@(FF844E+90) LE 02"> <!--Claw-->
maincpu.pb@(FF844E+91)=01 <!--D,U+P-->
</action>
<action condition="temp0 == B AND temp1 == 0 AND maincpu.pb@(FF844E+99) LE 02"> <!--Claw-->
maincpu.pb@(FF844E+9A)=01 <!--D,F,B,U+K-->
</action>
<action condition="temp0 == B AND temp1 == 0 AND maincpu.pb@(FF844E+9D) LE 02"> <!--Claw-->
maincpu.pb@(FF844E+9E)=01 <!--DB,F+K-->
</action>
<action condition="temp0 == F AND maincpu.pb@(FF844E+92) LE 02"> <!--Dee Jay-->
maincpu.pb@(FF844E+93)=01 <!--B,F+K-->
</action>
<action condition="temp0 == F AND maincpu.pb@(FF844E+96) LE 02"> <!--Dee Jay-->
maincpu.pb@(FF844E+97)=01 <!--D,U+P-->
</action>
<action condition="temp0 == F AND maincpu.pb@(FF844E+A6) LE 02"> <!--Dee Jay-->
maincpu.pb@(FF844E+A7)=01 <!--B,F+P-->
</action>
<action condition="temp0 == F AND temp1 == 0 AND maincpu.pb@(FF844E+AB) LE 02"> <!--Dee Jay-->
maincpu.pb@(FF844E+AC)=01 <!--D,U+K-->
</action>
<action condition="temp0 == F AND temp1 == 0 AND maincpu.pb@(FF844E+AF) LE 02"> <!--Dee Jay-->
maincpu.pb@(FF844E+B0)=01 <!--B,F,B,F+K-->
</action>
</script>
</cheat>
<cheat desc="Easy button tap moves PL1">
<script state="run">
<action>temp0=maincpu.pb@(FF844E+391), temp1=maincpu.pb@(FF844E+3B6)</action> <!--char and mode-->
<action condition="maincpu.pb@(FF844E+3BD) != 0">temp0=10</action> <!--Akuma-->
<action condition="maincpu.pb@FF844E == 0">temp0=FF</action> <!--match inactive-->
<action condition="temp0 == 1 AND temp1 == 0 AND maincpu.pb@(FF844E+C6) LT 2"> <!--E.Honda mash LP-->
maincpu.pb@(FF844E+C6)=2
</action>
<action condition="temp0 == 1 AND temp1 == 0 AND maincpu.pb@(FF844E+C8) LT 2"> <!--E.Honda mash MP-->
maincpu.pb@(FF844E+C8)=2
</action>
<action condition="temp0 == 1 AND temp1 == 0 AND maincpu.pb@(FF844E+CA) LT 2"> <!--E.Honda mash HP-->
maincpu.pb@(FF844E+CA)=2
</action>
<action condition="temp0 == 1 AND temp1 == 1 AND maincpu.pb@(FF844E+9A) LT 3"> <!--old E.Honda mash LP-->
maincpu.pb@(FF844E+9A)=2
</action>
<action condition="temp0 == 1 AND temp1 == 1 AND maincpu.pb@(FF844E+9C) LT 3"> <!--old E.Honda mash MP-->
maincpu.pb@(FF844E+9C)=2
</action>
<action condition="temp0 == 1 AND temp1 == 1 AND maincpu.pb@(FF844E+9E) LT 3"> <!--old E.Honda mash HP-->
maincpu.pb@(FF844E+9E)=2
</action>
<action condition="(temp0 == 2 OR temp0 == 5) AND maincpu.pb@(FF844E+9A) LT 3"> <!--Blanka LP/Chun Li LK-->
maincpu.pb@(FF844E+9A)=3
</action>
<action condition="(temp0 == 2 OR temp0 == 5) AND maincpu.pb@(FF844E+9C) LT 3"> <!--Blanka MP/Chun Li MK-->
maincpu.pb@(FF844E+9C)=3
</action>
<action condition="(temp0 == 2 OR temp0 == 5) AND maincpu.pb@(FF844E+9E) LT 3"> <!--Blanka HP/Chun Li HK-->
maincpu.pb@(FF844E+9E)=3
</action>
</script>
</cheat>
<cheat desc="Easy QCF + QCB moves PL1">
<script state="run">
<action>temp0=maincpu.pb@(FF844E+391), temp1=maincpu.pb@(FF844E+3B6)</action> <!--char and mode-->
<action condition="maincpu.pb@(FF844E+3BD) != 0">temp0=10</action> <!--Akuma-->
<action condition="maincpu.pb@FF844E == 0">temp0=FF</action> <!--match inactive-->
<action condition="(temp0 == 0 OR temp0 == 4 OR temp0 == 10)"> <!--Ryu/Ken/Akuma-->
maincpu.pb@(FF844E+90)=04, <!--D,DB,B+K-->
maincpu.pb@(FF844E+94)=04 <!--D,DF,F+P-->
</action>
<action condition="temp0 == 4 AND temp1 == 0"> <!--Ken D,DF,F+K-->
maincpu.pb@(FF844E+E6)=04
</action>
<action condition="temp0 == 7"> <!--Dhalsim D,DF,F+P-->
maincpu.pb@(FF844E+80)=04
</action>
<action condition="temp0 == 9"> <!--Sagat-->
maincpu.pb@(FF844E+88)=04, <!--D,DF,F+P-->
maincpu.pb@(FF844E+8C)=04 <!--D,DF,F+K-->
</action>
<action condition="temp0 == C"> <!--Cammy D,DF,F+K-->
maincpu.pb@(FF844E+96)=04
</action>
<action condition="temp0 == E"> <!--Fei Long D,DF,F+P-->
maincpu.pb@(FF844E+90)=04,
maincpu.pb@(FF844E+A0)=04
</action>
</script>
</cheat>
<cheat desc="Easy F,D,DF + B,D,DB moves PL1">
<script state="run">
<action>temp0=maincpu.pb@(FF844E+391)</action> <!--character-->
<action condition="maincpu.pb@(FF844E+3BD) != 0">temp0=10</action> <!--Akuma-->
<action condition="maincpu.pb@FF844E == 0">temp0=FF</action> <!--match inactive-->
<action condition="(temp0 == 0 OR temp0 == 4 OR temp0 == 10)"> <!--Ryu/Ken/Akuma F,D,DF+P-->
maincpu.pb@(FF844E+98)=04
</action>
<action condition="temp0 == 9"> <!--Sagat F,D,DF+P-->
maincpu.pb@(FF844E+80)=04
</action>
<action condition="temp0 == C"> <!--Cammy F,D,DF+K-->
maincpu.pb@(FF844E+92)=04
</action>
<action condition="temp0 == D"> <!--T.Hawk F,D,DF+P-->
maincpu.pb@(FF844E+8D)=04
</action>
<action condition="temp0 == E"> <!--Fei Long B,D,DB+K-->
maincpu.pb@(FF844E+94)=04
</action>
<action condition="temp0 == 7 AND (maincpu.pw@(FF844E+392) BAND 2) GT 0"> <!--Dhalsim L,D,DL+PPP/KKK-->
maincpu.pw@(FF844E+88)=0608, maincpu.pb@(FF844E+8D)=05 <!--L+PPP/KKK-->
</action>
<action condition="temp0 == 7 AND (maincpu.pw@(FF844E+392) BAND 1) GT 0"> <!--Dhalsim R,D,DR+PPP/KKK-->
maincpu.pw@(FF844E+88)=0608, maincpu.pb@(FF844E+8D)=06 <!--R+PPP/KKK-->
</action>
<action condition="temp0 == 10 AND (maincpu.pw@(FF844E+392) BAND 2) GT 0"> <!--Akuma L,D,DL+PPP/KKK-->
maincpu.pw@(FF844E+9E)=0608, maincpu.pb@(FF844E+A5)=05 <!--L+PPP/KKK-->
</action>
<action condition="temp0 == 10 AND (maincpu.pw@(FF844E+392) BAND 1) GT 0"> <!--Akuma R,D,DR+PPP/KKK-->
maincpu.pw@(FF844E+9E)=0608, maincpu.pb@(FF844E+A5)=06 <!--L+PPP/KKK-->
</action>
</script>
</cheat>
<cheat desc="Easy 360 + half-circle moves PL1">
<script state="run">
<action>temp0=maincpu.pb@(FF844E+391), temp1=maincpu.pb@(FF844E+3B6)</action> <!--char and mode-->
<action condition="maincpu.pb@(FF844E+3BD) != 0">temp0=10</action> <!--Akuma-->
<action condition="maincpu.pb@FF844E == 0">temp0=FF</action> <!--match inactive-->
<action condition="(temp0 == 0 OR temp0 == 10)"> <!--Ryu/Akuma B,DB,D,DF,F+P-->
maincpu.pb@(FF844E+E0)=08
</action>
<action condition="temp0 == 1 AND temp1 == 0"> <!--E.Honda F,DF,D,B+P-->
maincpu.pb@(FF844E+96)=06
</action>
<action condition="temp0 == 4 AND temp1 == 0"> <!--Ken B,DB,D,DF,F+K-->
maincpu.pb@(FF844E+EA)=08
</action>
<action condition="temp0 == 7"> <!--Dhalsim-->
maincpu.pb@(FF844E+84)=08, <!--B,DB,D,DF,F+P-->
maincpu.pb@(FF844E+9A)=08 <!--B,DB,D,DF,F+K-->
</action>
<action condition="temp0 == C"> <!--Cammy B,DB,F+P-->
maincpu.pb@(FF844E+A2)=04
</action>
<action condition="temp0 == 6 AND maincpu.pb@(FF844E+12) != 0"> <!--Zangief 360+P/K-->
maincpu.pd@(FF844E+80)=06060800, <!--L+P from the left-->
maincpu.pd@(FF844E+9B)=06040800 <!--L+K from the left-->
</action>
<action condition="temp0 == 6 AND maincpu.pb@(FF844E+12) == 0"> <!--Zangief 360+P/K-->
maincpu.pd@(FF844E+80)=06070800, <!--R+P from the right-->
maincpu.pd@(FF844E+9B)=06050800 <!--R+K from the right-->
</action>
<action condition="temp0 == D AND maincpu.pb@(FF844E+12) != 0"> <!--T.Hawk 360+P-->
maincpu.pd@(FF844E+91)=04060800 <!--L+P from the left-->
</action>
<action condition="temp0 == D AND maincpu.pb@(FF844E+12) == 0"> <!--T.Hawk 360+P-->
maincpu.pd@(FF844E+91)=05060800 <!--R+P from the right-->
</action>
</script>
</cheat>
<cheat desc="Easy F,DF,D + tiger-knee moves PL1">
<script state="run">
<action>temp0=maincpu.pb@(FF844E+391), temp1=maincpu.pb@(FF844E+3B6)</action> <!--char and mode-->
<action condition="maincpu.pb@(FF844E+3BD) != 0">temp0=10</action> <!--Akuma-->
<action condition="maincpu.pb@FF844E == 0">temp0=FF</action> <!--match inactive-->
<action condition="temp0 == 4 AND temp1 == 0"> <!--Ken F,DF,D+K-->
maincpu.pb@(FF844E+E8)=04
</action>
<action condition="temp0 == 6"> <!--Zangief F,DF,D+P-->
maincpu.pb@(FF844E+B3)=04
</action>
<action condition="temp0 == 9"> <!--Sagat D,F,UF+K-->
maincpu.pb@(FF844E+84)=04
</action>
<action condition="temp0 == C AND temp1 == 0"> <!--Cammy B,D,DF,UF+P-->
maincpu.pb@(FF844E+A9)=06
</action>
<action condition="temp0 == E AND temp1 == 0"> <!--Fei Long B,D,DF,UF+K-->
maincpu.pb@(FF844E+B4)=06
</action>
</script>
</cheat>
<cheat desc="Easy super moves PL1">
<script state="run">
<action>temp0=maincpu.pb@(FF844E+391)</action> <!--character-->
<action condition="maincpu.pb@FF844E == 0 OR maincpu.pb@(FF844E+3BD) != 0 OR maincpu.pb@(FF844E+3B6) != 0">
temp0=FF <!--match inactive, Akuma, or old mode-->
</action>
<action condition="temp0 == 0"> <!--Ryu D,DF,F,D,DF,F+P-->
maincpu.pb@(FF844E+A0)=0A
</action>
<action condition="temp0 == 1"> <!--E.Honda _B,F,B,F+P-->
maincpu.pb@(FF844E+94)=0A
</action>
<action condition="temp0 == 2"> <!--Blanka _B,F,B,F+P-->
maincpu.pb@(FF844E+C1)=0A
</action>
<action condition="temp0 == 3"> <!--Guile _D,R,B,U+K-->
maincpu.pb@(FF844E+94)=0A
</action>
<action condition="temp0 == 4"> <!--Ken D,DF,F,D,DF+P-->
maincpu.pb@(FF844E+A0)=08
</action>
<action condition="temp0 == 5"> <!--Chun Li _B,F,B,F+K-->
maincpu.pb@(FF844E+BF)=0A
</action>
<action condition="temp0 == 6 AND maincpu.pb@(FF844E+12) != 0"> <!--Zangief 720+P-->
maincpu.pw@(FF844E+AC)=0E06 <!--L+P from the left-->
</action>
<action condition="temp0 == 6 AND maincpu.pb@(FF844E+12) == 0"> <!--Zangief 720+P-->
maincpu.pw@(FF844E+AC)=0E07 <!--R+P from the right-->
</action>
<action condition="temp0 == 7"> <!--Dhalsim B,DB,D,DF,F,B,DB,D,DF,F+P-->
maincpu.pb@(FF844E+96)=10
</action>
<action condition="temp0 == 8"> <!--Dictator _B,F,B,F+K-->
maincpu.pb@(FF844E+C5)=0A
</action>
<action condition="temp0 == 9"> <!--Sagat D,DF,F,D,DF+P/K-->
maincpu.pb@(FF844E+9E)=08
</action>
<action condition="temp0 == A"> <!--Boxer _B,F,B,F+P-->
maincpu.pb@(FF844E+D4)=0A
</action>
<action condition="temp0 == B"> <!--Claw _D,R,B,U+K-->
maincpu.pb@(FF844E+99)=0A
</action>
<action condition="temp0 == C"> <!--Cammy D,DF,F,D,DF+K-->
maincpu.pb@(FF844E+A6)=08
</action>
<action condition="temp0 == D AND maincpu.pb@(FF844E+12) != 0"> <!--T.Hawk 720+P-->
maincpu.pw@(FF844E+9E)=0E06 <!--L+P from the left-->
</action>
<action condition="temp0 == D AND maincpu.pb@(FF844E+12) == 0"> <!--T.Hawk 720+P-->
maincpu.pw@(FF844E+9E)=0E07 <!--R+P from the right-->
</action>
<action condition="temp0 == E"> <!--Fei Long D,DF,F,D,DF,F+P-->
maincpu.pb@(FF844E+B0)=0A
</action>
<action condition="temp0 == F"> <!--Dee Jay _B,F,B,F+K-->
maincpu.pb@(FF844E+AF)=0A
</action>
</script>
</cheat>
<cheat desc="Controller PL1">
<comment>Crashes if the game started as Human and you switch it to CPU</comment>
<parameter>
<item value="0x00">CPU</item>
<item value="0x01">Human</item>
</parameter>
<script state="run">
<action>maincpu.pb@FF87DC=param</action>
</script>
</cheat>
<cheat desc="Select Character PL1"> <comment>Use on the character select screen.</comment>
<parameter>
<item value="0x00">Ryu</item>
<item value="0x01">E.Honda</item>
<item value="0x02">Blanka</item>
<item value="0x03">Guile</item>
<item value="0x04">Ken</item>
<item value="0x05">Chun Li</item>
<item value="0x06">Zangief</item>
<item value="0x07">Dhalsim</item>
<item value="0x08">Dictator</item>
<item value="0x09">Sagat</item>
<item value="0x0A">Boxer</item>
<item value="0x0B">Claw</item>
<item value="0x0C">Cammy</item>
<item value="0x0D">T.Hawk</item>
<item value="0x0E">Fei Long</item>
<item value="0x0F">Dee Jay</item>
<item value="0x10">O.Ryu</item>
<item value="0x11">O.Honda</item>
<item value="0x12">O.Blanka</item>
<item value="0x13">O.Guile</item>
<item value="0x14">O.Ken</item>
<item value="0x15">O.Chun Li</item>
<item value="0x16">O.Zangief</item>
<item value="0x17">O.Dhalsim</item>
<item value="0x18">O.Dictator</item>
<item value="0x19">O.Sagat</item>
<item value="0x1A">O.Boxer</item>
<item value="0x1B">O.Claw</item>
<item value="0x1C">O.Cammy</item>
<item value="0x1D">O.Hawk</item>
<item value="0x1E">O.Fei Long</item>
<item value="0x1F">O.Dee Jay</item>
<item value="0x20">Akuma/Gouki</item>
</parameter>
<script state="run">
<action condition="param == 0F">maincpu.pb@FF87FF=0</action>
<action condition="param le 0F">
maincpu.pb@FF87DF=param, maincpu.pb@FF880B=0, maincpu.pb@FF8804=0
</action>
<action condition="param gt 0F and param le 1f">
temp1=param-0x10,
maincpu.pb@FF87DF=temp1, maincpu.pb@FF880B=0, maincpu.pb@FF87FF=8, maincpu.pb@FF8702=0, maincpu.pb@FF8804=1
</action>
<action condition="param == 20">
maincpu.pb@FF880B=01, <!--actual selection-->
maincpu.pb@FF87FF=0A <!--portrait-->
</action>
</script>
</cheat>
<cheat desc="Select Colour PL1">
<parameter>
<item value="0x00">LP button</item>
<item value="0x01">MP button</item>
<item value="0x02">HP button</item>
<item value="0x03">LK button</item>
<item value="0x04">MK button</item>
<item value="0x05">HK button</item>
<item value="0x06">Start button</item>
<item value="0x07">Hold any P/K button</item>
<item value="0x08">SSF2 primary</item>
<item value="0x09">SSF2 alternate</item>
</parameter>
<script state="run">
<action condition="maincpu.pb@FF880B == 00">maincpu.pb@FF87FF=param</action> <!--does not apply to Akuma-->
</script>
</cheat>
<cheat desc=" "/>
<cheat desc="Infinite Energy PL2 mode1">
<script state="run">
<action condition="maincpu.rw@FF8878 lt 60 and (maincpu.rb@FF8851 band 10) == 00">
maincpu.pw@FF8878=90, maincpu.pw@FF8A0A=90
</action>
</script>
</cheat>
<cheat desc="Infinite Energy PL2 mode2">
<script state="run">
<action>maincpu.pb@FF8879=90</action>
<action>maincpu.pb@FF8A0B=90</action>
</script>
</cheat>
<cheat desc="Invincibility PL2">
<script state="run">
<action>maincpu.pb@FF8A0D=01</action>
</script>
<script state="off">
<action>maincpu.pb@FF8A0D=00</action>
</script>
</cheat>
<cheat desc="Drain All Energy Now! PL2">
<script state="on">
<action>maincpu.pb@FF8879=00</action>
<action>maincpu.pb@FF8A0B=00</action>
</script>
</cheat>
<cheat desc="Have Sprite Trails PL2">
<script state="run">
<action>maincpu.pb@FF8B03=01</action>
</script>
</cheat>
<cheat desc="Set PL2 rounds won">
<parameter min="00" max="02" step="1" />
<script state="change">
<action>maincpu.pb@FF8BDE=param</action>
</script>
</cheat>
<cheat desc="Allow special moves during jump PL2">
<script state="run">
<action>maincpu.pb@FF89CF=00</action>
</script>
</cheat>
<cheat desc="All normal moves cancelable PL2">
<script state="run">
<action>maincpu.pb@FF89E3=01</action>
</script>
</cheat>
<cheat desc="Always motion cancel PL2">
<script state="run">
<action>maincpu.pb@FF8867=01</action>
</script>
</cheat>
<cheat desc="Hadouken motion cancel PL2"> <comment>Buggy</comment>
<script state="run">
<action>maincpu.pb@FF886C=01</action>
</script>
</cheat>
<cheat desc="No limit next shot PL2"> <comment>Buggy</comment>
<script state="run">
<action>maincpu.pb@FF8A22=00</action>
<action>maincpu.pb@FF8A23=00</action>
</script>
</cheat>
<cheat desc="Set Boxer Turnpunch level PL2">
<parameter>
<item value="0001">"One"</item>
<item value="0121">"Two"</item>
<item value="0241">"Three"</item>
<item value="0481">"Four"</item>
<item value="0961">"Five"</item>
<item value="1441">"Six"</item>
<item value="1921">"Seven"</item>
<item value="2401">"Final"</item>
</parameter>
<script state="run">
<action condition="maincpu.pb@(FF884E+391) == 0A AND maincpu.pb@(FF884E+3BD) == 00"> <!--Boxer only-->
maincpu.pw@(FF884E+B6)=param, maincpu.pw@(FF884E+B8)=param <!--both P and K versions-->
</action>
</script>
</cheat>
<cheat desc="Easy charge moves PL2">
<script state="run">
<action>temp0=maincpu.pb@(FF884E+391), temp1=maincpu.pb@(FF884E+3B6)</action> <!--char and mode-->
<action condition="maincpu.pb@(FF884E+3BD) != 0">temp0=10</action> <!--Akuma-->
<action condition="maincpu.pb@FF884E == 0">temp0=FF</action> <!--match inactive-->
<action condition="temp0 == 1 AND temp1 == 1"> <!--old E.Honda-->
maincpu.pb@(FF884E+81)=01 <!--B,F+P-->
</action>
<action condition="temp0 == 1 AND temp1 == 1 AND maincpu.pb@(FF884E+AA) LE 02"> <!--old E.Honda-->
maincpu.pb@(FF884E+AB)=01 <!--D,U+K-->
</action>
<action condition="temp0 == 1 AND temp1 == 0 AND maincpu.pb@(FF884E+88) LE 02"> <!--E.Honda-->
maincpu.pb@(FF884E+89)=01 <!--B,F+P-->
</action>
<action condition="temp0 == 1 AND temp1 == 0 AND maincpu.pb@(FF884E+90) LE 02"> <!--E.Honda-->
maincpu.pb@(FF884E+91)=01 <!--D,U+K-->
</action>
<action condition="temp0 == 1 AND temp1 == 0 AND maincpu.pb@(FF884E+94) LE 02"> <!--E.Honda-->
maincpu.pb@(FF884E+95)=01 <!--B,F,B,F+P-->
</action>
<action condition="temp0 == 2"> <!--Blanka-->
maincpu.pb@(FF884E+81)=01, <!--B,F+P-->
maincpu.pb@(FF884E+B4)=01, <!--D,U+K-->
maincpu.pb@(FF884E+BA)=01, <!--B,F+K-->
maincpu.pb@(FF884E+C2)=01 <!--B,F,B,F+P-->
</action>
<action condition="temp0 == 3"> <!--Guile-->
maincpu.pb@(FF884E+81)=01, <!--B,F+P-->
maincpu.pb@(FF884E+87)=01, <!--D,U+K-->
maincpu.pb@(FF884E+95)=01 <!--D,F,B,U+K-->
</action>
<action condition="temp0 == 5"> <!--Chun Li-->
maincpu.pb@(FF884E+81)=01 <!--B,F+P-->
</action>
<action condition="temp0 == 5 AND maincpu.pb@(FF884E+B0) LE 02"> <!--Chun Li-->
maincpu.pb@(FF884E+B1)=01 <!--B,F,B,F+K-->
</action>
<action condition="temp0 == 5 AND maincpu.pb@(FF884E+BA) LE 02"> <!--Chun Li-->
maincpu.pb@(FF884E+BB)=01 <!--D,U+K-->
</action>
<action condition="temp0 == 5 AND maincpu.pb@(FF884E+BF) LE 02"> <!--Chun Li-->
maincpu.pb@(FF884E+C0)=01 <!--B,F+K-->
</action>
<action condition="temp0 == 8"> <!--Dictator-->
maincpu.pb@(FF884E+81)=01, <!--B,F+P-->
maincpu.pb@(FF884E+89)=01, <!--B,F+K-->
maincpu.pb@(FF884E+92)=01, <!--D,U+K-->
maincpu.pb@(FF884E+C6)=01 <!--B,F,B,F+K-->
</action>
<action condition="temp0 == 8 AND maincpu.pb@(FF884E+AC) LE 02"> <!--Dictator-->
maincpu.pb@(FF884E+AD)=01 <!--D,U+P-->
</action>
<action condition="temp0 == A"> <!--Boxer-->
maincpu.pb@(FF884E+81)=01, <!--B,F+P-->
maincpu.pb@(FF884E+89)=01, <!--B,F+K-->
maincpu.pb@(FF884E+C1)=01, <!--D,U+P-->
maincpu.pb@(FF884E+D7)=01, <!--B,DF+P-->
maincpu.pb@(FF884E+DE)=01, <!--B,DF+K-->
maincpu.pw@(FF884E+B2)=0101 <!--TAP-->
</action>
<action condition="temp0 == A AND temp1 == 0 AND maincpu.pb@(FF884E+D4) LE 02"> <!--Boxer-->
maincpu.pb@(FF884E+D5)=01 <!--B,F,B,F+P-->
</action>
<action condition="temp0 == B AND maincpu.pb@(FF884E+88) LE 02"> <!--Claw-->
maincpu.pb@(FF884E+89)=01 <!--B,F+P-->
</action>
<action condition="temp0 == B AND maincpu.pb@(FF884E+8C) LE 02"> <!--Claw-->
maincpu.pb@(FF884E+8D)=01 <!--D,U+K-->
</action>
<action condition="temp0 == B AND maincpu.pb@(FF884E+90) LE 02"> <!--Claw-->
maincpu.pb@(FF884E+91)=01 <!--D,U+P-->
</action>
<action condition="temp0 == B AND temp1 == 0 AND maincpu.pb@(FF884E+99) LE 02"> <!--Claw-->
maincpu.pb@(FF884E+9A)=01 <!--D,F,B,U+K-->
</action>
<action condition="temp0 == B AND temp1 == 0 AND maincpu.pb@(FF884E+9D) LE 02"> <!--Claw-->
maincpu.pb@(FF884E+9E)=01 <!--DB,F+K-->
</action>
<action condition="temp0 == F AND maincpu.pb@(FF884E+92) LE 02"> <!--Dee Jay-->
maincpu.pb@(FF884E+93)=01 <!--B,F+K-->
</action>
<action condition="temp0 == F AND maincpu.pb@(FF884E+96) LE 02"> <!--Dee Jay-->
maincpu.pb@(FF884E+97)=01 <!--D,U+P-->
</action>
<action condition="temp0 == F AND maincpu.pb@(FF884E+A6) LE 02"> <!--Dee Jay-->
maincpu.pb@(FF884E+A7)=01 <!--B,F+P-->
</action>
<action condition="temp0 == F AND temp1 == 0 AND maincpu.pb@(FF884E+AB) LE 02"> <!--Dee Jay-->
maincpu.pb@(FF884E+AC)=01 <!--D,U+K-->
</action>
<action condition="temp0 == F AND temp1 == 0 AND maincpu.pb@(FF884E+AF) LE 02"> <!--Dee Jay-->
maincpu.pb@(FF884E+B0)=01 <!--B,F,B,F+K-->
</action>
</script>
</cheat>
<cheat desc="Easy button tap moves PL2">
<script state="run">
<action>temp0=maincpu.pb@(FF884E+391), temp1=maincpu.pb@(FF884E+3B6)</action> <!--char and mode-->
<action condition="maincpu.pb@(FF884E+3BD) != 0">temp0=10</action> <!--Akuma-->
<action condition="maincpu.pb@FF884E == 0">temp0=FF</action> <!--match inactive-->
<action condition="temp0 == 1 AND temp1 == 0 AND maincpu.pb@(FF884E+C6) LT 2"> <!--E.Honda mash LP-->
maincpu.pb@(FF884E+C6)=2
</action>
<action condition="temp0 == 1 AND temp1 == 0 AND maincpu.pb@(FF884E+C8) LT 2"> <!--E.Honda mash MP-->
maincpu.pb@(FF884E+C8)=2
</action>
<action condition="temp0 == 1 AND temp1 == 0 AND maincpu.pb@(FF884E+CA) LT 2"> <!--E.Honda mash HP-->
maincpu.pb@(FF884E+CA)=2
</action>
<action condition="temp0 == 1 AND temp1 == 1 AND maincpu.pb@(FF884E+9A) LT 3"> <!--old E.Honda mash LP-->
maincpu.pb@(FF884E+9A)=2
</action>
<action condition="temp0 == 1 AND temp1 == 1 AND maincpu.pb@(FF884E+9C) LT 3"> <!--old E.Honda mash MP-->
maincpu.pb@(FF884E+9C)=2
</action>
<action condition="temp0 == 1 AND temp1 == 1 AND maincpu.pb@(FF884E+9E) LT 3"> <!--old E.Honda mash HP-->
maincpu.pb@(FF884E+9E)=2
</action>
<action condition="(temp0 == 2 OR temp0 == 5) AND maincpu.pb@(FF884E+9A) LT 3"> <!--Blanka LP/Chun Li LK-->
maincpu.pb@(FF884E+9A)=3
</action>
<action condition="(temp0 == 2 OR temp0 == 5) AND maincpu.pb@(FF884E+9C) LT 3"> <!--Blanka MP/Chun Li MK-->
maincpu.pb@(FF884E+9C)=3
</action>
<action condition="(temp0 == 2 OR temp0 == 5) AND maincpu.pb@(FF884E+9E) LT 3"> <!--Blanka HP/Chun Li HK-->
maincpu.pb@(FF884E+9E)=3
</action>
</script>
</cheat>
<cheat desc="Easy QCF + QCB moves PL2">
<script state="run">
<action>temp0=maincpu.pb@(FF884E+391), temp1=maincpu.pb@(FF884E+3B6)</action> <!--char and mode-->
<action condition="maincpu.pb@(FF884E+3BD) != 0">temp0=10</action> <!--Akuma-->
<action condition="maincpu.pb@FF884E == 0">temp0=FF</action> <!--match inactive-->
<action condition="(temp0 == 0 OR temp0 == 4 OR temp0 == 10)"> <!--Ryu/Ken/Akuma-->
maincpu.pb@(FF884E+90)=04, <!--D,DB,B+K-->
maincpu.pb@(FF884E+94)=04 <!--D,DF,F+P-->
</action>
<action condition="temp0 == 4 AND temp1 == 0"> <!--Ken D,DF,F+K-->
maincpu.pb@(FF884E+E6)=04
</action>
<action condition="temp0 == 7"> <!--Dhalsim D,DF,F+P-->
maincpu.pb@(FF884E+80)=04
</action>
<action condition="temp0 == 9"> <!--Sagat-->
maincpu.pb@(FF884E+88)=04, <!--D,DF,F+P-->
maincpu.pb@(FF884E+8C)=04 <!--D,DF,F+K-->
</action>
<action condition="temp0 == C"> <!--Cammy D,DF,F+K-->
maincpu.pb@(FF884E+96)=04
</action>
<action condition="temp0 == E"> <!--Fei Long D,DF,F+P-->
maincpu.pb@(FF884E+90)=04,
maincpu.pb@(FF884E+A0)=04
</action>
</script>
</cheat>
<cheat desc="Easy F,D,DF + B,D,DB moves PL2">
<script state="run">
<action>temp0=maincpu.pb@(FF884E+391)</action> <!--character-->
<action condition="maincpu.pb@(FF884E+3BD) != 0">temp0=10</action> <!--Akuma-->
<action condition="maincpu.pb@FF884E == 0">temp0=FF</action> <!--match inactive-->
<action condition="(temp0 == 0 OR temp0 == 4 OR temp0 == 10)"> <!--Ryu/Ken/Akuma F,D,DF+P-->
maincpu.pb@(FF884E+98)=04
</action>
<action condition="temp0 == 9"> <!--Sagat F,D,DF+P-->
maincpu.pb@(FF884E+80)=04
</action>
<action condition="temp0 == C"> <!--Cammy F,D,DF+K-->
maincpu.pb@(FF884E+92)=04
</action>
<action condition="temp0 == D"> <!--T.Hawk F,D,DF+P-->
maincpu.pb@(FF884E+8D)=04
</action>
<action condition="temp0 == E"> <!--Fei Long B,D,DB+K-->
maincpu.pb@(FF884E+94)=04
</action>
<action condition="temp0 == 7 AND (maincpu.pw@(FF884E+392) BAND 2) GT 0"> <!--Dhalsim L,D,DL+PPP/KKK-->
maincpu.pw@(FF884E+88)=0608, maincpu.pb@(FF884E+8D)=05 <!--L+PPP/KKK-->
</action>
<action condition="temp0 == 7 AND (maincpu.pw@(FF884E+392) BAND 1) GT 0"> <!--Dhalsim R,D,DR+PPP/KKK-->
maincpu.pw@(FF884E+88)=0608, maincpu.pb@(FF884E+8D)=06 <!--R+PPP/KKK-->
</action>
<action condition="temp0 == 10 AND (maincpu.pw@(FF884E+392) BAND 2) GT 0"> <!--Akuma L,D,DL+PPP/KKK-->
maincpu.pw@(FF884E+9E)=0608, maincpu.pb@(FF884E+A5)=05 <!--L+PPP/KKK-->
</action>
<action condition="temp0 == 10 AND (maincpu.pw@(FF884E+392) BAND 1) GT 0"> <!--Akuma R,D,DR+PPP/KKK-->
maincpu.pw@(FF884E+9E)=0608, maincpu.pb@(FF884E+A5)=06 <!--L+PPP/KKK-->
</action>
</script>
</cheat>
<cheat desc="Easy 360 + half-circle moves PL2">
<script state="run">
<action>temp0=maincpu.pb@(FF884E+391), temp1=maincpu.pb@(FF884E+3B6)</action> <!--char and mode-->
<action condition="maincpu.pb@(FF884E+3BD) != 0">temp0=10</action> <!--Akuma-->
<action condition="maincpu.pb@FF884E == 0">temp0=FF</action> <!--match inactive-->
<action condition="(temp0 == 0 OR temp0 == 10)"> <!--Ryu/Akuma B,DB,D,DF,F+P-->
maincpu.pb@(FF884E+E0)=08
</action>
<action condition="temp0 == 1 AND temp1 == 0"> <!--E.Honda F,DF,D,B+P-->
maincpu.pb@(FF884E+96)=06
</action>
<action condition="temp0 == 4 AND temp1 == 0"> <!--Ken B,DB,D,DF,F+K-->
maincpu.pb@(FF884E+EA)=08
</action>
<action condition="temp0 == 7"> <!--Dhalsim-->
maincpu.pb@(FF884E+84)=08, <!--B,DB,D,DF,F+P-->
maincpu.pb@(FF884E+9A)=08 <!--B,DB,D,DF,F+K-->
</action>
<action condition="temp0 == C"> <!--Cammy B,DB,F+P-->
maincpu.pb@(FF884E+A2)=04
</action>
<action condition="temp0 == 6 AND maincpu.pb@(FF884E+12) != 0"> <!--Zangief 360+P/K-->
maincpu.pd@(FF884E+80)=06060800, <!--L+P from the left-->
maincpu.pd@(FF884E+9B)=06040800 <!--L+K from the left-->
</action>
<action condition="temp0 == 6 AND maincpu.pb@(FF884E+12) == 0"> <!--Zangief 360+P/K-->
maincpu.pd@(FF884E+80)=06070800, <!--R+P from the right-->
maincpu.pd@(FF884E+9B)=06050800 <!--R+K from the right-->
</action>
<action condition="temp0 == D AND maincpu.pb@(FF884E+12) != 0"> <!--T.Hawk 360+P-->
maincpu.pd@(FF884E+91)=04060800 <!--L+P from the left-->
</action>
<action condition="temp0 == D AND maincpu.pb@(FF884E+12) == 0"> <!--T.Hawk 360+P-->
maincpu.pd@(FF884E+91)=05060800 <!--R+P from the right-->
</action>
</script>
</cheat>
<cheat desc="Easy F,DF,D + tiger-knee moves PL2">
<script state="run">
<action>temp0=maincpu.pb@(FF884E+391), temp1=maincpu.pb@(FF884E+3B6)</action> <!--char and mode-->
<action condition="maincpu.pb@(FF884E+3BD) != 0">temp0=10</action> <!--Akuma-->
<action condition="maincpu.pb@FF884E == 0">temp0=FF</action> <!--match inactive-->
<action condition="temp0 == 4 AND temp1 == 0"> <!--Ken F,DF,D+K-->
maincpu.pb@(FF884E+E8)=04
</action>
<action condition="temp0 == 6"> <!--Zangief F,DF,D+P-->
maincpu.pb@(FF884E+B3)=04
</action>
<action condition="temp0 == 9"> <!--Sagat D,F,UF+K-->
maincpu.pb@(FF884E+84)=04
</action>
<action condition="temp0 == C AND temp1 == 0"> <!--Cammy B,D,DF,UF+P-->
maincpu.pb@(FF884E+A9)=06
</action>
<action condition="temp0 == E AND temp1 == 0"> <!--Fei Long B,D,DF,UF+K-->
maincpu.pb@(FF884E+B4)=06
</action>
</script>
</cheat>
<cheat desc="Easy super moves PL2">
<script state="run">
<action>temp0=maincpu.pb@(FF884E+391)</action> <!--character-->
<action condition="maincpu.pb@FF884E == 0 OR maincpu.pb@(FF884E+3BD) != 0 OR maincpu.pb@(FF884E+3B6) != 0">
temp0=FF <!--match inactive, Akuma, or old mode-->
</action>
<action condition="temp0 == 0"> <!--Ryu D,DF,F,D,DF,F+P-->
maincpu.pb@(FF884E+A0)=0A
</action>
<action condition="temp0 == 1"> <!--E.Honda _B,F,B,F+P-->
maincpu.pb@(FF884E+94)=0A
</action>
<action condition="temp0 == 2"> <!--Blanka _B,F,B,F+P-->
maincpu.pb@(FF884E+C1)=0A
</action>
<action condition="temp0 == 3"> <!--Guile _D,R,B,U+K-->
maincpu.pb@(FF884E+94)=0A
</action>
<action condition="temp0 == 4"> <!--Ken D,DF,F,D,DF+P-->
maincpu.pb@(FF884E+A0)=08
</action>
<action condition="temp0 == 5"> <!--Chun Li _B,F,B,F+K-->
maincpu.pb@(FF884E+BF)=0A
</action>
<action condition="temp0 == 6 AND maincpu.pb@(FF884E+12) != 0"> <!--Zangief 720+P-->
maincpu.pw@(FF884E+AC)=0E06 <!--L+P from the left-->
</action>
<action condition="temp0 == 6 AND maincpu.pb@(FF884E+12) == 0"> <!--Zangief 720+P-->
maincpu.pw@(FF884E+AC)=0E07 <!--R+P from the right-->
</action>
<action condition="temp0 == 7"> <!--Dhalsim B,DB,D,DF,F,B,DB,D,DF,F+P-->
maincpu.pb@(FF884E+96)=10
</action>
<action condition="temp0 == 8"> <!--Dictator _B,F,B,F+K-->
maincpu.pb@(FF884E+C5)=0A
</action>
<action condition="temp0 == 9"> <!--Sagat D,DF,F,D,DF+P/K-->
maincpu.pb@(FF884E+9E)=08
</action>
<action condition="temp0 == A"> <!--Boxer _B,F,B,F+P-->
maincpu.pb@(FF884E+D4)=0A
</action>
<action condition="temp0 == B"> <!--Claw _D,R,B,U+K-->
maincpu.pb@(FF884E+99)=0A
</action>
<action condition="temp0 == C"> <!--Cammy D,DF,F,D,DF+K-->
maincpu.pb@(FF884E+A6)=08
</action>
<action condition="temp0 == D AND maincpu.pb@(FF884E+12) != 0"> <!--T.Hawk 720+P-->
maincpu.pw@(FF884E+9E)=0E06 <!--L+P from the left-->
</action>
<action condition="temp0 == D AND maincpu.pb@(FF884E+12) == 0"> <!--T.Hawk 720+P-->
maincpu.pw@(FF884E+9E)=0E07 <!--R+P from the right-->
</action>
<action condition="temp0 == E"> <!--Fei Long D,DF,F,D,DF,F+P-->
maincpu.pb@(FF884E+B0)=0A
</action>
<action condition="temp0 == F"> <!--Dee Jay _B,F,B,F+K-->
maincpu.pb@(FF884E+AF)=0A
</action>
</script>
</cheat>
<cheat desc="Controller PL2">
<comment>Crashes if the game started as Human and you switch it to CPU</comment>
<parameter>
<item value="0x00">CPU</item>
<item value="0x01">Human</item>
</parameter>
<script state="run">
<action>maincpu.pb@FF8BDC=param</action>
</script>
</cheat>
<cheat desc="Select Character PL2"> <comment>Use on the character select screen.</comment>
<parameter>
<item value="0x00">Ryu</item>
<item value="0x01">E.Honda</item>
<item value="0x02">Blanka</item>
<item value="0x03">Guile</item>
<item value="0x04">Ken</item>
<item value="0x05">Chun Li</item>
<item value="0x06">Zangief</item>
<item value="0x07">Dhalsim</item>
<item value="0x08">Dictator</item>
<item value="0x09">Sagat</item>
<item value="0x0A">Boxer</item>
<item value="0x0B">Claw</item>
<item value="0x0C">Cammy</item>
<item value="0x0D">T.Hawk</item>
<item value="0x0E">Fei Long</item>
<item value="0x0F">Dee Jay</item>
<item value="0x10">O.Ryu</item>
<item value="0x11">O.Honda</item>
<item value="0x12">O.Blanka</item>
<item value="0x13">O.Guile</item>
<item value="0x14">O.Ken</item>
<item value="0x15">O.Chun Li</item>
<item value="0x16">O.Zangief</item>
<item value="0x17">O.Dhalsim</item>
<item value="0x18">O.Dictator</item>
<item value="0x19">O.Sagat</item>
<item value="0x1A">O.Boxer</item>
<item value="0x1B">O.Claw</item>
<item value="0x1C">O.Cammy</item>
<item value="0x1D">O.Hawk</item>
<item value="0x1E">O.Fei Long</item>
<item value="0x1F">O.Dee Jay</item>
<item value="0x20">Akuma/Gouki</item>
</parameter>
<script state="run">
<action condition="param == 0F">maincpu.pb@FF8BFF=0</action>
<action condition="param le 0F">
maincpu.pb@FF8BDF=param, maincpu.pb@FF8C0B=0, maincpu.pb@FF8C04=0
</action>
<action condition="param gt 0F and param le 1f">
temp1=param-0x10,
maincpu.pb@FF8BDF=temp1, maincpu.pb@FF8C0B=0, maincpu.pb@FF8BFF=8, maincpu.pb@FF8B02=0, maincpu.pb@FF8C04=1
</action>
<action condition="param == 20">
maincpu.pb@FF8C0B=01, <!--actual selection-->
maincpu.pb@FF8BFF=0B <!--portrait-->
</action>
</script>
</cheat>
<cheat desc="Select Colour PL2">
<parameter>
<item value="0x00">LP button</item>
<item value="0x01">MP button</item>
<item value="0x02">HP button</item>
<item value="0x03">LK button</item>
<item value="0x04">MK button</item>
<item value="0x05">HK button</item>
<item value="0x06">Start button</item>
<item value="0x07">Hold any P/K button</item>
<item value="0x08">SSF2 primary</item>
<item value="0x09">SSF2 alternate</item>
</parameter>
<script state="run">
<action condition="maincpu.pb@FF8C0B == 00">maincpu.pb@FF8BFF=param</action> <!--does not apply to Akuma-->
</script>
</cheat>
<cheat desc=" "/>
</mamecheat>
<!-- Cheat file from:
http://cheat.retrogames.com/mame_downloads.htm
http://www.mamecheat.co.uk/forums/viewtopic.php?f=4&t=4103
http://forums.shoryuken.com/discussion/133697/super-turbo-training-mode-for-pc-with-hud-hitbox-input-display-cheat
http://pof.eslack.org/category/superturbo/
-->