• Welcome to Smashboards, the world's largest Super Smash Brothers community! Over 250,000 Smash Bros. fans from around the world have come to discuss these great games in over 19 million posts!

    You are currently viewing our boards as a visitor. Click here to sign up right now and start on your path in the Smash community!

Crazy Hand v1.31 - Character editing program

Achilles1515

Smash Master
Joined
Jun 18, 2007
Messages
3,211
Location
Cincinnati / Columbus OH
yea it doesn't allow me to edit the hitbox data at all
offset
0x48cc in PlGn.dat

Is the "E8" command documented?

@ Ampers Ampers , idk wtf E8 does, but it looks to be 0x10 in size. Put that in your program, and then it will show things correctly for Ganon's utilt and any other moves that use this command.

What do you have as the current size for this command? I'm assuming it's less than 0x10 and then reading a 0x00 command byte which tells it is the end.
 
Last edited:

Ampers

Smash Journeyman
Joined
Feb 2, 2015
Messages
237
Location
St. Louis, MO
What can you not edit? Hitbox data?
If you view the subaction for Ganon's uptilt in Crazy Hand (or Master Hand) only two scripts appear:

a sound script:
44 04 00 00 00 00 00 A6 00 00 7F 40

and a script starting with "E8", which CH and MH each have labeled as unknown.
E8 00 00 45

As I was writing this, I actually discovered what the issue is, and apparently both Crazy Hand and Master Hand have this issue.
The problem comes from two design choices made when designing CH and I guess the same holds true for MH:
1) Any unknown script is assumed to be 4 bytes long.
2) A sequence of 00 00 00 00 read at the beginning of a script is assumed to be the ending point of the subaction.

this unknown "E8" script appears to actually be 16 bytes long. Is this particular situation, the entire thing looks like this:

E8 00 00 45 00 00 00 00 00 00 FF FF 00 3C 00 00

CH reads the unknown script and assumes it is only 4 bytes long, therefore only reading E8 00 00 45. The next script it tries to read is 00 00 00 00, which tells it this is the end of the subactions, when in fact it is not! It ends up ignoring everything else that comes after this.

I checked in a hex editor and as it turns out you can find all of the data that gets ignored after this point, including all of the hitboxes, timers, etc...


I will make a quick fix to Crazy Hand this week to fix this issue so Ganon's uptilt will be editable in CH.

Additionally, does anybody know what this "E8" script is used for?




Edit: Looks like Achilles noticed this too as I was typing haha
 
Last edited:

Tater

Smash Journeyman
Joined
Apr 10, 2014
Messages
201
Location
Socal
NNID
Taternater
3DS FC
2406-5307-2936
If you view the subaction for Ganon's uptilt in Crazy Hand (or Master Hand) only two scripts appear:

a sound script:
44 04 00 00 00 00 00 A6 00 00 7F 40

and a script starting with "E8", which CH and MH each have labeled as unknown.
E8 00 00 45

As I was writing this, I actually discovered what the issue is, and apparently both Crazy Hand and Master Hand have this issue.
The problem comes from two design choices made when designing CH and I guess the same holds true for MH:
1) Any unknown script is assumed to be 4 bytes long.
2) A sequence of 00 00 00 00 read at the beginning of a script is assumed to be the ending point of the subaction.

this unknown "E8" script appears to actually be 16 bytes long. Is this particular situation, the entire thing looks like this:

E8 00 00 45 00 00 00 00 00 00 FF FF 00 3C 00 00

CH reads the unknown script and assumes it is only 4 bytes long, therefore only reading E8 00 00 45. The next script it tries to read is 00 00 00 00, which tells it this is the end of the subactions, when in fact it is not! It ends up ignoring everything else that comes after this.

I checked in a hex editor and as it turns out you can find all of the data that gets ignored after this point, including all of the hitboxes, timers, etc...


I will make a quick fix to Crazy Hand this week to fix this issue so Ganon's uptilt will be editable in CH.

Additionally, does anybody know what this "E8" script is used for?




