[tekken]+ Tekken 1, fix block stun combos + CPU/Human control

This forum is for posting M.A.M.E. arcade cheats. Requests will be fulfilled here....but please keep the requests to the requests forum.
Post Reply
Heihachi_73
Posts: 221
Joined: Thu Jan 26, 2006 8:10 am
Location: Melbourne, Australia
Contact:

[tekken]+ Tekken 1, fix block stun combos + CPU/Human control

Post by Heihachi_73 » Fri Mar 20, 2020 10:19 am

This game is infamous for guard-breaking combos, where you can block one move but not another if the latter was too fast, even if both moves were blockable on their own. This set of cheats attempts to balance the game a bit better, making it a bit more similar to Tekken 2.

Nina and Anna had the Forward Flip Kick, which could be followed up with a rising high or low kick for a free hit.
King and Armor King had the Exploder and Running Exploder, which could also be followed up with a rising high or low kick for a free hit.
King and Armor King also had the Elbow Sting, which could be followed up with a fast punch to launch the opponent before they could recover.
Jack's Gigaton Punch also had the same effect, where a right punch would launch the opponent if the first punched was blocked.
The rolling cross chop, a move universal to everyone except the four Jack characters (Jack, P.Jack, Ganryu and Kuma), was also guaranteed to juggle if a follow-up punch was performed. Note that there are four types of cross chop: The standard rolling cross chop (on ground, feet towards opponent), which has the aforementioned speed issue (move ends too fast for the opponent to recover), the feet-away version of the same move (which is AFAIK a bit slower thus allowing the opponent to block the next move), a kick-up cross chop unique to Paul and Yoshimitsu (which is also slower), and a running cross chop which can be done with all characters.

Note that there are several other moves, mainly throws, which have a guaranteed follow-up. I don't think these can be fixed without breaking other things; in some cases it is impossible as the opponent is still in their damage-receiving throw animation. For example, Kazuya's Stonehead can be followed up by a number of moves (even a WGF) when the opponent is bouncing off the ground.

This cheat set replaces the Gigaton Punch, Rolling Cross Chop, Elbow Sting (King/Armor King), Exploder/Running Exploder (King/Armor King) and Forward Flip Kick (Nina/Anna) block stun animations with a quicker-recovering version, which is normally only used when blocking Paul's Neutron Bomb flip kick. The animations are almost identical so the character will still reel back when guarding, but will now have enough time to recover so they can block or counter any follow-ups. If I could find a way to edit the frame data (recovery period) so the original animations could still be used that would be ideal, but for now this will have to do.

