byte 04 seems to have similar functionality to byte 06
btw trying to copy and paste 2lp or 2mp data onto 2hp doesnt result in anything useful (the first freezes sagat, the second just is 2hp but invisible)
byte 04 seems to have similar functionality to byte 06
btw trying to copy and paste 2lp or 2mp data onto 2hp doesnt result in anything useful (the first freezes sagat, the second just is 2hp but invisible)
i think i got the length of 2lp wrong before lol. you can tell where one move ends because there’s always the string
0000 0000 0000 0000 0000 0000 0000 0000 0200 0000 XX00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
with ‘XX’ being 00-07 i think (didnt check all the moves)? after that is the next move. i substituted sagats 5mp for 5lp like this and…got 5lp when i press mp
ok this is weird. substitute this part of 2lk
0000 0600 0000 0000 0000 0000 0000 0000 0102 0000 0100 0000 0000 0400 0000 0100 0B00 0C00 1000 1100 2400 2500 0000 0000 0000 4040 0000 803F 0000 4040 0000 803F 0100 0F00 0C00 0F00 0000 0000 0000 0000 0301 0000 0600 0000 0000 0040 0600 0000 0000 0F00 0C00 0F00 0000 0000 0000 0000 9A99 993F 0000 0000 0000 0000 9A99 993F 0000 0000 0000 0000 00FF 0000 0000 00FF 0100 0000 0000 0000 0000 0000 3333 B3BE 9A99 19BE 0000 0000 CDCC CC3E CDCC 4C3E 0000 0000 01FF 0102 0000 0AFF 0100 0101 1E00 0000 1E00 0000 0000 0F00 0000 0F00 0000 0000 0000 0000 0000 0000 0000 0000 0100 0000 0900 0000 0300 0000 0900 0000 0000 0F00 0000 0C00 0C00 0F00 0000 0000 CDCC CC3D 0000 0000 0000 0000 0000 003F 6666 263F 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 CDCC 4C3E CDCC 4C3E 0000 0000 0300 0000 0000 0000 0000 003F 0000 40BF 0000 0000 0000 803E 9A99 993E 0000 0000 0300 0000 0000 0000 0800 0900 0900 0A00 0000 0000 0000 0000 0000 0100 0B00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0200 0000 0500 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
to the same number of bytes at the end of 5lp…it gives 5lp 2lk’s hitbox except it will whiff from ranges where 2lk wouldnt. i guess hitboxes are bound to limbs?
yeah based on the “ryu what’s wrong” stuff you found earlier it would make sense… though as design choice on capcom’s part i’m not sure it makes much sense lol.
i wonder if flags for throw invincibility and such would be here too, if so sweet we can make people not be able to jump out of throws
the flag for the direction you have to block a move, at least for all the moves i checked, is at 01B6 in the move block…not sure if the variable length stuff plays a role here.
0100 = can block high/low
0101 = must block high
0102 = must block low
didnt test any other values yet cause i dont feel like making the game crash right now haha
after the ‘0000 0000 0000 0000 0000 0000 0000 0000’ about 1/3 of the way down one of these blocks, another 16 bytes after that… these values affect startup and recovery in some way. for example in sagats 2HP data:
0B00 0C00 1300 1400 1800 1900 3000 3100
lowering ‘1300’ = longer startup, but lowering ‘1800’ = longer recovery iirc . the other values i dont really understand, other than they seem to have a more general effect on the overall speed of the move.
hey lol http://www.eventhubs.com/news/2010/jan/04/videos-show-what-can-be-done-hacked-pc-sf4/
actually looking at the comments there looks like you already saw it heh
0xB2 relative to the start of sagats walk forward animation data changes his walkspeed :D. i suspect you might find a similar value is related to forward movement in other moves.
[media=youtube]CbAJp70bjW4[/media]
also
WALK SPEED? OH HELL YES THANK YOU
goes to recreate SF2: Rainbow Edition balrog’s hyperfast walkspeed
edit: btw i always get weirded out when everyone here (you do and gojira does) counts starting from 1 instead of from 0 but i guess i’m the weird one in this case
edit: in the block low/high bytes throw_f has 0700, putting it on c.lp makes c.lp not hit (no block or hitstun at least nothing)…
06 crashes the game.
edit: i speculate that MAYBE this is because the animation if its a throw needs to specify what animation the thrown person would have and that is specified here? because its not specified in the hit data for sure so idk maybe
do you understand how the value for walk speed is expressed? cause i cant get it to do what i want at all lol
edit: nvm i think i get it now :S
it seems like how every other 4 byte number relating to position in this file has been stored ( i think it’s 4 bytes?)
you’re aware it’s Signed. meaning that if you change “a69bc43c” as it’s listed in the file (3cc49ba6)
to “a69bc4bc”, it’s actually -3cc39ba6… is that not how it’s working? i haven’t messed with it too much yet heh
i think it’s 2 bytes, but yeah i have pretty much no clue how signed values work in hex so :I
i’ve got it to do what i want through trial and error but it was kind of a pain
it might be 2 bytes but i find it more likely that it’s 4 because all other positional numbers (in the hit data at least were 4) just the last 2 bytes worth of digits were so small that not very perceptible. on the other hand the first byte always tended to be “3C” with pushback and such because 4c is so huge that he teleports and 2c is probably extremely extremely slow. so sagat’s walking speed is in line with the same type of numbers as the pushback and etc
as far as how signed-ness works i just go on windows calculator type in the hex number like “3c” then go to bin and add 1000 0000 (making the first bit 1)… actually it’d be easier to just add 80 hex (128 decimal) to it
setting walking forward and backward byte 06 to 08 from 48 results in basically no animation while walking (no gameplay effect but it looks funny)
04000400 on dash…
video: [media=youtube]U4n3YI3QSOg[/media]
edit:
stuff for JUMP (77B190)
at 276 is 4 byte signed big endian gravity value (or jump height depending on how you look at it really). default value is A69B44BC.
same for JUMP_F (77B630)… default here is A69B44BC (same)
at 256 as well is forward distance distance / velocity something like that default is AE47613D
gonna go see if moves like tiger knee have something like this?
edit
yes tiger knee definitely does
for 397. KNEE_H (11C20) @ 78AC60
416 - horizontal velocity around first hit (still on ground?) default 295C8F3D
448 - horizontal starting velocity default 8FC2F53D
452 - vertical starting velocity rising (that’s why default is positive) EC51383E
460 - ? defaults to 11.
462 - ? defaults to 11.
464 - horizontal acceleration 6F1203BB “air resistance” i would say as by default the tiger knee slows as it moves.
468 - vertical accel, default 0AD7A3BC. gravity
note: if gravity does not put sagat close enough to the ground to make him land by the end of tiger knee animation the
tiger knee landing animation (398. KNEE_H_LAND) cannot play causing sagat to freeze on the last frame like a dumbass forever
(very ungraceful on the part of capcom imo, they really should put in a backup plan that forces a teleport to the ground or just waits
till they land so that things don’t fuck up but no they have to choose a non graceful way to handle errors like that)
gonna look at tiger shots
goddamn i hate how slow the new forums are makes updating / f5ing the thread so much harder
i changed all values of ‘0300’ to ‘0000’ in the throw block and i made throws have 0 startup (meaning you cant jump out). it also made you disappear if the throw whiffed though so might have to find hte exact value
edit: damn nice finds!
Now, I have not seen this anywhere, but is it possible to change the character’s in-game name… Like if we have the Guile- as Solid Snake- costume or something, can we, (if we use the same-type font and all) change the in-game name to ‘S.Snake’ or something?
Thank you,
Hmmm…
@ sirlinfan, hey you realize the reason throws are possible to be jumped out of unlike ST is that jump startup is throw invincible on sf4? so even if the throw is 0 frames if they tick off a move and throw on the perfect first frame you are out of blockstun, you can still jump out by holding up because on that same first possible frame the jump startup will start and be throw invincible. the jump startup is like somewhere between 1-4 frames I’m not sure on the exact number but it’s there… and it’s got throw invincibility. 0 frame throws would be cool too though. i didnt realize we knew how to change startup as well already… if so i’m off to make sagat 1 frame startup crouching fierce just to laugh like a maniac on training mode for 5 minutes and then change it back once i realize how stupid it is even in rainbow edition
also
513. VFX_TIGRE_L (15cf0) @ 78ED30
192 - horizontal velocity default (8FC2753D)
196 - see below… defaults to 00000000
204 - i dont really know, defaults to 01… see the part below
206 - i dont really know, defaults to 00…
208 & 212 - okay. so these by default are both 4 bytes of 0000. if mirroring tiger knee i put in a number, say 8FC2753D in both, I get no change.
but then I set 206 to 11, mirroring the 460 and 462 of tiger knee and then set these two to a number, say 8FC2753D… it changes now. now the tiger shot accelerates uf diagonal. if I set 204 to 11, now 196 becomes starting vertical velocity where before it did nothing even if you put a number in. interesting… dunno why you need to turn these to 11 to make it work though. i wonder if this has any other effects. 01 in binary is just 0000 0001, but 11 is 00010001… i wonder if there are other on/off flags in these two bytes.
btw the tiger shots have an effect where pebbles+dust comes out and a slight hissing impact sound when it hits the ground like they planned for this WTF?
yeah i think i must have imagined the throw thing? i swear it was workign earlier and i saw it when i played back the footage frame by frame in vdub but i guess i capped and tested it badly? whatever…
we’re nearing the point where i need to start writing a tool to deal with this stuff
the more we’re finding out the more i’m going crazy with ideas… we have to figure out how to add animations, that will be one my next goals during next week (for now I have to make a rainbow edition rufus, a friend is coming in town on sunday or saturday who plays rufus among other characters and i want to playtest w/ him). i will try to write a simple program that will say, increase an animation block by a few bytes of 00s and then adjust all the pointers correctly and make sure the game still works… we just need to make sure we find all the pointer blocks.
a major assumption i have: we’re still missing an important block or two in the BCM section. what controls if a move input counts as a “special” or not ? where is meter cost determined?
I think a great many things are possible to implement using the cmn.emz file and I think we are getting closer and closer to my goal of giving someone 8way airdash rofl
i made a ryu.cmn.emz that expands the #BAC section by 1024 bytes at the end. it’s just a matter of changing all the pointers in the emz header. moves that are cancelable actually have more data in them so it’s kind of necessary in order to change that… more on this when i’ve tested more stuff lol