Edit: Looks like Achilles noticed this too as I was typing haha
I'll play around with it some and see if I can figure out anything about it.

EDIT: Little update on this. Looks like at least part of this script is used for charge time and either animation speed, or something similar..
EDIT 2: Nevermind. The only thing that's consistently changed with this format that I've found is that you can change how drastically his cape moves by editing any of the bytes in it (Higher values=weirder cape, lower values=normal cape.) Removing the script as a whole doesn't appear to change anything visually or mechanically.
(Default data for Ganon's uptilt)
E8 00 00 45 00 00 00 00 00 00 FF FF 00 3C 00 00

(Modified data for Ganon's uptilt)
E8 00 00 45 00 00 00 00 00 00 CC AA 00 3C 00 00

His cape looks so angry in the second gif.

End edit.


On a related note, I've noticed that there are definitely other unrecognized scripts floating around. Take a gander at Mewtwo's Jab 1. There's several scripts 4 bytes long with what appears to be data for a whole separate function.

Off topic, does anyone know where subaction interrupt functions are stored in start.dol for v1.02? I found the post Magus made explaining how to edit them, but the offsets are for v1.00, and my own attempts to change things haven't been fruitful.
 
Last edited:

oksas

oak-sauce
Joined
Apr 12, 2011
Messages
458
Off topic, does anyone know where subaction interrupt functions are stored in start.dol for v1.02? I found the post Magus made explaining how to edit them, but the offsets are for v1.00, and my own attempts to change things haven't been fruitful.
this makes me very happy :D

that you're searching, that is, not that your attempts haven't been fruitful haha
 
Last edited:

MagicScrumpy

Smash Journeyman
Joined
Feb 25, 2015
Messages
251
Location
Ann Arbor, Michigan
Here are a couple of ideas:

1) Are you trying to run the file from the .zip it comes in? If so, extract everything to a folder.
2) Did you only extract the .jar? If so, extract everything in the downloaded .zip to a folder.
 
Last edited:

Sir Bubbles

Smash Journeyman
Joined
Jul 11, 2014
Messages
233
Location
East Brunswick, NJ
Here are a couple of ideas:

1) Are you trying to run the file from the .zip it comes in? If so, extract everything to a folder.
2) Did you only extract the .jar? If so, extract everything in the downloaded .zip to a folder.
Yeah, I did all that, but now my problem has been fixed. Thanks anyways!
 

Achilles1515

Smash Master
Joined
Jun 18, 2007
Messages
3,211
Location
Cincinnati / Columbus OH
Regarding the "7C" command,

Character - Link

7c080001 = sword in sheath
7c100001 = shield on back

