• 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

Stormghetti

Smash Journeyman
Joined
Aug 23, 2015
Messages
400
Location
Europe
Slippi.gg
STRM#798
NNID
Stormghetti
Ran into a bit of an issue with the frame speed modifier tab on crazy hand. Whenever I try to load it now, It just fails and glitches the window a bit and refuses to let me use the whole program aside from the top toolbar, essentially soft crashing it. I made a back-up rom and reset the FSM dol mod, and can access the screen again, albeit empty. Anyone have a potential fix for this? Re-adding everything manually would take a long, long time and there is no guarantee it wouldn't do it again.
When you reach a certain amount of FSMs, Crazy Hand can't handle it but you can easily bypass this glitch by re-applying the FSM engine, going into the tab again and re-importing your FSMs from your .txt file.
 

PokemonAce101

Smash Rookie
Joined
Jan 27, 2019
Messages
7
Location
Colorado
When you reach a certain amount of FSMs, Crazy Hand can't handle it but you can easily bypass this glitch by re-applying the FSM engine, going into the tab again and re-importing your FSMs from your .txt file.
Alright, thank you. Unfortunately, I used a back-up iso instead of a manual text file, so this won't help me now but i'll make sure to properly save everything in the future. Suppose i'll have to just build from scratch and not make the same mistake.
 

Stormghetti

