Professional Documents
Culture Documents
Tk6 Cheat Making UPDATE 2
Tk6 Cheat Making UPDATE 2
FINDING CODES:
_L 0xE01D00AA 0x004078B4 - ID NUMBER
_L 0xE00201D2 0x00407A18 - 08C07A18 - 1ST MOVE
_L 0xE01DKKKK 0x00407D1C - 08C07A18 - 1ST MOVE - 4EFGH
_L 0xE001GGGG 0x0040864C - 8C08348 - P2 HIT REACTION ( GROUD AND AIR )
_L 0x20407D24 0xLLLLLLLL - 8C07964 - FOR CHANGING / ADDING MOVE ( VER PAUL / VER
ALISA ) ( VER ALISA = VER PAUL+ABC00 )
_L 0xE00D1110 0x00407980 - confirming the added move ( reversing code: XXX ) -->
ALSO PLACE AFTER LINES OF MAKING k!
_L 0xE01D0Z00 0x00407D3C - 8C07D3C - ASSIGNING BUTTONS
_L 0xE01D0Z0Z 0x00407D3C - 8C07D3C - SAME CONSECUTIVE BUTTONS, EXAMPLE: D+2,2
_L 0xE01D0QQQ 0x00407D30 - 8C07D30 - ASSIGNING DIRECTIONS
1 = 1
2 = 2
3 = 4
4 = 8
B = 10
D/B = 02
D = 04
D/F = 08
F = 40
U/B = 80
U = 100
U/F = 200
ID NUMBER:
19 = BAEK
08 = CHRISTIE
1C = FENG
0B = KUMA
0F = LEE
02 = LEI
05 = NINA
11 = MARDUK
00 = PAUL
1B = RAVEN
0E = KAZUYA
28 = LARS
29 = ALISA
09 = JIN
1F = DRAGUNOV
1D = ARMOR KING
03 = KING
0A = JULIA
14 = ANNA
01 = LAW
16 = GANRYU
13 = ROGER
1D = MOKUJIN
12 = JACK-6
0C = BRYAN
21 = EDDY
07 = XIAOYU
1A = DEVIL JIN
17 = ASUKA
22 = BOB
25 = LEO
24 = MIGUEL
23 = ZAFINA
1E = LILI
06 = HWOARANG
0D = HEIHACHI
10 = STEVE
18 = BRUCE
15 = WANG
04 = YOSHIMITSU
You need set your own value instead of RRRR, KKKK, VV, U, WW, LLLLLLLL and
JJJJJJJJ.
To know these values:
3) versus Paul (it's important)
When the Practice will load, look at the line in the buttom of the screen. The four
digits in the end of the line are your RRRR.
4) Now goto "Changes finder" and input 00407A18. Do the move which you want add a
new move to, for example u/b+2.
The four digits in the end (!) of the line are your KKKK.
5) Now let's design a button type for the adding move, for example 3 (Cross), so in
result we'll have u/b+2,3.
Goto the "Changes finder" and input 00407D3C. Return to the game and hold the
button(s) that you want.
The digit that you predominantly see in the right part of the line is your U.
(for example, if you hold Cross button you see 4.)
6) Instead of VV/WW you need set an exact time when your adding move should begin.
Would be good if you know a frame data, at least approximately. But anyway you'll
have to experiment.
Try to set 10 and look at result. If it'll too fast or you don't like it then
change it to 18 or 25 or 1C and look at result.
Feel free to set your own value. (for example for u/b+2 better set values no less
0F, because the hit moment is on 0E'th frame)
7) Now goto "Changes finder", input 00407D24 and press Square button one time more
to set 32bit.
8) Do the move which you want to add (for example f,f,f+3).
The eight digits that you see in the middle part of the line are your LLLLLLLL.
9) Now goto the "Select characters screen" and select your character versus Alisa
(it's important).
10) Do your adding move again (f,f,f+3). What you see now in the middle part of the
line is your JJJJJJJJ.
That's all.
Press ctrl+m and search for 08C07A18. Then perform the move you want the reaction
to change (f+4 in this case)
After performing the move, pause. You will see 1A highlighted,
and on the right is 02. Write this as 021A as seen below:
_L 0xE01D021A 0x00407A18 - move: f+4 that we want to change
_L 0xE002086A 0x004078E2 - ver paul constant (do not change)
Now, ctrl+m again (unless it's open already) and type 8C07964.
Perform the move from which we want the reaction to be copied (in this case, ff+3).
You will see a highlighted value, and 3 more values on the right.
Like this: GH EF CD AB. Write it as ABCDEFGH. Then open calculator, change it to
programmer mode and click hex. Add the value you got with 20.
After adding, ctrl+m again and type the resulting value.
A value will be highlighted. Write the value along with 3 values on the right
in the similar manner (GH EF CD AB -> ABCDEFGH).
086B3968 = ABCDEFGH
_L 0x60407964 0x086B3968 - we copy the animation of f,f+3. 8C07964: R+8: 86B3968
_L 0x00020001 0x00000020 - constant
NOTE: for making the code in the PSP version, it is required to choose Alisa as
P2 for this part. In the ppsspp version, we don't need to do it anymore since
We have a constant provided already shown below, and we only need to add the value
of our move's reaction with ABC00 instead of having to perform the move on Alisa
and check for the value.
_L 0xE0020875 0x004078E2 - ver alisa constant
Result:
_C0 KAZ f+4 (ff+3 reaction)
_L 0xE01D08C0 0x204078E2
_L 0xE01D000E 0x004078B4
_L 0xE01D021A 0x00407A18
_L 0xE002086A 0x004078E2
_L 0x60407964 0x086B3968
_L 0x00020001 0x00000020
_L 0xE0020875 0x004078E2
_L 0x60407964 0x0875F568
_L 0x00020001 0x00000020
Another code made with the same steps. Try to analyze it.
_C0 LIL f+4 (TR/T7 reaction)
_L 0xE01D08C0 0x204078E2
_L 0xE01D001E 0x004078B4
_L 0xE01D01F0 0x00407A18
_L 0xE002086A 0x004078E2
_L 0x60407964 0x086B4870
_L 0x00020001 0x00000020
_L 0xE0020875 0x004078E2
_L 0x60407964 0x08760470
_L 0x00020001 0x00000020
=============================================
To make a move you need to know how it looks
In Tk6 a move takes 88 bytes (in DEC), it's 176 digits, it's the same for all
characters
Usually moves are located in "minus" area (in PSP), except Mokujin-ken, but it's
not important if you can make a custom one
I explain the most important lines there, for example
================================
change the reaction animations
_L 0xE01D00XX 0x004078B4
_L 0xE0070XXX 0x00407A18 - P1 ordinal move number (08C07A18)
_L 0xE0060XXX 0x0040864C - P2 ordinal move number (08C08348)
_L 0xE002086A 0x004078E2
_L 0x20408654 0xXXXXXXXX - P2 move pointer (08C08294)
_L 0x20408658 0xXXXXXXXX - distance of blowback (08C08658)
_L 0xE0020875 0x004078E2
_L 0x20408654 0xXXXXXXXX
_L 0x20408658 0xXXXXXXXX
There are two addresses which show ordinal move numbers for one character
Values on them are the SAME!
The first one for P1 is 0407A18, it shows values during all move time
The second one for P1 is 0407D1C, it shows values very very fast, from the moment
when you press buttons to the first frame when this move starts, it works the same
like 0407D24, it's why you better use them together in a code (0407D1C and
0407D24). Of course you can use 0407A18 and 0407D24 also, but in this case you need
add 0407D10 (it sets the time when move must begin). If you do it without 0407D10
your move (on 0407D24) will start only when current move (on 0407A18) will ended.
===================================================================================
======================================
0xE00?0217 0x00407A18 - it's the first thing that you should ask when you started
learn coding stuff, because it's basics
As you know this line is a condition, and this ? means how many next lines will
work if this condition is "true"
For example
0xE0010217 0x00407A18
0xXXXXXXXX 0xXXXXXXXX
Or
0xE0020217 0x00407A18
0xXXXXXXXX 0xXXXXXXXX
0xXXXXXXXX 0xXXXXXXXX
Or
0xE0050217 0x00407A18
0xXXXXXXXX 0xXXXXXXXX
0xXXXXXXXX 0xXXXXXXXX
0xXXXXXXXX 0xXXXXXXXX
0xXXXXXXXX 0xXXXXXXXX
0xXXXXXXXX 0xXXXXXXXX
I often write "1D" because it's the max amount of lines in one cheat code.
But i do it only if i sure that this condition must work for all code lines and it
will not conflict with other conditions
And the same thing for conditions, 0xE0 means 16bit condition, 0xE1 means 8bit
condition
0xE00X5678 0x00407A18
0xE00X1234 0x00407A1A
Or
0xE10X0078 0x00407A18
0xE10X0056 0x00407A19
0xE10X0034 0x00407A1A
0xE10X0012 0x00407A1B
@hepta_X_27
Way1:
Just use values for 0889014 from another move (for example b+2,1)
Way2:
Set a move remover like this
0xE00201E2 0x00407A18 - if f+4 is going
0xE00101EF 0x00407D1C - if CH throw starts
0x20407D24 0x00000000 - then "no move"
But please don't write 0xE00X01E2 0x00407A18 twice.
You need to learn how to save lines in a code, how to make it as short as it
possible
===================================================================================
==
Ok, editing an animation, it's pretty easy thing, i waited you to try do it
yourself
In #308 post i told you the animation pointer is on 0407964=>8
Choose Jin and do 1,2,4 (don't know why there's 1,2,3 i did it for 1,2,4)
You see the value on 0407964=>8 is 09663828
It's the pointer to animation data (or as i like to say "mocap" data)
You can change some basic positions of an animation
There are two kinds of addresses 16bit and 32bit
16bit addresses are like a radio handle, you can turn it freely on 360 degrees,
from 0000 to FFFF
32bit addresses are very sensitive,
write values from ~3C000000 to ~42000000 for set to one side, and from ~BC000000 to
~C2000000 for set to another side
Here's the list of the most useful addresses
After these addresses vectors of animation are going on, we cannot edit them
manually
Also there's another type of mocap data, which uses basically for default stances,
we will talk about it later
You can see effect of changes on neck and head addresses only if you use a move
with disabled head tracking
===================================================================================
=========================================
COPYING MOVES FROM ANOTHER CHARACTER +
COPYING HIT REACTIONS FROM ANOTHER CHARACTER using P0 REACTION (P0R)
2 PROBLEMS ENCOUNTER:
1. CHANGING A MOVE TO A NEW MOVE (COPIED MOVED)
2. ADDING A NEW MOVE FROM AN EXISTING MOVE (COPIED MOVED) - P0 MOVE PROPERTY.
3. COPYING HIT REACTIONS USING P0R (NOT EXISTING REACTION)
RESULT:
1. PROBLEM#2: LEO GIVING HIS B+2,(1+2) TO HEIHACHI.. HEIHACHI CREATES THE MOVE AS
D/F+3,1.
1 IS NEVER EXIST ANY MOVE.
2.SOLUTION:
RESULT:
_C0 HEI D/F+3,1 (P1 leo)
_L 0xE01D08C0 0x204078E2
_L 0xE0020025 0x004078B4
_L 0x50EE3480 0x00001F00
_L 0x00887000 0x00000000
_L 0xE01D000D 0x004078B4
_L 0xE0010064 0x00887000
_L 0x50643870 0x00000058
_L 0x00888F00 0x00000000
_L 0x00888F08 0x09087000
_L 0x00888F48 0x0000000D
_L 0x00888F4C 0x0000001B
_L 0x00888F50 0x0000001C
_L 0x00888F24 0x00000040
_L 0xE001086A 0x004078E2
_L 0x00888F20 0x086B4928
_L 0xE0010875 0x004078E2
_L 0x00888F24 0x08760528
_L 0x00000000 0x00000000
_L 0xE01D000D 0x004078B4
_L 0xE01D01FE 0x00407A18
_L 0xE01D0015 0x20407940
_L 0xE01D0100 0x00407D3C
_L 0x20407980 0x000011FE
_L 0x20407D10 0x00000015
_L 0x20407D24 0x09088F00
_L 0x00000000 0x00000000
1. PROBLEM#3: Hwoarang hits the enemy with F+1+2 thus enemy reacts like he punched
by Steve (F+1+2).
Same reaction too in CH.
2. SOLUTION:
First of all, what will happen if you press 1+2 while ZEN?
If you set 1+2 to L trigger or R trigger and press it while ZEN then Jin will do
ZEN+1
If you press 1+2 with a buffering (b+1, then holding 1 press 2) then Jin will do
ZEN+2
So Jin can do two moves if you press 1+2,
we need to add some identificators to ZEN+1 and ZEN+2 if a user press 1+2 in
beginning
_L 0xE00301C5 0x00407A18 - if ZEN+1
_L 0xE0020004 0x20407940 - if time of this move is less 4 frames
_L 0xE0010300 0x00407D3C - if hold 1+2 buttons
_L 0x20407A18 0x000011C5 - any custom move number which Jin does not have (just for
id)
And the same thing for ZEN+2
_L 0xE00301CD 0x00407A18 - if ZEN+2
_L 0xE0020004 0x20407940
_L 0xE0010300 0x00407D3C
_L 0x20407A18 0x000011C5
But since we have two the same conditions (time and buttons) we can shorten it like
this
_L 0xE0050004 0x20407940
_L 0xE0040300 0x00407D3C
_L 0xE00101C5 0x00407A18
_L 0x20407A18 0x000011C5
_L 0xE00101CD 0x00407A18
_L 0x20407A18 0x000011C5
Now if a user press 1+2 while ZEN it will be 11C5 move number, good, let's set
b+2,1 on this number
_L 0xE00511C5 0x00407A18 - if it's ZEN 1+2
_L 0x20407D10 0x00000000 - then without any delay..
_L 0xE001086A 0x004078E2 - ..starts b+2,1
_L 0x20407D24 0x0870630C
_L 0xE0010875 0x004078E2
_L 0x20407D24 0x087B1F0C
Ok, and now add b,f+2,1,d/f+2 but since we made a custom move for ZEN 1+2
its number is 0000 now, we need to use an extra condition to identify it
_L 0xE0060000 0x00407A18 - if a custom move
_L 0xE105000C 0x00407964 - if last two digits of this move is "0C"
_L 0x20407D10 0x0000000F - then after 15 frames of delay (because b+2,1 must have
time to hit)
_L 0xE001086A 0x004078E2 - starts b,f+2,1,d/f+2
_L 0x20407D24 0x087088DC
_L 0xE0010875 0x004078E2
_L 0x20407D24 0x087B44DC
_L 0xE01D0009 0x004078B4
_L 0xE0050004 0x20407940
_L 0xE0040300 0x00407D3C
_L 0xE00101C5 0x00407A18
_L 0x20407A18 0x000011C5
_L 0xE00101CD 0x00407A18
_L 0x20407A18 0x000011C5
_L 0xE00511C5 0x00407A18
_L 0x20407D10 0x00000000
_L 0xE001086A 0x004078E2
_L 0x20407D24 0x0870630C
_L 0xE0010875 0x004078E2
_L 0x20407D24 0x087B1F0C
_L 0xE0060000 0x00407A18
_L 0xE105000C 0x00407964
_L 0x20407D10 0x0000000F
_L 0xE001086A 0x004078E2
_L 0x20407D24 0x087088DC
_L 0xE0010875 0x004078E2
_L 0x20407D24 0x087B44DC
===================================================================================
=====================================
1. I know it the same like you do
I also have to find these empty areas and check them for a while
You can use 08A6000 only for short animations (empty addresses are ending about
08A7C00)
I didn't recommend it to use since usually we set 2000 or 1F00 bytes for copy (but
here's no more 1C00)
Most likely you can use the area from ~0906000 to ~0946000, it looks stable but i
didn't check it long enough
===================================================================================
=================================
Copy 8001 stance is even easier than copy a move
The only difference is that almost all 8001 stances have 32bit mocap data, it takes
much more space
_L 0xE01D08C0 0x204078E2 - if a stage is loaded
_L 0xE0030006 0x004081E4 - if P2 is Hwor
_L 0xE00200C8 0x10910000 - if Hwor's stance is not copied yet
_L 0x50B421B4 0x00004000 - copy 4 kilobytes (in hex) from Hwor's 8001
_L 0x00910000 0x00000000 - sorry, i forgot to say, i'm using the area from ~0906000
to 0910000 for Rage Attacks
_L 0xE01D0018 0x004078B4 - if P1 is Bruce
_L 0xE01D00C8 0x00910000 - if Hwor's stance is copied successfully
_L 0xE01D8001 0x00407A18 - if it's a default stance
_L 0x60407964 0x09110000 - pointer to set animation
_L 0x00020001 0x00000008
_L 0x60407964 0x00000032 - pointer to set length of move
_L 0x00020001 0x00000024
===================================================================================
=========================
@hepta_X_27
0910000 + 08800000 = 09110000 see the value when data is copied
Or see the value before the copying in the source area (0B421B4 + 08800000 =
093421B4)
No, length of copying is different for each animation
For 16bit mocap (99% of all) usually 2000 is enough (or even 1F00 if you wanna
leave 100 to build a move)
For 32bit mocap the length is very depends on quantity of frames
64 bytes for a "mocap introduction" and 114 bytes for each frame, Hwor's stance
takes 32 frames
64 in hex = 100 in dec
114 in hex = 276 in dec
32 in hex = 50 in dec
So, 276*50+100=13900
13900 in dec = 364C in hex, i just rounded it upwards to 4000
Since we usually take 2000 for copying, it's like we did it two times, from 0910000
to 0912000 and from 0912000 to 0914000
I would start the name of this code like this _C0 BRU(p2hwo910,912)
===================================================================================
===========================
@hepta_X_27
Ouh, it's very interesting idea since it has a string to Spinning Ball forward and
back
Allows to perform new cool combos
There are two ways how to do it - hard (write a script in the root) and easy (while
performing), let's make it easy
The main address here is 04079BC, it regulates did P1 hit an opponent and which the
opponent it was (P2, P0 or another)
If you set it to 0 like this
_C0 P1 Multihit
_L 0x204079BC 0x00000000
then P1 will multihit an opponent as many times as wide the range between
0407964=>4C and 0407964=>50
Ok, first of all let's force this move to hit an opponent at least once
_L 0xE01D0168 0x00407A18
_L 0x60407964 0x00000217 - mid rank
_L 0x00020001 0x00000010
_L 0x60407964 0x001A0014 - limbs for both hits
_L 0x00020001 0x00000048
_L 0x60407964 0x00000011 - hit time for both hits
_L 0x00020001 0x0000004C
_L 0x60407964 0x00000017
_L 0x00020001 0x00000050
The separation will be on 15th frame
_L 0xE0060015 0x20407940 - if it's less than 15 frames
_L 0xE002086A 0x004078E2
_L 0x60407964 0x086B5C1C - hit properties from b+2
_L 0x00020001 0x00000020
_L 0xE0020875 0x004078E2
_L 0x60407964 0x0876181C
_L 0x00020001 0x00000020
Before 15th frame is 1st hit, since 15th frame is 2nd hit
_L 0xE0070015 0x00407940 - if it's the 15th frame
_L 0x204079BC 0x00000000 - the system will think that u+1+2 was not hit yet
_L 0xE002086A 0x004078E2
_L 0x60407964 0x086B6048 - hit properties from d/b+1+2
_L 0x00020001 0x00000020
_L 0xE0020875 0x004078E2
_L 0x60407964 0x08761C48
_L 0x00020001 0x00000020
It's the main principle but in the result code i would add extra properties to make
it connect better
_C0 NIN B! Remover works for example only for 1+4; u/f+2,1 and f+4,3,3
_L 0xE01D0005 0x004078B4 - if Nina
_L 0x204085F8 0x00000000 - then B! works for all moves, but..
_L 0xE01D01B8 0x10407A18 - if not 1+4
_L 0xE01D0169 0x10407A18 - if not u/f+2,1
_L 0xE01D01DF 0x10407A18 - if not f+4,3,3
_L 0x204085F8 0xFFFFFFFE - then no B!
So this code will give B! (which will turn into B! Remover) only for specific moves
because "if not 1+4... then no B!" is a double denial which means "if 1+4... then
B!"
It's like a list of exceptions, i hope you understand
And btw, yes, you can write lines with move numbers here in a row
@hepta_X_27
But even with B! Remover his f,b+2,1 gives B! launcher if you do it on a standing
opponent
Ok, another way
Enable "Bound Remover" disable "P1 No Bound", and then
To add Remover
_C0 B! Remover LAR d+2
_L 0xE01D0028 0x004078B4
_L 0xE01D0001 0x00642990 - checker if B! Remover code is enabled
_L 0xE0030202 0x00407A18 - d+2
_L 0xE0020006 0x3040864C - if reaction is more than "6"
_L 0xE001000C 0x2040864C - and less than "C"
_L 0x20408654 0x08E43B30 - B! Remover
To remove Remover
_C0 no B! Remover NIN U/F+4
_L 0xE01D0005 0x004078B4
_L 0xE001019A 0x00407A18
_L 0x204085F8 0xFFFFFFFE
@hepta_X_27
Hm, indeed, B! Remover and F!=>BN reset all counters, why didn't i notice it
before.
Ok, it is time for a new version of B! Remover.
It keeps juggle counter and wall hit counter, though K! counter is still resets but
it will be fixed in the new K! version
About B! on some strings like Jin f,f+3,1,3~3 yes, it's a problem too
but B! Remover is a common code for all characters and all moves,
it cannot know which the B! must be replaced with laying down and which with the
one i made
It leaves B! for all strings which start on standing opponent
So the only way to fix it, is set the reactions for these moves manually
#######################################################################
1. There is no a way to disable rage if a character has less than 20hp (in dec).
At least i didn't find a way how to do it.
In Kazuya's Rage Art code i set hp to 21 (04078C0) and only after that i turned off
rage (0407B4E)
2. In the video it was just BN animation (0904F404)
I made it higher by editing 0407964=>8=>44 and 0407964=>8=>5C
But please don't edit the p0 animation itself, copy it to an empty place and then
edit it, ok.
Because it's a popular animation and someone might use it for another code.
I also decreased the speed and added spinning by 040823E like this
_L 0xE0010XXX 0x00408348
_L 0x30300400 0x0040823E - 400 is strength of spinning here, can be different
depends on the speed.
To make the spinning and speed more smooth i seems added frame conditions also
(0408270)
Don't remember already, it was long time ago, and i deleted codes then.
But i surely didn't do anything with 0408658 for f+1+2
####################################################################
1. Yes
0408658 takes 50 bytes (in hex)
0407964=>14 takes 20 bytes (in hex) for each string move
0407964=>38 takes 3 lines for each effect
0407964=>38=>0 - frame of start
0407964=>38=>4 - number of effect
0407964=>38=>8 - properties of the effect
Next effect will take 0407964=>38=>C, 0407964=>38=>10 and 0407964=>38=>14
If you meet three empty lines it means a separator.
I thought you succesfully got it when i saw your Lili RD test with omen sparks.
2. Hmm, yes, you're right, tailspin do not work with wall code.
Oh, that wall code, i'm just looking at it now and see how it bad.
It uses P0 animation, why did i make it with Dragunov activation. It's so stupid.
I planned to make a new version of wall code, personal for each character, but it's
a big work.
All what i now think about is "another kind" of codes, i'll explain later.
But if you wanna do it yourself then ok, you will make a better code than this one
anyways.
The same for 0407964/0408294=>20, it takes C bytes but might contain a few hit
states - on standing opponent, in the air, bound, clean hit, etc.
To find out the exact length you should check the value in 0407964=>20=>0
!!! The 18D value (on standing opponent state) must be the last one
0407964=>20=>0 - pointer to state
0407964=>20=>4 - damage in this state
0407964=>20=>8 - pointer to reaction set
And the same for 0407964/0408294=>38, it might contain as many slots for effects as
you want
###################################################################################
####
Oh, it looks very complexly, i didn't expect it.
And i'm very surprised that you use things which i didn't explain yet
For example heigth of reactions in 0407964/0408294=>20=>8=>30
Though you could do it by 04082D4, i like the way how you did it, it's more
correct.
In general it looks very good, really
###################################################################################
######
~D92~E07 area is empty but not stable, especially if you choose as P2 a character
with large move base (for example King)
###################################################################################
#######
Hi, sorry for long answers, i spend all my time to prepare a generator for replace
animations (from TTT2 to Tk6)
1. There is an address which regulates the distance of impacts in a process of
performing - 0408604, switch it to 0 when P2 meets a wall
2. The same like i did for K!
Pick an address which will work like a checker (in K! System it's 061F09C), for
example 09060E0
Then build such system
...
_L 0xE00X0000 0x009060E0
_L 0xRageDrives
...
_L 0xE0 any RageDrive
_L 0x209060E0 0x00000001
...
_L 0xE0020001 0x009060E0
_L 0xE0010000 0x00408330 - if it's not a combo
_L 0x209060E0 0x00000000
...
3. Just add the non-rage condition
_L 0xE00X0030 0x20407B4E
_L 0xJin Zen+3 (WS+3) code
###############################################################
In 0407964=>20 each three lines are one slot for reaction state, and each reaction
state has own damage.
If a move has default air reaction, then
0407964=>20=>4 - common damage
If a move has specific air reaction, then
0407964=>20=>4 - air damage
0407964=>20=>10 - standing damage
There might be a third slot and fourth and more, it depends on the move, you should
look at the number in 0407964=>20=>0=>0 to understand how many states this move
has, if the number is 18D then it's the last state (standing reaction)
Btw, i explained it on TZ already
#####################################################################
Even if these moves have the same last two digits on 0407964 (4C) they have
different last two digits on 04080EC (64 on electric CD+1 and 34 on b+3)
I don't see a problem here
But ok, you can use another way - get last four digits from 0407964 vs Paul and vs
Alisa
0xE004YYYY 0x00407A18
0xE001paul 0x00407964
0x20407A18 0xcustom number
0xE001alisa 0x00407964
0x20407A18 0xcustom number
#######################################################################
Build a throw from very beginning it's what i never did.
But ok, let's try
To make a perfect throw we should build it in the "minus" area but i meant we will
"kill" one of existing Kazuya's throw, and also it means to do a lot of difficult
work, so it's not a way.
We will build custom moves (main and reaction) which will look like a throw.
Add properties
0x20911008 0xheaven's door P1 animation
0x20911014 0x08E41AF0 - recovery to 8001 when move ends
0x20911024 0x00000070 - length 70 frames
0x20911038 0x00000000 - audio/visual effects for P1 (not necessary)
0x20912008 0xheaven's door P2 animation
0x20912014 0x08E42390 - recovery to 8009 (lie face down stance) when move ends
0x20912018 0x00008009 - visual recovery to 8009
0x20912024 0x00000070 - length 70 frames
0x20912038 0x09112800 - audio/visual effects for P2 we will add later
Audio/visual effects (as you remember each three lines mean one effect)
0x20912800 0x00000038 - the 38th frame is when they fall on the ground
0x20912804 0x00008050 - damage of the move performer
0x20912808 0x0000000F - for example damage is 15 (as 100%)
Adding all the rest effects is pretty creative work, you can take them from
0407964=>38=>... and from 0408294=>38=>... of the heaven's door, or create your own
0x2091280C 0x00000038
0x20912810 0x0000800F - effect of crashing the floor
0x20912814 0x00000001
0x20912818 0x00000038
0x2091281C 0x00008023 - red visual effect
0x20912820 0x00000004 - (limb)
0x20912824 0x00000038
0x20912828 0x000081E4 - sound base of the move performer
0x2091282C 0x01000027 - track number 1, sound number 27
#####################################################################
Yes, it's 80C7, good
They both fall with standing position because they have the same "inner body
positions" on =>C
I think while heaven's door P2 should have 7E06
And also i think P2 should turn on 180 degrees while floor break
0x00000001 - any frame from 1 to floor break
0x000080C8
0x00008000 - degrees (ex. 4000 is 90 degrees, 8000 is 180deg, C000 is 270deg, etc.)
Though better to do it by =>38 too, because P2 should start heaven's door with
standing position
0x00000010
0x00008091
0x00007E06
###################################################################
I've got the same problem with B! Remover,
have to build a custom juggle counter
I used 061F054 address for this, you can use it too
0xE002heaven's door
0x50408344 0x00000004
0x0061F054 0x00000000
Then
0xE002floor break
0x5061F054 0x00000004
0x00408344 0x00000000
##################################################################
Oh, yes, i forgot, It's a wall combo counter and it also resets on floor break
while heaven's door.
Have to build a custom counter also, i used 061F058.
Though i don't sure it is really necessary, in Tk7 after F! BN it looks like the
wall combo counter resets too
##################################################################
Lee Hitman 3 is not the best move for learning since it has a CH throw.
For now you better take a move which always returns to 8001.
The code's structure is not hard, the only new thing for you is
=>14=>8 - on-hit properties, where every TWO lines means one effect, it's the same
like in =>38 but without the first line (start frame) because it happens only on
hit
0x2090FF50 0x0000013C - ignoring opponents's attacks
Then there should be 0x2090FF54 0x00000000 but i missed it since it's already 0
And the last effect must be
0x0000018D
0x00000000
It's like a closing tag in HTML (or in BB codes on forums)
All the rest you already know
################################################################
There is one more free area which i know
I had plans with it for the future but i see you need it now
It's actually not empty, it's filled with 32bit mocap
061A488-061F060 - Paul 8001 stance
061F064-062FE4C - Seryoga 8001 stance (part1)
062FE50-0640C40 - Seryoga 8001 stance (part2)
But these animations are useless, so we can take this piece from 061A488 to 0640C40
for ourselves
###############################################################
Yes, there is a small area i used for K!, from 061F064 to ~0621300
Sorry, i forgot about it
@hepta_X_27
ok, it is time ))
"hold input" or "strong hit", it's pretty complicated thing (at least how they
composed it)
the main effect which switches a move to "strong" mode is 805C
this mode does not switch off by itself, we have to switch it manually
after this D1 condition checks if "strong" mode is on
that's all,
let's try it for Paul f+1+2, here's a simplified version
0xE00601E0 0x00407A18
0x60407964 0x09111000 - custom area for =>14
0x00020001 0x00000014
0x60407964 0x09112000 - custom area for =>20
0x00020001 0x00000020
0x60407964 0x09113000 - custom area for =>38
0x00020001 0x00000038
- - - - - - - - - - - - - - - -
=>14 area:
0x20911000 0x00000000
0x20911004 0x00000300 - if hold 1+2
0x20911008 0x09111100 - custom permissions #1
0x2091100C 0x08E423B0
0x20911010 0x00000004 - from 4th frame
0x20911014 0x0000000E - to Eth frame
0x20911018 0x00000004
0x2091101C 0x01108001 - disabled (none of moves will start)
0x20911020 0x00000000
0x20911024 0x00030000 - if release 1+2
0x20911028 0x09111200 - custom permissions #2
0x2091102C 0x08E423B0
0x20911030 0x00000004 - from 4th frame
0x20911034 0x0000000E - to Eth frame
0x20911038 0x00000004
0x2091103C 0x01108001 - disabled
0x20911040 0x00000000
0x20911044 0x00000300 - if hold 1+2
0x20911048 0x09111300 - custom permissions #3
0x2091104C 0x08E423B0
0x20911050 0x0000000E - on Eth frame
0x20911054 0x0000000E
0x20911058 0x0000000E
0x2091105C 0x01108001 - disabled
0x20911060 0x00008000 - recovery
0x20911064 0x00000000
0x20911068 0x08E410B8
0x2091106C 0x08E423B0
0x20911070 0x00000034
0x20911074 0x00007FFF
0x20911078 0x00000034
0x2091107C 0x01508001
if a slot does not lead to a new move then effects in permission area will work
every frame (inside the specified range of time)
- - - - - - - - - - - - - - - -
=>20 area:
0x20912000 0x09112100 - custom permissions (strong air)
0x20912004 0x0000001E - strong air damage
0x20912008 0x09116000 - strong air reactions
0x2091200C 0x09112118 - custom permissions (strong stand)
0x20912010 0x0000001E - strong stand damage
0x20912014 0x09116100 - strong stand reactions
0x20912018 0x09112108 - custom permissions (air)
0x2091201C 0x00000014 - air damage
0x20912020 0x09116200 - air reactions
0x20912024 0x09112110 - custom permissions (stand)
0x20912028 0x00000014 - stand damage
0x2091202C 0x09116300 - stand reactions
air reactions:
0x40916200 0x00070001
0x08E4147C 0x00000000
0x20916230 0x0000FE70 - height -190
0x20916234 0x000B0007 - front
0x2091623C 0x000B0007 - left
0x20916240 0x000B0007 - right
0x20916244 0x000B0007 - back
stand reactions:
0x40916300 0x00070001
0x08E414C4 0x00000000
0x20916334 0x01E101E1 - front
0x20916338 0x00ED00ED - CH
0x2091633C 0x00EB00EB - left
0x20916340 0x00EA00EA - right
0x20916344 0x00EC00EC - back
0x20916348 0x02A602A6 - block
0x2091634C 0x00BC00B9 - ground
- - - - - - - - - - - - - - - -
=>38 area
0x20913000 0x0000000E - on Eth frame..
0x20913004 0x000080BA - ..speed turns..
0x20913008 0x00001000 - ..to default
0x2091300C 0x00000016 - on 16th frame..
0x20913010 0x0000805C - .."strong" mode..
0x20913014 0x00000000 - ..is off
==========================================================================
if you have two animations then it's much easier, you no need the charging method
which i explained before
pity, usually in Tekken "hold input" moves have only one animation
ok, for example you set b+2 move on 09110000, b+2,1* on 09120000 and b+2,1 on
09130000
then i would apply them like this
0xE00101E7 0x00407D1C - if native b+2 move
0x20407D24 0x09110000 - then new b+2 move
0xE0050911 0x00407966 - if while new b+2 move
0xE0040000 0x00407964
0xE0030012 0x20407940 - if less 12 fremes
0xE1020001 0x00407D3D - if press 1
0x20407D10 0x00000012 - then on 12th frame..
0x20407D24 0x09120000 ..will start b+2,1*
0xE0050912 0x00407966 - if while b+2,1*
0xE0040000 0x00407964
0xE0030028 0x20407940 - if less 28 frames (it's original value)
0xE1020001 0x10407D3D - if don't press 1
0x20407D10 0x00000012 - then on 12th frame..
0x20407D24 0x09130000 - ..will start b+2,1
==========================================================================
For camera use 056F1F0, 056F1F4, 056F1F8 - point of camera position
And 056F200, 056F204, 056F208 - point of camera target
===========================================================================
3) 04082D4 regulates height of P2 in the air (not including launchers)
Line
_L 0x30300001 0x004082D6
Adds 1 to the first four digits of value on 04082D4 for each frame
(as you found, it depends on refresh rate)
================================================================================
04D434C=>9BA4380=>150=WAIST;270=NECK
WAIST1:
9BA4440
9BA4444
9BA4448
WAIST2:
9BA44D0
9BA44D4
9BA44D8
STOMACH:
9BA4560
9BA4564
9BA4568
NECK1:
9BA45F0
9BA45F4
9BA45F8
NECK2:
9BA4680
9BA4684
9BA4688
RIGHT SHOULDER1:
9BA4710
9BA4714
9BA4718
RIGHT SHOULDER2:
9BA47A0
9BA47A4
9BA47A8
RIGHT ARM:
9BA4830
9BA4834
9BA4838
RIGHT HAND:
9BA48C0
9BA48C4
9BA48C8
LEFT SHOULDER1:
9BA4950
9BA4954
9BA4958
LEFT SHOULDER2:
9BA49E0
9BA49E4
9BA49E8
LEFT ARM:
9BA4A70
9BA4A74
9BA4A78
LEFT HAND:
9BA4B00
9BA4B04
9BA4B08
RIGHT THIGH:
9BA4B90
9BA4B94
9BA4B98
RIGHT CALF:
9BA4C20
9BA4C24
9BA4C28
RIGHT LEG:
9BA4CB0
9BA4CB4
9BA4CB8
LEFT THIGH:
9BA4D40
9BA4D44
9BA4D48
LEFT CALF:
9BA4DD0
9BA4DD4
9BA4DD8
LEFT LEG:
9BA4E60
9BA4E64
9BA4E68
RIGHT FOOT:
9BA4EF0
9BA4EF4
9BA4EF8
LEFT FOOT:
9BA4F80
9BA4F84
9BA4F88
==========================================================================
Fingers:
1. In the root by =>38
2. While performing by
0x2040811C 0xVVVV0000 - right fingers
0x20408120 0x00SSRRRR
and
0x20408130 0xVVVV0000 - left fingers
0x20408134 0x00SSRRRR
VVVV - Value, from 3F800000 to 42300000, a "step" depends on the range:
from 3F800000 to 41000000 step is 00800000,
from 41000000 to 41800000 step is 00100000,
from 41800000 to 42000000 step is 00080000,
from 42000000 to 42300000 step is 00040000
SS - smooth time of transition from previous gesture to the current one.
RRRR - you no need it now
===================================================================================
=====
04078E0 regulates which movebase P1 has and shows where this movebase places
(Paul/Alisa system), values are:
086A8800 - the first area
08754400 - the second area
08E40CD0 - P0 area (P1 and P2 take it when a stage is not loaded)
Which areas characters will take depends on characters' numbers,
Who has a bigger number that take the first area.
For example you choose Yoshi vs Nina, Yoshi's number is 04, Nina's number is 05,
Her number is bigger so she will take 086A8800, Yoshi will take 08754400
We choose Paul and Alisa because Paul number is 00 (the first), and Alisa's number
is 29 (the last).
086A8800, 08754400 and 08E40CD0 are pointers to the first addresses of movebases
including all move properties (not including animations).
Well,
0x604078E0 0x08CB7000 (i will call it typeA)
0x00020001 0x000606E8
Is the same to
0xE002028C 0x00407A18 - d+1
0x60407964 0x08CB7000 (i will call it typeB)
0x00020001 0x00000034
Choose Jin vs Paul, do d+1, value on 0407964 is 08708EB4
We use it as a pointer with offset 34, so 08708EB4 + 34 = 08708EE8
Value on 04078E0 is 086A8800,
In typeA i used it as a pointer with offset 606E8, so 086A8800 + 606E8 = 08708EE8.
As i said it's the same but why i used typeA instead of typeB
Because if you change some move properties such as =>34 sounds, with typeB, the
changes will not work on the first time, only from the second.
But typeA allow you to apply changes instantly
===================================================================================
=
You cannot copy position from P1 to P2 and turn P2 on 180 degrees during only one
frame.
You should do it in two steps - one frame is copy, another frame is turning.
However, when i started to make RAtk system i was making it with four wall
reactions
Front - 09051600
Left - 0905D8B4
Right - 0905EE0C
Back - 0905C3DC
And i still sure it's the best way
There are even a few addresses which shows opponent's side near a wall 04083C4,
04083C8, 0408488 but i didn't use them.
I did a permanent wallsplat for each of stand and air reactions,
In Rage Drives the impact is so strong that it looks ok.
For example if PAU qcf+2 hits a back turned opponent in the air (like in the gif)
then opponent's reaction number is 1B
So,
0xE00?001B 0x00408348
0xE00?0001 0x00408388 - common P2 wall detector
0x20408640 0x00000000
0x20408654 0x custom move with 0905C3DC animation
=========================================================
_C0 JIN Rage (v2)
_L 0xE01D0009 0x004078B4
_L 0xE00C0001 0x00407D40 => if it's pre-battle mode ("Ready?", "Fight!")
_L 0xE0020052 0x00407C78 => if it's 52nd frame of current mode (now i prefer to use
04140B0)
_L 0x20407A18 0x00008000 => custom move number
_L 0x00407B4E 0x00000040 => rage is on
_L 0xE0080038 0x00407C78 => if it's 38th frame of current mode (it's like a timer)
_L 0x20407950 0x00000000 => then current move sets to 0th frame
_L 0xE0068001 0x00407A18
_L 0xE0021874 0x00407964
_L 0x20407964 0x087066D4
_L 0x20407968 0x087066D4
_L 0xE002D474 0x00407964
_L 0x20407964 0x087B22D4
_L 0x20407968 0x087B22D4
=================================
_C0 Cut of Time
_L 0xD0000002 0x10000200 - if press R button (right trigger)
_L 0x204140B8 0x0000000C - game mode is "pause" (everything freezes on the stage)
_L 0x6056F1E4 0x00000001 - camera unfreezes
_L 0x00000001 0x00000064
_L 0xD0000001 0x10000220 - if press R+right
_L 0x2056F284 0x3C100000 - camera flies to right around characters
_L 0x1015350C 0x00003F78 - with a little zoom in
_L 0xD0000001 0x10000280 - if press R+left
_L 0x2056F284 0xBC100000 - camera flies to left around characters
_L 0x1015350C 0x00003F78 - with a little zoom in
_L 0xD0000001 0x30000200 - if R button not pressed
_L 0x204140B8 0x00000016 - game mode is "practice"
_L 0x1015350C 0x00003F80 - default zoom
===========================================================================
yes, pointers from 049D550 to ~049D680 regulate P2 customize items
you can combine items there
for example set a head item as aura category (pointer)
http://sadamitsu.ru/other/image/yos2sh.jpg
or set three same items for different categories (pointers)
http://sadamitsu.ru/other/image/jin...e_hair_test.png
or even disable an item http://sadamitsu.ru/scr/alysa.jpg
Hei uses animation of Jin's intro from Arcade battle, for Nina and Anna i was
modifying the first frame of an animation while intro mode too.
because while intro/winpose modes characters can walk throught walls.
mig2.jpg: items are part of an animation only if value on first animation address
is 00190064, 001B0064 etc.
while MIG's 136th move (guitar item move) he has animation which starts with
00170064 (default kind), so, it's not matter of animation.
there is an area from 04BF290=>68 to ~04BF3B0 which shows pointers to customization
items of P1.
btw, Master Raven's RA throw starts with 001B0064,
so if you equip Christie or Nina (or whom you use as Master Raven) with Naginata
and change scale of item then... i think there is a way to use it as her sword
don't ask me how to do it ))) i just guess