7c080000 = sword in hand
7c100000 = shield in hand (I didn't actually see this one being executed but it will probably work)

-----------------------------
I know the 7C command is used for other characters, but I haven't documented anything else at the moment.
 

Tater

Smash Journeyman
Joined
Apr 10, 2014
Messages
201
Location
Socal
NNID
Taternater
3DS FC
2406-5307-2936
Regarding the "7C" command,

Character - Link

7c080001 = sword in sheath
7c100001 = shield on back

7c080000 = sword in hand
7c100000 = shield in hand (I didn't actually see this one being executed but it will probably work)

-----------------------------
I know the 7C command is used for other characters, but I haven't documented anything else at the moment.
Good find c: I actually remember playing around with this format a little(Found it on link as well during my projectile research phase, thought it might have had something to do with his bombs/arrows.) but I didn't fully understand the format.

I wonder if that same format is in animations...
 

TerryJ

Smash Journeyman
Joined
Apr 12, 2010
Messages
488
Location
BEST COAST, WA
NNID
1337-1337-1337
3DS FC
1337-1337-1337
Regarding the "7C" command,

Character - Link

7c080001 = sword in sheath
7c100001 = shield on back

7c080000 = sword in hand
7c100000 = shield in hand (I didn't actually see this one being executed but it will probably work)

-----------------------------
I know the 7C command is used for other characters, but I haven't documented anything else at the moment.
Damaging shield moves for SD Remix when?
 

Ampers

Smash Journeyman
Joined
Feb 2, 2015
Messages
237
Location
St. Louis, MO
Hey folks, sorry I didn't do this sooner but here's a very slight revision to Crazy Hand:

Crazy Hand v1.21

All that's new is it recognizes the "E8" command and measures its length properly. This means Ganon's utilt is now editable.
 

oksas

oak-sauce
Joined
Apr 12, 2011
Messages
458
wanted to say again that this program is amazing. thank you guys for putting this together. I probably should have said this earlier since you just posted a new version, but it would be awesome if the DC command (0x12 in size I think) for combined sound effect and graphic effect to be added. it's documented in Itaru's first thread, on page 2 currently, though I think it was discussed earlier in this thread too. also, on one of my computers I've encountered wonky interface-not-updating problems when switching to the fsm tab. been fine on my other computer I think though
 

Tater

Smash Journeyman
Joined
Apr 10, 2014
Messages
201
Location
Socal
NNID
Taternater
3DS FC
2406-5307-2936
wanted to say again that this program is amazing. thank you guys for putting this together. I probably should have said this earlier since you just posted a new version, but it would be awesome if the DC command (0x12 in size I think) for combined sound effect and graphic effect to be added. it's documented in Itaru's first thread, on page 2 currently, though I think it was discussed earlier in this thread too. also, on one of my computers I've encountered wonky interface-not-updating problems when switching to the fsm tab. been fine on my other computer I think though
I've got a couple of bugfixes on my to-do list, so I'll lump recognition of the DC command in with them for the next small patch.


On an unrelated note, I've been working on understanding the character animation file format, and it is just a pain in the ***. That being said, I have managed to learn a few facts about it:

At the start of animations(Maybe it's the header of each individual animation?), the format appears to be

00 00 II II 00 00 JJ JJ 00 00 00 AA 00 00 00 VV
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Keys:

I - Identifier of some kind?
J - Identifier separate but possibly linked to I? They have similar values in most animation entries.
A - Animation type? Changing it doesn't appear to do much.
V - Animation type value? seems to always be 01.

At the end of animations, format is

00 00 00 00 to signify that the animation is finished (In a similar fashion to a subaction) followed by: CHARIDENTIFIER_Share_ACTION_(NAME)_figatree

For example: PlyKoopa5K_Share_ACTION_WalkMiddle_figatree

This is followed by 0x00 and then a seemingly arbitrary number of bytes containing FF. FF lines are at a minimum 4 bytes in length, (Whoops, that was outdated data I hadn't deleted from my notes yet!) FF lines always end on a byte divisible by 4 as is the habit of the HAL dat file format.

Example of a full animation end:
  • 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

  • 00 00 00 00 50 6C 79 4B 6F 6F 70 61 35 4B 5F 53
  • 68 61 72 65 5F 41 43 54 49 4F 4E 5F 57 61 6C 6B
  • 4D 69 64 64 6C 65 5F 66 69 67 61 74 72 65 65 00
  • FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
  • FF FF FF FF FF FF FF FF FF FF FF FF
ANSI value for the above hexadecimal is

....PlyKoopa5K_Share_ACTION_WalkMiddle_figatree.ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ

0x48 bytes in size.

Editing the value of FF bytes appears to have no impact on the animation. Possibly, changing the amount of lines before the definition of the next animation definition will do something, but I haven't tested that yet. It's most likely just filler to keep everything looking neat and organized.

Since the name of an animation is called as the final segment of data for it, that means the data below the name of one animation is the start of the NEXT animation's data. That confused me for a while.

There definitely appear to be animation "scripts", so to speak, but experimenting with them has been inconsistent.


And when "Made Bowser flip me off somehow" is the best result I've gotten so far, it speaks to how I feel working on this.

I've plugged in a couple classes to CrazyHand that will read a character's animation file and organize/display the data by each animation name with a drop-down list to choose them all from, and you can edit and save the data, but I haven't made much sense of the actual data so far.
 
Last edited:

oksas

oak-sauce
Joined
Apr 12, 2011
Messages
458
awesome stuff man. really great to see you digging so deep into this. lol @ the bowser gif. sounds like some pretty tedious work, but you're doing the community a huge favor by doing all this.
 

oOSuperMarioOo

Smash Rookie
Joined
May 21, 2015
Messages
6
Would it be possible for you to add the ability to also change subaction data when you use "Randomize ALL Characters" in Crazy Hand? That would really make the program "crazy".
 

Ampers

Smash Journeyman
Joined
Feb 2, 2015
Messages
237
Location
St. Louis, MO
@ oOSuperMarioOo oOSuperMarioOo

Actually, that's what it is supposed to do haha. At one point it did that properly, but then somewhere along the line the code for that broke with the addition of new features. @ Tater Tater and I haven't been able to figure out why yet. I plan to look into it more in the future.
 
Last edited:

Tater

Smash Journeyman
Joined
Apr 10, 2014
Messages
201
Location
Socal
NNID
Taternater
3DS FC
2406-5307-2936
@ oOSuperMarioOo oOSuperMarioOo


Actually, that's what it is supposed to do haha. At one point it did that properly, but then somewhere along the line the code for that broke with the addition of new features. @ Tater Tater and I haven't been able to figure out why yet. I plan to look into it more in the future.
I decided to take another look, and I figured out why(At least, kinda. Lots of trial and error). Randomization of hitboxes is *almost* functional. Right now everything works fine until the randomizer hits Peach and then it throws an OutOfMemoryError. I'm pretty sure I know why this is happening and will edit this post once I fix it.

And actually, while I'm here, I'd like to get a vote on *how* random you guys want characters to be. Should the randomizer potentially give characters hitboxes way larger/smaller than their bodies, effect timing of hitboxes on attacks, and things of that nature, or should it go for a more "normalized" approach where characters are still random but their data is more even/logical?

I'm not saying it's a choice between one or the other forever, but for now which one is more wanted?



EDIT: Forgot to mention, fixed the error a while ago. Everything works now.
 
Last edited:

oksas

oak-sauce
Joined
Apr 12, 2011
Messages
458
I'm having some trouble with new hitbox creation... it seems to be fine when I just modify existing hitboxes, but when I make a new hitbox, every time I hit the save button, the "hitbox interaction" property resets to 0 D:
 

Tater

Smash Journeyman
Joined
Apr 10, 2014
Messages
201
Location
Socal
NNID
Taternater
3DS FC
2406-5307-2936
I'm having some trouble with new hitbox creation... it seems to be fine when I just modify existing hitboxes, but when I make a new hitbox, every time I hit the save button, the "hitbox interaction" property resets to 0 D:
This is actually a known bug, and an oversight on my part. I'm releasing a small patch tomorrow that will fix character randomization and this issue as well.
 

oksas

oak-sauce
Joined
Apr 12, 2011
Messages
458
awesome. looking forward to it :D

found another bug. the sound effect script seems to require 7F 40 at the end of it for the sound to actually play, but the sound effect script generated by Crazy Hand itself just has those last four digits as 0s. took me forever before I realized this... explains all the problems I had with character sounds suddenly not playing anymore. so, to clarify, the empty sound effect should be like this:

44 00 00 00 00 00 00 00 00 00 7F 40
but Crazy Hand generates it like this:
44 00 00 00 00 00 00 00 00 00 00 00
I've also seen a number of sound scripts in the game that start with 44 04 instead of 44 00... doesn't seem to affect whether or not the sound plays, though. Itaru noted this in his effects thread too, saying he wasn't sure what it actually did
 
Last edited:

oOSuperMarioOo

Smash Rookie
Joined
May 21, 2015
Messages
6
One thing I'm interested about this program is the ability to enable "Turbo Mode" by editing the attacks using Crazy Hand; however, the only thing I'm able to change are normal, smash, and aerial attacks. I'm unable to cancel special attacks possibly because it's located somewhere else in SSBM files. If you have the time, is it possible for you to add the ability to cancel special attacks? I would appreciate it if you do.
 

oksas

oak-sauce
Joined
Apr 12, 2011
Messages
458
One thing I'm interested about this program is the ability to enable "Turbo Mode" by editing the attacks using Crazy Hand; however, the only thing I'm able to change are normal, smash, and aerial attacks. I'm unable to cancel special attacks possibly because it's located somewhere else in SSBM files. If you have the time, is it possible for you to add the ability to cancel special attacks? I would appreciate it if you do.
hey man, I would actually recommend you check out some of the more recent posts in this thread as there's some discussion about cancelling special moves. it's not quite as straightforward as cancelling normal attacks, unfortunately :\ definitely do-able though. we know how to easily make a move jump-cancellable, thanks to achilles and Stratocaster, but I don't know if there's anything concrete documented otherwise, in terms of cancelling special moves. actually, @ MagicScrumpy MagicScrumpy , how in the world did you make that Fox video where he could cancel his side-b into anything? the video description mentions sharur finding some stuff on special moves; would you be willing to share any of that info?
 
Last edited:

oOSuperMarioOo

Smash Rookie
Joined
May 21, 2015
Messages
6
hey man, I would actually recommend you check out some of the more recent posts in this thread as there's some discussion about cancelling special moves. it's not quite as straightforward as cancelling normal attacks, unfortunately :\ definitely do-able though. we know how to easily make a move jump-cancellable, thanks to achilles and Stratocaster, but I don't know if there's anything concrete documented otherwise, in terms of cancelling special moves. actually, @ MagicScrumpy MagicScrumpy , how in the world did you make that Fox video where he could cancel his side-b into anything? the video description mentions sharur finding some stuff on special moves; would you be willing to share any of that info?
Thanks for the tip. I hope they add the feature to easily add mods from Start.dol, depending on the version of the game you're trying to modify.
 

Tater

Smash Journeyman
Joined
Apr 10, 2014
Messages
201
Location
Socal
NNID
Taternater
3DS FC
2406-5307-2936
Alright, it's a little late in the day but I've pushed a bugfix release for Crazy Hand.

Patch notes:
-Fixed bug with newly created Sound Effect scripts not behaving properly.
-Fixed bug where "hitbox interaction" values were not saving.
-Fixed randomization not randomizing hitboxes.
-Increased randomization speed(From what it was originally with hitboxes; I'll be a little slower compared to the previous version since it actually has to randomize hitboxes :p)

-Added randomization parameters for LoopScript and SynchronousScript. Both will set their value somewhere between 0.5x to 1.5x their normal values, meaning attacks can be faster/slower, hitboxes can come out on different frames, and attacks with loops(Such as Zelda's jab, Ness's fair/back throw/dash attack/... Ness has a LOT of loops, actually.) will execute that loop less or more than default.

-Added "ISO Patches" menu. At the moment, it only contains one code(With thanks to @Dan Salvato for the code :))
Each ISO patch can be applied or removed, and will inject the chosen code into the ISO. This was a concept I was toying with, and I had already finished the basics of it so I decided to throw it in this release as a small bonus and a peek at things to come.

Download is below
http://www.mediafire.com/download/ik5v0bxdfeypxix/Crazy+Hand+v1.22.zip

Enjoy :)
 

oOSuperMarioOo

Smash Rookie
Joined
May 21, 2015
Messages
6
Thanks for the update, @ Tater Tater . By the way, I've found an idea of what @Dan Salvato can add to ISO patches. He could try adding the DOL code for Turbo Mode; it'll allow you to cancel a move to another move at any time, even if you aren't near the opponent. Won't that make it more crazy in Super Smash Bros. Melee?
 

oksas

oak-sauce
Joined
Apr 12, 2011
Messages
458
as always, thanks for the update. very handy just having those two hitbox and sound effect fixes in there.

I don't think I mentioned this before but, would it be possible to display the subaction IDs (value-wise) next to their names somewhere? this is based on my assumption that whatever the program does to find and separate out all the subactions also is able to identify their IDs, not sure if my perception of how it works is entirely accurate though. I suppose the easiest thing might be to have the ID next to the name in the animation swapping section, or something?
 

Tater

Smash Journeyman
Joined
Apr 10, 2014
Messages
201
Location
Socal
NNID
Taternater
3DS FC
2406-5307-2936
as always, thanks for the update. very handy just having those two hitbox and sound effect fixes in there.

I don't think I mentioned this before but, would it be possible to display the subaction IDs (value-wise) next to their names somewhere? this is based on my assumption that whatever the program does to find and separate out all the subactions also is able to identify their IDs, not sure if my perception of how it works is entirely accurate though. I suppose the easiest thing might be to have the ID next to the name in the animation swapping section, or something?



I always make the subactions (All) menu like that in my dev builds and take it out for releases because it isn't very pretty looking. I'll have it be a toggle next time I push an update(Which won't be for at least a week, depending on the scope of what I hope to do before another release, and considering that we've released two updates two days apart lol.)

The ID's listed using this method may be slightly off, however. I'll investigate it in further detail closer to a release date.

Fun fact: The data displayed in Bowser's WallDamage(0) subaction is actually the last part of his Flame Breath hitbox(@0x412C). Looks like we might have some ironing out to do there :)
 

QuickLava

Smash Journeyman
Joined
Nov 30, 2013
Messages
361
Location
Somewhere in the Aether....
Hey, anyone know how exactly you'd go about removing the hitboxes on Fox/Falco's Side-B? I've "removed" other hitboxes before by listing their effect as "Empty" in Crazy Hand, but I can't seem to locate the hitbox data for those moves at all. Any advice?
 

Ampers

Smash Journeyman
Joined
Feb 2, 2015
Messages
237
Location
St. Louis, MO
I believe that phantasm/illusion are treated as projectiles in the game, not just a standard hit (the blue trail they leave behind being the projectile). Unfortunately I don't know where the data for that projectile is located though.
 

Abyssal Lagiacrus

Fly across the high seas and mountains
Joined
Jul 30, 2014
Messages
1,698
Location
Arkadelphia, Arkansas
NNID
LugiaTheGuardian
3DS FC
2981-6257-4399
Will it ever be possible for "Randomize ALL Characters" to randomize things like effects on moves (like falcon's knee having a dark effect or yoshi's egg throw having a fire effect, etc.) and perhaps switching animations too? That would be incredibly funny if it worked properly.

Also, does the randomize feature also randomize each character's "Character specific" attributes like their special moves?
 
Last edited:

Achilles1515

Smash Master
Joined
Jun 18, 2007
Messages
3,211
Location
Cincinnati / Columbus OH
Hey, anyone know how exactly you'd go about removing the hitboxes on Fox/Falco's Side-B? I've "removed" other hitboxes before by listing their effect as "Empty" in Crazy Hand, but I can't seem to locate the hitbox data for those moves at all. Any advice?
Phantasm Hitbox Data

Fox (PlFx.dat)
0x40c4 - Grounded
0x40e0 - Aerial

Falco (PlFc.dat)
0x4168 - Grounded
0x4184 - Aerial
 

QuickLava

Smash Journeyman
Joined
Nov 30, 2013
Messages
361
Location
Somewhere in the Aether....
Is there a way to manually load that offset in Crazy Hand? Or would I export the character data then load it into a Hex editor? I tried searching "0x4168" in HxD, and didn't find anything, so maybe I'm doing it wrong?
 

Tater

Smash Journeyman
Joined
Apr 10, 2014
Messages
201
Location
Socal
NNID
Taternater
3DS FC
2406-5307-2936
Will it ever be possible for "Randomize ALL Characters" to randomize things like effects on moves (like falcon's knee having a dark effect or yoshi's egg throw having a fire effect, etc.) and perhaps switching animations too? That would be incredibly funny if it worked properly.

Also, does the randomize feature also randomize each character's "Character specific" attributes like their special moves?
Currently the randomizer does not randomize character specific attributes or their special moves due to some inconsistencies regarding their file locations. I do plan to make the randomizer more modular(Selecting what you do and do not want randomized, how "crazy" it should be, etc) but it may not be in the next update I have planned. The things you listed are definitely doable and will be put in the next update that changes the randomizer.

Is there a way to manually load that offset in Crazy Hand? Or would I export the character data then load it into a Hex editor? I tried searching "0x4168" in HxD, and didn't find anything, so maybe I'm doing it wrong?
Currently, there is no way to manually point Crazy Hand to a certain offset in that manner(Although I should consider adding that feature, now that you mention it...) You can export the character and load it into a hex editor. Inside HxD, just hit Ctrl+G and enter the offset you want to go to (4168 in this case; "0x" is just there to symbolize that it is a hexadecimal value and not a decimal value.) That should take you where you need to be :) Once you're done editing the file you can load the character back into the ISO using Crazy Hand as well.

@ Achilles1515 Achilles1515 , thanks for the help as always :) I'll plug those offsets into the projectile editor new feature I'm working on.
 
Last edited:

Chaos 0

Smash Rookie
Joined
Apr 5, 2015
Messages
5
So, I'm pretty new to editing characters and all. I was trying to turn Roy into Lloyd from SSF2. I know for a fact, the specials won't be done, but I do know that I could edit most other things.
So, I was just wondering, how do you change hitstun with Crazy Hand?
 

Tater

Smash Journeyman
Joined
Apr 10, 2014
Messages
201
Location
Socal
NNID
Taternater
3DS FC
2406-5307-2936
So, I'm pretty new to editing characters and all. I was trying to turn Roy into Lloyd from SSF2. I know for a fact, the specials won't be done, but I do know that I could edit most other things.
So, I was just wondering, how do you change hitstun with Crazy Hand?
Hitstun isn't attack-specific, unfortunately. However, you can edit values pertaining to hitlag by opening PlCo.dat with a hex editor(I suggest HxD; it's free, doesn't nag you to buy it, and has a lot of great features).


plco offsets

A174 20 Max number of frames of hitlag

A178 .333 damage multiplier for frames of hitlag

A17C 3 Base hitlag

A180 .667 hitlag multiplier on crouching?

A184 1.5 Electric Element Hitlag multiplier
I'll update this post with a small walkthrough on how to edit these with a hex editor.

Update:


First off, you'll need to get your hands on a tool that can extract/import files into an ISO. I used GCRebuilder to dump all of Melee's files into a folder a while back. If you're looking to just edit one or two files, or want a more convenient/time saving(not having to wait for GCRebuilder to unpack/pack your ISO for each edit) I highly suggest using Melee Toolkit, which is found here: http://smashboards.com/threads/melee-toolkit-now-available-v1-03-alpha.334274/

First off, make a backup of your ISO. Better safe than sorry.

Use Melee Toolkit to open your ISO, then click on the "filesystem" tab and scroll down to PlCo.dat(Files are in alphabetical order, so it won't be a headache to find)



Click on PlCo.dat, and then click "Export Selected File" and save it wherever you want.

Then, open PlCo.dat in HxD.



On the toolbar, click search -> Goto... (Or press Ctrl+G) and input the offset you want to go to(I'm going to edit the maximum allowed frames of hitlag first)



Once we get there, we see the values we want to edit. Sort of, anyways.


Now, each of these values is what's called a "float" value. For this tutorial all you need to know about them is that a float value is 4 bytes in length. I'm not sure exactly how float values need to be written in hexadecimal, but that's what the internet is for. Using this nifty tool (http://gregstoll.dyndns.org/~gregstoll/floattohex/) we can convert float values to hexadecimal and vice versa.



I'm going to change the maximum amount of hitlag from 20 frames to 70. So in the converter I'll put 70 as the float value and convert that to hexidecimal...



And then copy+paste the new value(42 8C 00 00) over the old value(41 A0 00 00)
Next I'll go to 0xA184(Electric Element Hitlag multiplier) and repeat the above steps.



So, to recap, I've changed the values at

0xA174(Maximum frames of hitlag)
from: 41 A0 00 00 (Float value of 20) changed to: 42 8C 00 00 (float value of 70)

0xA184(Electric Element Hitlag multiplier)
from: 3F C0 00 00 (Float value of 1.5) changed to: 41 55 EB 85 (float value of 13.37)

Save your edited file, go back to Melee Toolkit and click on PlCo.dat again, and click on "replace selected file". Select your modified PlCo.dat and you're done! If you want to see a quick example of the results, play Ganon and just.. use his moves.

Hope this tutorial helped, I know it's a bit on the long side but I wanted to do my best to explain the logic behind the edits and give a (somewhat) detailed explanation about how it all works.

Happy modding :)
 
Last edited:

Achilles1515

Smash Master
Joined
Jun 18, 2007
Messages
3,211
Location
Cincinnati / Columbus OH
Regarding autocanceling, do we know what the difference is between:

0x4C (I know this is 00=autocancel standard aerials)
0x4D
0x4E
0x4F

?

They each control setting flags to separate memory addresses 0x4 apart.
 

Tater

Smash Journeyman
Joined
Apr 10, 2014
Messages
201
Location
Socal
NNID
Taternater
3DS FC
2406-5307-2936
Regarding autocanceling, do we know what the difference is between:

0x4C (I know this is 00=autocancel standard aerials)
0x4D
0x4E
0x4F

?

They each control setting flags to separate memory addresses 0x4 apart.
0x4D/0x4E are somewhat of a mystery to me; 0x4E is used in Mewtwo's forward throw to spawn projectiles, but my knowledge of it stops there.

0x4F sets when an aerial move should/should not switch to its landing animation if the character lands before the subaction is done, if I remember correctly. I did not remember correctly. I remember finding out something about 0x4F but it's lost somewhere in my notes. I'll rifle through them later.
 
Last edited:

tatatat0

Smash Journeyman
Joined
Jan 28, 2015
Messages
412
If you aren't already going to add it, here is some of pichu's article floating points.
Quick Attack:
362C: .05 momentum subtracted during ending frames 9-49
3630: 1 momentum cap from subtraction during endlag
3634: 20 ?? Read on startup
3638: 8 Travel distance ??? //(Pikachu's is 5)
363C: 0.02666 Momentum subtracted frames 11-13 during startup?
3640: .2618 model rotation traveling on ground
3644: .8 model width multiplier traveling on ground
3648: .8 Model height multiplier traveling on ground
364C: 1.2 Model length multiplier traveling on ground
3650: 0.2618 Model rotation traveling in air
3654: .8 Model with multiplier traveling in air
3658: .8 Model height multiplier traveling in air
365C: 1.2 Model lengt multiplier traveling in air
3660: 4 ?? (Pikachus is 2)
3664: 0.5 aiming sensitivity
3668: 2.2 Has to do with starting momentum
366C: 2.2 momentum added to 3668??
3670: 1 Second segment length multiplier
3674: .6 Horizontal momentum?
3678: 0x32 Unknown
367C: .6 Horizontal Momentum subtracted??
3680: 0x05 Unknown
3684: .4 Not Read
3688: 12 Landing Lag
Thunder:
368C: .66 vertical momentum on aerial thunder hit
3690: 0.016 something to do with rising from an aerial thunder hit?
3694: 4.5 something to do with vertical range for thunder self-hit?
3698: -5 Thunder travel speed
369C: 6.66 horizontal range for thunder self-hit?
36A0: 8 vertical range for thunder self-hit?
36A4: -18 vertical displacement of cloud graphic
36A8: 150 height of thunder creation
36AC: 0x04 Number of lightning bursts
36B0: 0x08 time between individual lightning
36B4: 0x52 unknown (Freezes if not 51 or 52)
I noticed they weren't on opensa.dantarion.com or in crazyhand so I just found them myself.
 
Top Bottom