Smash Journeyman
Joined
Aug 23, 2015
Messages
400
Location
Europe
Slippi.gg
STRM#798
NNID
Stormghetti
Alright, thank you. Unfortunately, I used a back-up iso instead of a manual text file, so this won't help me now but i'll make sure to properly save everything in the future. Suppose i'll have to just build from scratch and not make the same mistake.
There's not much to do if you don't have a text file, even if you have a backup ISO. You could copy the FSMs from the FSM table inside of the DOL, but I'm not sure how to convert all of it to regular values that CH can read, and it would probably take too long. If you use UnclePunch's new FSM engine, you can put those FSMs in a new file called "TyMnView.dat", but it means you'd have to get rid of CH's FSM engine first. The point of this new engine is letting you have even more space, because once you reach a certain amount of FSMs with CH's engine, it starts overwriting Melee's code to the point where just moving crashes the game (you're not there yet. Before that happens, you experience the FSM tab crashing and all that).

If you're interested, here it is: https://smashboards.com/threads/fsm-engine-rework-load-fsms-as-a-dat-file.453826/
 

PokemonAce101

Smash Rookie
Joined
Jan 27, 2019
Messages
7
Location
Colorado
There's not much to do if you don't have a text file, even if you have a backup ISO. You could copy the FSMs from the FSM table inside of the DOL, but I'm not sure how to convert all of it to regular values that CH can read, and it would probably take too long. If you use UnclePunch's new FSM engine, you can put those FSMs in a new file called "TyMnView.dat", but it means you'd have to get rid of CH's FSM engine first. The point of this new engine is letting you have even more space, because once you reach a certain amount of FSMs with CH's engine, it starts overwriting Melee's code to the point where just moving crashes the game (you're not there yet. Before that happens, you experience the FSM tab crashing and all that).

If you're interested, here it is: https://smashboards.com/threads/fsm-engine-rework-load-fsms-as-a-dat-file.453826/
Took me a little to wrap my head around, but this is a life saver. Appreciate the help
 

Punkline

Dr. Frankenstack
Joined
May 15, 2015
Messages
423
yo, does anyone know how to apply cloth physics to certain objects??

I got a friend who could use the advice. ;)
A while back, I recall finding that instantiated ragdoll structures took the form of a special array allocated in each player GObj data table. (GObjs are procedurally generated, often using JObjs to create a skeleton of displayed objects. Some GObjs point to a special data table allocation created just for the purpose of storing variables describing the current state of an instantiated object, like a player.

All player GObjs seem to create an allocation for a maximum of 10 ragdoll assignments within their data tables; whether they use them or not. Each assignment keeps track of a bunch of floating point variables that seem to influence a referenced joint (JObj; instantiated) in the player skeleton, along with n children joints from the referenced joint.

I don’t know much more beyond that, so I’m not sure how it would be defined in the file data. Here are some notes I took on player data offsets however, if anyone wants to look into it:
Code:
# Ragdoll Element:
# There are 10 of these, starting at 0x2F0 of each player data table:
0x00  word   Ragdoll state  -- seems to represent number of connected JObjs, creates vertices for linestrip
0x04  point  to "Ragdoll Bone Structure"  -- used to attach bones? Table includes many floats
0x08  word   Some kind of joint count?  -- set to "Ragdoll state" - 1 to create a rigid structure
0x0C  float  unk X
0x10  float  unk Y
0x14  float  unk Z

# Ragdoll Bone Structure:
0x00  point  to "JObj attachment"

0x04...0x2C unknown floating point values
0x2C...0x3C unknown floats -- updated each frame?
0x3C...0x48 unknown floats -- update if in-between other ragdoll joints?
0x48...0x68 unknown floats
0x68  float  something to do with wind?
0x6C...0x8C unknown floats
0x90  point  to "next Ragdoll Bone Structure"
0x94  unknown
If you’re savvy with a memory editor, I also have a code that can be used with debug dolphin, memory engine, or cheat engine to easily derive *.dat file data offsets from files loaded into RAM (via RAM addresses.) It can be very useful for doing research like this.

---

How do you change the size of a graphic effect?

Edit: Or is it even possible
I could look into changing GFX scaling, but I know its possible to edit the size of projectiles in the character files. I'm discovering many new things that were previously undocumented atm.
How do you change projectile size? I was gonna raise the size of Mario's fireballs a while back, but never found out how
The GFX created by subaction events like those made with Crazy Hand seem to have their own GObj class. This sometimes means that it has a predictable skeleton format made out of JObjs, which would be responsible for the displayed GFX scale. This applies to GFX, players, and items (including most projectiles).


Since most of the GFX are probably animated, it’s likely that modifying the scale would require:

A - you modify a parent joint that remains unanimated
  • by modifying the scale of an unanimated parent JObj description inside of a file, you can cause the applied scale to be inherited by any contained children joint(s) -- including children that are animated.
  • Note that if the joint you modified is also animated directly (instead of children), then any applied scale may be lost to the animation procedure.

B - you modify a parameter that influences the skeleton by a remote procedure
  • Often times, joints are more of a “low-level” object for higher-level structures that “puppet” them. Variables are often left in charge of determining the behavior of a procedural animation, and these can sometimes be parametrically modified to influence the behavior of a joint-based display.

C - you modify the animation data that transforms the scale of an animated joint
  • if a joint is animated by an AObj, then its default joint information may be lost to the animation procedure. In these cases, if you can’t scale the animated skeleton from a parent JObj or an externally influencing parameter, then you will probably have to modify both the JObj description AND the FObj strings used to animate it in order to reliably change the scale. Finding the corresponding AObj that animates a skeleton can be tricky.

D - you transform the instantiated joint with code
  • A custom subaction event might be capable of doing this for most GFX by using calls to the HSD_JObjSetMtxDirtySub function to add an applied scale to any animated transformation.
 
Last edited:

LucixCloud

Smash Rookie
Joined
Dec 13, 2017
Messages
5
Hello,

I've been digging through the forums and I suppose this is the best place to ask this. I am trying to have a similar functionality to 20xx 4.05 where you can press L or R on the dpad to select SD Remix or Pal. I'm not trying to make it do just that, I have custom characters I'm trying to add and not overwrite the base character. Any help or push in the right direction is much appreciated! I have my own mod that im learning with, not trying to just change 20xx.
Is there a tutorial anywhere for this? I couldnt find anything in the 20XX thread
 

Itaru

MasterGanon
Joined
Jun 25, 2014
Messages
279
Location
日本 茨城県
I found an interesting value when I was making "Marth!"
無題.jpg

This is aerial horizontal deceleration. Probably, character's horizontal speed becomes 1/1.25.
 

dude30500

Smash Cadet
Joined
May 7, 2015
Messages
25
I found an interesting value when I was making "Marth!"View attachment 190070
This is aerial horizontal deceleration. Probably, character's horizontal speed becomes 1/1.25.
Nice find, I've been trying to find out the rest of the char attributes that have been missed. I've found 98% of the common attributes such as Jump H velocity, etc. and have been working character specific attributes. Also, I have found many of the plco.dat offsets.
 

PokemonAce101

Smash Rookie
Joined
Jan 27, 2019
Messages
7
Location
Colorado
Tried searching this thread and couldn't find an answer, Where does CH draw the Move logic values from? Trying to move progress to a 20xx ISO and it's not part of the Pl**.dat files. Are all the values from the .dol or somewhere else entirely?
 
Last edited:

dude30500

Smash Cadet
Joined
May 7, 2015
Messages
25
Tried searching this thread and couldn't find an answer, Where does CH draw the Move logic values from? Trying to move progress to a 20xx ISO and it's not part of the Pl**.dat files. Are all the values from the .dol or somewhere else entirely?
If i'm not mistaken, they're from the .dol file and they refer to assembly functions.
 

dude30500

Smash Cadet
Joined
May 7, 2015
Messages
25
If there an offset or thread I can look for to get more info? Want to move on a fresh .dol aside from these values, if I can somehow copy them
I looked into it myself, it looks like the offsets start at 0x3C5368. The way i found it was simply copying and pasting one of the move logic fields from Crazy hand and Ctrl+F searching for it in the .dol. Im not sure the character order of the move logic tho.
 

PokemonAce101

Smash Rookie
Joined
Jan 27, 2019
Messages
7
Location
Colorado
dude30500 dude30500 PokemonAce101 PokemonAce101


Here's an image Punkline sent me that shows the structure of the move logic for Mario. I'm guessing it will be relatively the same for other characters, just with more attacks thrown into the mix.
View attachment 190805
If you wanna find the offsets for each character's move logic, I recommend changing the move logic for the character to another function in another ISO using Crazy hand, then doing a file comparison in HxD of the two files, it should spot the differences in the location the move logic is changed, and you should be able to tell which move logic you're editing! :)


To save you the work of this though, have you seen the Interrupt Swap Subaction Event?
You can do move logic from the character's Subactions using this code, very handy!
Ended up doing it manually since it wasn't that hard, but thank you. This'll help quite a bit in the future. Appreciate it!
 

dude30500

Smash Cadet
Joined
May 7, 2015
Messages
25
dude30500 dude30500

I think I'm gonna need your help in finding the size scaling of Luigi's fireball, and also his graphic effect that goes with his fireball. I tested some offsets and I'm having no luck so far

3A70 is Luigi's fireball size. Usually I noticed there is always two values of 0x00000432 directly after the projectile size.

I got a spreadsheet with SOME of the projectile sizes and other undocumented character attributes, etc. that could be useful. Note that it is still a work in progress, but hopefully it can help.
 
Last edited:

NinXDani

Smash Cadet
Joined
Aug 29, 2018
Messages
52
I want to make Dr Mario's super sheet (:GCR::GCB:) have more endlag.
As the customizable special from Smash 4 Shocking Sheet.:4drmario::4drmario::4drmario:
 
Last edited:

Stormghetti

Smash Journeyman
Joined
Aug 23, 2015
Messages
400
Location
Europe
Slippi.gg
STRM#798
NNID
Stormghetti
I want to make Dr Mario's super sheet (:GCR::GCB:) have more endlag.
As the customizable special from Smash 4 Shocking Sheet.:4drmario::4drmario::4drmario:
Add two FSMs for SpecialS and SpecialSAir in the Frame Speed Modifiers tab, make the FSMs take effect at any frame and for the multipliers, use values smaller than 1.0.
 

NinXDani

Smash Cadet
Joined
Aug 29, 2018
Messages
52
In the air if it works but the floor does not work.
It's already fixed I forgot to change SpecialS .
 
Last edited:

BungoBeanz

Smash Rookie
Joined
Mar 20, 2019
Messages
4
Does anyone know what WD SK means in the hitbox subactions? I tried looking it up in the Smashboards search function and even google but I couldn't find anything.
 

hiren2827

Smash Rookie
Joined
May 10, 2019
Messages
1
Bear in mind, the quantity on the finish of the CC 00 00 XX is in hexadecimal. If you do not know what this implies you should use a Decimal to Hex or you should use window's calculator (assuming you may have home windows). To make use of the calculator open up your calculator, click on View on the prime left -> Programmer. The column on the left should not default to dec(decimal). You possibly can kind in a quantity and click on on the Hex radio button to transform it to hex or do the other to convert from hex to dec. In fact for those who already know this that's nice, simply do not keep in mind ever seeing a person publish about this.
 
Last edited:

TheOtherEthan

Smash Rookie
Joined
May 5, 2019
Messages
16
Location
Houston, Texas
Slippi.gg
TOE#355
How can I make a hitbox stay active longer? I'm trying to give ness a custom up-air (using his up throw animation to make it look like smash ultimate's u-air), and all I need now is to make the hitbox last longer.
 