A side effect of the Gigaton Punch fix (while the Windup/Gigaton Punch is Jack's signature unblockable move, the single windup/punch where the announcer yells "One!" is actually blockable, but following up immediately with a right punch launches the opponent) is that the rolling cross chop (on ground, feet towards the opponent, roll forward or back then F+1+2) is also fixed; the running cross chop, feet-away cross chop, and Paul's/Yoshimitsu's kick-up cross chop aren't affected as the moves were a bit slower even though the same block animation was used. Michelle's Twin Arrow also uses the same block animation however I think this move is still safe for both Michelle and the opponent when blocked, even with the opponent's faster recovery.

These have been tested with TE4/VER.C [tekkenac], but it should also work with TE2/VER.C [tekken] as they have the same memory locations. The two VER.B sets [tekkenb] and [tekkenjb] have different memory locations thus I will need to recheck them.

The 16 different locations correspond to the fighters' movesets (there are 17 characters, but Kunimitsu uses Yoshimitsu's 0x06 moveset). As the same pointers are repeated over every moveset I only need one temp0 location for each cheat (Kazuya's, since his data is located first).

Code: Select all

<mamecheat version="1">

  <cheat desc="Fix Jack's unblockable Gigaton Punch 1 follow-ups and Cross Chop follow-ups"> <comment>This allows you to block combos which would normally juggle after the blocked Gigaton Punch (Jack) or Rolling Cross Chop (non-Jack characters)</comment>
    <script state="on">
      <action>temp0=maincpu.pd@8005AF7C</action>
    </script>
    <script state="run">
      <action>maincpu.pd@8005AF7C=80101140</action>
      <action>maincpu.pd@8005BD04=80101140</action>
      <action>maincpu.pd@8005CA8C=80101140</action>
      <action>maincpu.pd@8005D814=80101140</action>
      <action>maincpu.pd@8005E59C=80101140</action>
      <action>maincpu.pd@8005F324=80101140</action>
      <action>maincpu.pd@800600AC=80101140</action>
      <action>maincpu.pd@80060E34=80101140</action>
      <action>maincpu.pd@80061BBC=80101140</action>
      <action>maincpu.pd@80062944=80101140</action>
      <action>maincpu.pd@800636CC=80101140</action>
      <action>maincpu.pd@80064454=80101140</action>
      <action>maincpu.pd@800651DC=80101140</action>
      <action>maincpu.pd@80065F64=80101140</action>
      <action>maincpu.pd@80066CEC=80101140</action>
      <action>maincpu.pd@80067A74=80101140</action>
    </script>
    <script state="off">
      <action>maincpu.pd@8005AF7C=temp0</action>
      <action>maincpu.pd@8005BD04=temp0</action>
      <action>maincpu.pd@8005CA8C=temp0</action>
      <action>maincpu.pd@8005D814=temp0</action>
      <action>maincpu.pd@8005E59C=temp0</action>
      <action>maincpu.pd@8005F324=temp0</action>
      <action>maincpu.pd@800600AC=temp0</action>
      <action>maincpu.pd@80060E34=temp0</action>
      <action>maincpu.pd@80061BBC=temp0</action>
      <action>maincpu.pd@80062944=temp0</action>
      <action>maincpu.pd@800636CC=temp0</action>
      <action>maincpu.pd@80064454=temp0</action>
      <action>maincpu.pd@800651DC=temp0</action>
      <action>maincpu.pd@80065F64=temp0</action>
      <action>maincpu.pd@80066CEC=temp0</action>
      <action>maincpu.pd@80067A74=temp0</action>
    </script>
  </cheat>

  <cheat desc="Fix King's unblockable Elbow Sting follow-ups"> <comment>This allows you to block combos which would normally juggle after the Elbow Sting</comment>
    <script state="on">
      <action>temp0=maincpu.pd@8005AF78</action>
    </script>
    <script state="run">
      <action>maincpu.pd@8005AF78=80101140</action>
      <action>maincpu.pd@8005BD00=80101140</action>
      <action>maincpu.pd@8005CA88=80101140</action>
      <action>maincpu.pd@8005D810=80101140</action>
      <action>maincpu.pd@8005E598=80101140</action>
      <action>maincpu.pd@8005F320=80101140</action>
      <action>maincpu.pd@800600A8=80101140</action>
      <action>maincpu.pd@80060E30=80101140</action>
      <action>maincpu.pd@80061BB8=80101140</action>
      <action>maincpu.pd@80062940=80101140</action>
      <action>maincpu.pd@800636C8=80101140</action>
      <action>maincpu.pd@80064450=80101140</action>
      <action>maincpu.pd@800651D8=80101140</action>
      <action>maincpu.pd@80065F60=80101140</action>
      <action>maincpu.pd@80066CE8=80101140</action>
      <action>maincpu.pd@80067A70=80101140</action>
    </script>
    <script state="off">
      <action>maincpu.pd@8005AF78=temp0</action>
      <action>maincpu.pd@8005BD00=temp0</action>
      <action>maincpu.pd@8005CA88=temp0</action>
      <action>maincpu.pd@8005D810=temp0</action>
      <action>maincpu.pd@8005E598=temp0</action>
      <action>maincpu.pd@8005F320=temp0</action>
      <action>maincpu.pd@800600A8=temp0</action>
      <action>maincpu.pd@80060E30=temp0</action>
      <action>maincpu.pd@80061BB8=temp0</action>
      <action>maincpu.pd@80062940=temp0</action>
      <action>maincpu.pd@800636C8=temp0</action>
      <action>maincpu.pd@80064450=temp0</action>
      <action>maincpu.pd@800651D8=temp0</action>
      <action>maincpu.pd@80065F60=temp0</action>
      <action>maincpu.pd@80066CE8=temp0</action>
      <action>maincpu.pd@80067A70=temp0</action>
    </script>
  </cheat>

  <cheat desc="Fix King's unblockable Exploder/Rising Kick follow-up"> <comment>This allows you to block the rising kick after the Exploder</comment>
    <script state="on">
      <action>temp0=maincpu.pd@8005AF60</action>
    </script>
    <script state="run">
      <action>maincpu.pd@8005AF60=80101140</action>
      <action>maincpu.pd@8005BCE8=80101140</action>
      <action>maincpu.pd@8005CA70=80101140</action>
      <action>maincpu.pd@8005D7F8=80101140</action>
      <action>maincpu.pd@8005E580=80101140</action>
      <action>maincpu.pd@8005F308=80101140</action>
      <action>maincpu.pd@80060090=80101140</action>
      <action>maincpu.pd@80060E18=80101140</action>
      <action>maincpu.pd@80061BA0=80101140</action>
      <action>maincpu.pd@80062928=80101140</action>
      <action>maincpu.pd@800636B0=80101140</action>
      <action>maincpu.pd@80064438=80101140</action>
      <action>maincpu.pd@800651C0=80101140</action>
      <action>maincpu.pd@80065F48=80101140</action>
      <action>maincpu.pd@80066CD0=80101140</action>
      <action>maincpu.pd@80067A58=80101140</action>
    </script>
    <script state="off">
      <action>maincpu.pd@8005AF60=temp0</action>
      <action>maincpu.pd@8005BCE8=temp0</action>
      <action>maincpu.pd@8005CA70=temp0</action>
      <action>maincpu.pd@8005D7F8=temp0</action>
      <action>maincpu.pd@8005E580=temp0</action>
      <action>maincpu.pd@8005F308=temp0</action>
      <action>maincpu.pd@80060090=temp0</action>
      <action>maincpu.pd@80060E18=temp0</action>
      <action>maincpu.pd@80061BA0=temp0</action>
      <action>maincpu.pd@80062928=temp0</action>
      <action>maincpu.pd@800636B0=temp0</action>
      <action>maincpu.pd@80064438=temp0</action>
      <action>maincpu.pd@800651C0=temp0</action>
      <action>maincpu.pd@80065F48=temp0</action>
      <action>maincpu.pd@80066CD0=temp0</action>
      <action>maincpu.pd@80067A58=temp0</action>
    </script>
  </cheat>

  <cheat desc="Fix Nina's unblockable Forward Flip Kick/Rising Kick follow-up"> <comment>This allows you to block the rising kick after the Forward Flip Kick</comment>
    <script state="on">
      <action>temp0=maincpu.pd@8005AF74</action>
    </script>
    <script state="run">
      <action>maincpu.pd@8005AF74=80101140</action>
      <action>maincpu.pd@8005BCFC=80101140</action>
      <action>maincpu.pd@8005CA84=80101140</action>
      <action>maincpu.pd@8005D80C=80101140</action>
      <action>maincpu.pd@8005E594=80101140</action>
      <action>maincpu.pd@8005F31C=80101140</action>
      <action>maincpu.pd@800600A4=80101140</action>
      <action>maincpu.pd@80060E2C=80101140</action>
      <action>maincpu.pd@80061BB4=80101140</action>
      <action>maincpu.pd@8006293C=80101140</action>
      <action>maincpu.pd@800636C4=80101140</action>
      <action>maincpu.pd@8006444C=80101140</action>
      <action>maincpu.pd@800651D4=80101140</action>
      <action>maincpu.pd@80065F5C=80101140</action>
      <action>maincpu.pd@80066CE4=80101140</action>
      <action>maincpu.pd@80067A6C=80101140</action>
    </script>
    <script state="off">
      <action>maincpu.pd@8005AF74=temp0</action>
      <action>maincpu.pd@8005BCFC=temp0</action>
      <action>maincpu.pd@8005CA84=temp0</action>
      <action>maincpu.pd@8005D80C=temp0</action>
      <action>maincpu.pd@8005E594=temp0</action>
      <action>maincpu.pd@8005F31C=temp0</action>
      <action>maincpu.pd@800600A4=temp0</action>
      <action>maincpu.pd@80060E2C=temp0</action>
      <action>maincpu.pd@80061BB4=temp0</action>
      <action>maincpu.pd@8006293C=temp0</action>
      <action>maincpu.pd@800636C4=temp0</action>
      <action>maincpu.pd@8006444C=temp0</action>
      <action>maincpu.pd@800651D4=temp0</action>
      <action>maincpu.pd@80065F5C=temp0</action>
      <action>maincpu.pd@80066CE4=temp0</action>
      <action>maincpu.pd@80067A6C=temp0</action>
    </script>
  </cheat>

</mamecheat>
Also, I don't know what happened with the following Human/CPU-controlled code over the years so I will place it here - the last time I saw the cheat was way back in the 0.12x cheat.dat era! Yes, this even works in the attract mode demo fights. :)

Code: Select all

<mamecheat version="1">

  <cheat desc="Player 1 is controlled by">
    <parameter>
      <item value="0x00">Human</item>
      <item value="0x01">CPU</item>
    </parameter>
    <script state="run">
      <action>maincpu.pb@2648EC=param</action>
    </script>
  </cheat>

  <cheat desc="Player 2 is controlled by">
    <parameter>
      <item value="0x00">Human</item>
      <item value="0x01">CPU</item>
    </parameter>
    <script state="run">
      <action>maincpu.pb@2648EE=param</action>
    </script>
  </cheat>

</mamecheat>
Last edited by Heihachi_73 on Sat Mar 21, 2020 10:05 pm, edited 1 time in total.

Heihachi_73
Posts: 221
Joined: Thu Jan 26, 2006 8:10 am
Location: Melbourne, Australia
Contact:

Re: [tekken] Tekken 1, fix block stun combos + CPU/Human control

Post by Heihachi_73 » Sat Mar 21, 2020 9:54 pm

The same cheats, updated for the VER.B clones tekkenb and tekkenjb (both of which also share RAM locations, just different to the VER.C releases).

Code: Select all

<mamecheat version="1">

  <cheat desc="Fix Jack's unblockable Gigaton Punch 1 follow-ups and Cross Chop follow-ups"> <comment>This allows you to block combos which would normally juggle after the blocked Gigaton Punch (Jack) or Rolling Cross Chop (non-Jack characters)</comment>
    <script state="on">
      <action>temp0=maincpu.pd@8005AF3C</action>
    </script>
    <script state="run">
      <action>maincpu.pd@8005AF3C=80100EB0</action>
      <action>maincpu.pd@8005BCC4=80100EB0</action>
      <action>maincpu.pd@8005CA4C=80100EB0</action>
      <action>maincpu.pd@8005D7D4=80100EB0</action>
      <action>maincpu.pd@8005E55C=80100EB0</action>
      <action>maincpu.pd@8005F2E4=80100EB0</action>
      <action>maincpu.pd@8006006C=80100EB0</action>
      <action>maincpu.pd@80060DF4=80100EB0</action>
      <action>maincpu.pd@80061B7C=80100EB0</action>
      <action>maincpu.pd@80062904=80100EB0</action>
      <action>maincpu.pd@8006368C=80100EB0</action>
      <action>maincpu.pd@80064414=80100EB0</action>
      <action>maincpu.pd@8006519C=80100EB0</action>
      <action>maincpu.pd@80065F24=80100EB0</action>
      <action>maincpu.pd@80066CAC=80100EB0</action>
      <action>maincpu.pd@80067A34=80100EB0</action>
    </script>
    <script state="off">
      <action>maincpu.pd@8005AF3C=temp0</action>
      <action>maincpu.pd@8005BCC4=temp0</action>
      <action>maincpu.pd@8005CA4C=temp0</action>
      <action>maincpu.pd@8005D7D4=temp0</action>
      <action>maincpu.pd@8005E55C=temp0</action>
      <action>maincpu.pd@8005F2E4=temp0</action>
      <action>maincpu.pd@8006006C=temp0</action>
      <action>maincpu.pd@80060DF4=temp0</action>
      <action>maincpu.pd@80061B7C=temp0</action>
      <action>maincpu.pd@80062904=temp0</action>
      <action>maincpu.pd@8006368C=temp0</action>
      <action>maincpu.pd@80064414=temp0</action>
      <action>maincpu.pd@8006519C=temp0</action>
      <action>maincpu.pd@80065F24=temp0</action>
      <action>maincpu.pd@80066CAC=temp0</action>
      <action>maincpu.pd@80067A34=temp0</action>
    </script>
  </cheat>

  <cheat desc="Fix King's unblockable Elbow Sting follow-ups"> <comment>This allows you to block combos which would normally juggle after the Elbow Sting</comment>
    <script state="on">
      <action>temp0=maincpu.pd@8005AF38</action>
    </script>
    <script state="run">
      <action>maincpu.pd@8005AF38=80100EB0</action>
      <action>maincpu.pd@8005BCC0=80100EB0</action>
      <action>maincpu.pd@8005CA48=80100EB0</action>
      <action>maincpu.pd@8005D7D0=80100EB0</action>
      <action>maincpu.pd@8005E558=80100EB0</action>
      <action>maincpu.pd@8005F2E0=80100EB0</action>
      <action>maincpu.pd@80060068=80100EB0</action>
      <action>maincpu.pd@80060DF0=80100EB0</action>
      <action>maincpu.pd@80061B78=80100EB0</action>
      <action>maincpu.pd@80062900=80100EB0</action>
      <action>maincpu.pd@80063688=80100EB0</action>
      <action>maincpu.pd@80064410=80100EB0</action>
      <action>maincpu.pd@80065198=80100EB0</action>
      <action>maincpu.pd@80065F20=80100EB0</action>
      <action>maincpu.pd@80066CA8=80100EB0</action>
      <action>maincpu.pd@80067A30=80100EB0</action>
    </script>
    <script state="off">
      <action>maincpu.pd@8005AF38=temp0</action>
      <action>maincpu.pd@8005BCC0=temp0</action>
      <action>maincpu.pd@8005CA48=temp0</action>
      <action>maincpu.pd@8005D7D0=temp0</action>
      <action>maincpu.pd@8005E558=temp0</action>
      <action>maincpu.pd@8005F2E0=temp0</action>
      <action>maincpu.pd@80060068=temp0</action>
      <action>maincpu.pd@80060DF0=temp0</action>
      <action>maincpu.pd@80061B78=temp0</action>
      <action>maincpu.pd@80062900=temp0</action>
      <action>maincpu.pd@80063688=temp0</action>
      <action>maincpu.pd@80064410=temp0</action>
      <action>maincpu.pd@80065198=temp0</action>
      <action>maincpu.pd@80065F20=temp0</action>
      <action>maincpu.pd@80066CA8=temp0</action>
      <action>maincpu.pd@80067A30=temp0</action>
    </script>
  </cheat>

  <cheat desc="Fix King's unblockable Exploder/Rising Kick combo"> <comment>This allows you to block the rising kick after the Exploder</comment>
    <script state="on">
      <action>temp0=maincpu.pd@8005AF20</action>
    </script>
    <script state="run">
      <action>maincpu.pd@8005AF20=80100EB0</action>
      <action>maincpu.pd@8005BCA8=80100EB0</action>
      <action>maincpu.pd@8005CA30=80100EB0</action>
      <action>maincpu.pd@8005D7B8=80100EB0</action>
      <action>maincpu.pd@8005E540=80100EB0</action>
      <action>maincpu.pd@8005F2C8=80100EB0</action>
      <action>maincpu.pd@80060050=80100EB0</action>
      <action>maincpu.pd@80060DD8=80100EB0</action>
      <action>maincpu.pd@80061B60=80100EB0</action>
      <action>maincpu.pd@800628E8=80100EB0</action>
      <action>maincpu.pd@80063670=80100EB0</action>
      <action>maincpu.pd@800643F8=80100EB0</action>
      <action>maincpu.pd@80065180=80100EB0</action>
      <action>maincpu.pd@80065F08=80100EB0</action>
      <action>maincpu.pd@80066C90=80100EB0</action>
      <action>maincpu.pd@80067A18=80100EB0</action>
    </script>
    <script state="off">
      <action>maincpu.pd@8005AF20=temp0</action>
      <action>maincpu.pd@8005BCA8=temp0</action>
      <action>maincpu.pd@8005CA30=temp0</action>
      <action>maincpu.pd@8005D7B8=temp0</action>
      <action>maincpu.pd@8005E540=temp0</action>
      <action>maincpu.pd@8005F2C8=temp0</action>
      <action>maincpu.pd@80060050=temp0</action>
      <action>maincpu.pd@80060DD8=temp0</action>
      <action>maincpu.pd@80061B60=temp0</action>
      <action>maincpu.pd@800628E8=temp0</action>
      <action>maincpu.pd@80063670=temp0</action>
      <action>maincpu.pd@800643F8=temp0</action>
      <action>maincpu.pd@80065180=temp0</action>
      <action>maincpu.pd@80065F08=temp0</action>
      <action>maincpu.pd@80066C90=temp0</action>
      <action>maincpu.pd@80067A18=temp0</action>
    </script>
  </cheat>

  <cheat desc="Fix Nina's unblockable Forward Flip Kick/Rising Kick combo"> <comment>This allows you to block the rising kick after the Forward Flip Kick</comment>
    <script state="on">
      <action>temp0=maincpu.pd@8005AF34</action>
    </script>
    <script state="run">
      <action>maincpu.pd@8005AF34=80100EB0</action>
      <action>maincpu.pd@8005BCBC=80100EB0</action>
      <action>maincpu.pd@8005CA44=80100EB0</action>
      <action>maincpu.pd@8005D7CC=80100EB0</action>
      <action>maincpu.pd@8005E554=80100EB0</action>
      <action>maincpu.pd@8005F2DC=80100EB0</action>
      <action>maincpu.pd@80060064=80100EB0</action>
      <action>maincpu.pd@80060DEC=80100EB0</action>
      <action>maincpu.pd@80061B74=80100EB0</action>
      <action>maincpu.pd@800628FC=80100EB0</action>
      <action>maincpu.pd@80063684=80100EB0</action>
      <action>maincpu.pd@8006440C=80100EB0</action>
      <action>maincpu.pd@80065194=80100EB0</action>
      <action>maincpu.pd@80065F1C=80100EB0</action>
      <action>maincpu.pd@80066CA4=80100EB0</action>
      <action>maincpu.pd@80067A2C=80100EB0</action>
    </script>
    <script state="off">
      <action>maincpu.pd@8005AF34=temp0</action>
      <action>maincpu.pd@8005BCBC=temp0</action>
      <action>maincpu.pd@8005CA44=temp0</action>
      <action>maincpu.pd@8005D7CC=temp0</action>
      <action>maincpu.pd@8005E554=temp0</action>
      <action>maincpu.pd@8005F2DC=temp0</action>
      <action>maincpu.pd@80060064=temp0</action>
      <action>maincpu.pd@80060DEC=temp0</action>
      <action>maincpu.pd@80061B74=temp0</action>
      <action>maincpu.pd@800628FC=temp0</action>
      <action>maincpu.pd@80063684=temp0</action>
      <action>maincpu.pd@8006440C=temp0</action>
      <action>maincpu.pd@80065194=temp0</action>
      <action>maincpu.pd@80065F1C=temp0</action>
      <action>maincpu.pd@80066CA4=temp0</action>
      <action>maincpu.pd@80067A2C=temp0</action>
    </script>
  </cheat>

</mamecheat>
And the Human/CPU cheat:

Code: Select all

<mamecheat version="1">

  <cheat desc="Player 1 is controlled by">
    <parameter>
      <item value="0x00">Human</item>
      <item value="0x01">CPU</item>
    </parameter>
    <script state="run">
      <action>maincpu.pb@264594=param</action>
    </script>
  </cheat>

  <cheat desc="Player 2 is controlled by">
    <parameter>
      <item value="0x00">Human</item>
      <item value="0x01">CPU</item>
    </parameter>
    <script state="run">
      <action>maincpu.pb@264596=param</action>
    </script>
  </cheat>

</mamecheat>

Post Reply