NinXDani

Smash Cadet
Joined
Aug 29, 2018
Messages
52
How can I make a hitbox stay active longer? I'm trying to give ness a custom up-air (using his up throw animation to make it look like smash ultimate's u-air), and all I need now is to make the hitbox last longer.
There must be a synchronous or asynchronous timer, lengthen the frames until it is perfect.
 

Stormghetti

Smash Journeyman
Joined
Aug 23, 2015
Messages
400
Location
Europe
Slippi.gg
STRM#798
NNID
Stormghetti
How can I make a hitbox stay active longer? I'm trying to give ness a custom up-air (using his up throw animation to make it look like smash ultimate's u-air), and all I need now is to make the hitbox last longer.
You probably want to add more space to the move to add looping hitboxes so the move is a multi-hit attack too. Here's how you add space without sacrificing commands in Crazy Hand: https://imgur.com/gallery/xZ0SoFH
 

TheOtherEthan

Smash Rookie
Joined
May 5, 2019
Messages
16
Location
Houston, Texas
Slippi.gg
TOE#355
is it possible to make specific moves give the character momentum? I'm trying to make yoshi's up-B work like it does in smash 4 and ultimate
 

Stormghetti

Smash Journeyman
Joined
Aug 23, 2015
Messages
400
Location
Europe
Slippi.gg
STRM#798
NNID
Stormghetti
is it possible to make specific moves give the character momentum? I'm trying to make yoshi's up-B work like it does in smash 4 and ultimate
Code:
$Smash 4 Yoshi Up B [UnclePunch]
C212E3A0 00000009
89C31969 39CE0001
99C31969 6DCE8000
3E404330 CA028B90
92420000 91C20004
C9E20000 EDEF8028
3DC04000 61CE0000
91C1FFFC C1C1FFFC
EDCE7824 D1C30084
80010034 00000000
C212E5C0 0000000F
3821FFFC 7C0802A6
90010000 3BDF0110
881F221A 7FE3FB78
5400EFFF 41820018
3DC08007 61CED4E4
7DC903A6 4E800421
48000020 C03E005C
7FE3FB78 C05E0060
3DC08007 61CED494
7DC903A6 4E800421
7FE3FB78 3DC08007
61CED268 7DC903A6
4E800421 80010000
7C0803A6 38210004
60000000 00000000
 

Kaja3

Smash Rookie
Joined
May 23, 2019
Messages
1
Finally, someone whose mediafire download link doesn't take a trip through adfly! thanks :D
 

TheOtherEthan

Smash Rookie
Joined
May 5, 2019
Messages
16
Location
Houston, Texas
Slippi.gg
TOE#355
Code:
$Smash 4 Yoshi Up B [UnclePunch]
C212E3A0 00000009
89C31969 39CE0001
99C31969 6DCE8000
3E404330 CA028B90
92420000 91C20004
C9E20000 EDEF8028
3DC04000 61CE0000
91C1FFFC C1C1FFFC
EDCE7824 D1C30084
80010034 00000000
C212E5C0 0000000F
3821FFFC 7C0802A6
90010000 3BDF0110
881F221A 7FE3FB78
5400EFFF 41820018
3DC08007 61CED4E4
7DC903A6 4E800421
48000020 C03E005C
7FE3FB78 C05E0060
3DC08007 61CED494
7DC903A6 4E800421
7FE3FB78 3DC08007
61CED268 7DC903A6
4E800421 80010000
7C0803A6 38210004
60000000 00000000
but is there any way to do it using crazy hand?
 
Top Bottom