SnuggleWuffle
Smash Rookie
- Joined
- Feb 1, 2015
- Messages
- 6
- NNID
- SnuggleWuffle
I figured out my problem. Now i just need to understand these terms so i can efficiently mod patches.
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!
Hello everybody.
This is Crazy Hand. It is a character editing program for Melee that allows you to quickly and easily edit things such as character attributes, hitboxes, subactions, and more.
The program is now pretty self explanatory. All you need to do is acquire a melee ISO and open it with Crazy Hand. From there, edit whatever you want and press save when done.
Please note! Crazy Hand is a java program, meaning that it is a .JAR file instead of a .EXE file. double click it just like you would any other executable file to run the program. If you have a program like WinRAR installed on your computer, double clicking it may try to open it as an archive file. You don't want this, so instead right click it >> Open with >> Java Platform Binary. This may vary slightly by operating system, but the general process is the same.
The entire project is open source and code is being maintained on GitHub. If you would like to take a look at it and potentially contribute, here's the link to our page: Crazy Hand GitHub
Huge thanks to Tater and darkside1222 for the code that they have both contributed to this project.
In addition I'd like to say major thanks to everybody else who has supported us on this project so far. This includes, but is not limited to Stratocaster, Achilles1515, DRGN, Magus, Itaru, LanceInThePants...
You guys have all been incredible help to me on this project. Not all of you directly helped me, but the amount of research and documentation that I read from many of you has just been unbelievably helpful. I would be nowhere without you guys. You rock!
Here is the download link: Crazy Hand v1.31
If you have any questions/comments/bug reports, please feel free to let us know.
I'll need a little bit more information than that to helpI tried to open crazy hand using that Java thingy, but it won't let me open it. Can anyone help?
It gives me this error message in the imgur image file
http://i.imgur.com/Gpp0za6.png
Can that even be done in melee?Still can't get CrazyHand's "Projectile" option to work. I want to give Link's ftilt a projectile, but I can't. How do I make him launch a Falco Laser beam from his sword, and how do I and how do I make his Taunt give him a Beam Sword?
Can that even be done in melee?
To explain a little further; Falco's laser beam is limited to Falco. It's a part of his character data, and at the moment it's something that can only be loaded and used by falco. This is true of all character projectiles that come from moves.I don’t think there is an “add projectile” option. Are you talking about the custom subaction event? Either way, I don’t think it’s possible to do what you’re asking.
Assuming you are referring to the projectile menu option in Crazy Hand; as I explained earlier, it is only for editing projectile hitboxes. You can use it to change the hitbox properties of Mario’s fireball, for example.
Actually, Peach's SpecialLw/SpecialLwHit/SpecialAirLw/SpecialAirLwHit are assigned to neutral-B (That is to say, using toad) and her turnip pull (SpecialN) is assigned to down-B. I'm not entirely sure why the developers did this, but I can only imagine that turnip pull was originally planned to be neutral-B and changed later because it's more intuitive to press down+B to pull something from the ground.Not sure where to post this but it looks like peach has some down B midair data?
Can any animations / syntax be assigned to this?
Uh.... I have no idea why I didn't add Mario to the move logic table. I remember something about Mario and "all" being kinda intertwined but I don't remember exactly. I'll take a look at it and get back to you.Crazy Hand crashes when loading Mario's move logic. Looking through Magus' notes, he seemed to have left him out and while searching the dol, it doesn't seem to exist. Is this actually the case or am i missing something?
character specific attributes for zelda and im pretty sure replacing characters is impossibleCould anyone figure out for me how to make Din's fire (Zelda F-B) Fully controllable? (as in like, up, down, left, right, and acceleration controls)? or if someone could figure out how to replace a character with another (replace Pichu with Lloyd per-se)
You can sort of fake this with character data modifications.does anyone know how to make a character float in air? It would be cool if i could Mewtwo float while using his N-Air
I highly recommend experimenting with this event. You can reference the SSBM Data Sheet in order to see what many of the internal player data offsets have available for manipulation.Custom Subaction Format
F8FFAAAA BBCCDDDD EEEEEEEE .... BBCCDDDD EEEEEEEE ... BBCCDDDD EEEEEEEE ....
F8 = subaction command byte (always keep as 0xF8)
FF = flag for custom function (always keep as 0xFF)
AAAA = length of this custom subaction ( = 0x4 + 0x8*[# of char data offset mods])
ex. just one char data offset mod would have a total length of 0xC. Two mods at once would be 0x14. etc..
The following data is for modifying a character data offset value. Modifications can be repeated in succession, as long as the "length of this custom subaction" is modified accordingly.
BB = modification type
00 = byte [8-bit]CC = modification operation flag
01 = half word [16-bit]
02 = word [32-bit]
03 = floating point number [32-bit]
00 = overwrite value at character data offsetDDDD = character data offset
01 = AND with value at character data offset
02 = OR with value at character data offset
03 = add to value at character data offset
04 = subtract from value at character data offset
05 = multiply with value at character data offset
06 = divide current value at char data offset with new value
+0x80 = [for floats to x-axis values] multiply new value by character facing direction
1.00 = facing right, -1.00 = facing left (these aren't important to know)
*Note: take the offset from the SSBM spreadsheet and subtract 0x60 from it as the value to use hereEEEEEEEE = new value to be placed @ character data offset
- in reference to x-axis values (e.g. velocity), with the 0x80 flag above enabled, positive float means forward and negative means backward
NOTE: The BB and CC flags above do not add, except the 0x80 with the CC flag. So, setting the CC flag to 0x85 means to take the new value, multiply it by the facing direction, and then take the value [presumably a float] currently at the char data offset and multiply it by previous result.
ThanksYou can sort of fake this with character data modifications.
Have a look at Achilles's OP for the custom subaction event syntax:
I highly recommend experimenting with this event. You can reference the SSBM Data Sheet in order to see what many of the internal player data offsets available for manipulation.
This is what I came up with:
F8FF0014 03000084 3F600000 02012218 FFFFF7FF
F8 - parse opcode (leave these 2 as they are to define "character data modification" event)
FF - function
0014 - this event is 0x14 in length (20 bytes; 5 event lines)
03 - value is float data type
00 - overwrite old value with new value
0084 - self-made vertical velocity value is at internal player data offset 0x84
3F600000 - write "0.875" to float at 0x84
02 - value is 32-bit word
01 - we are using new value as a bitwise AND mask to turn off a specific flag
2218 - fastfall flag is contained within internal player data word 0x2218
FFFFF7FF - bitwise AND FFFFF7FF with word at 0x2218 to turn off 00000800 flag
---
All together, it resets the fastfall flag and overwrites the player's self-made velocity with a value that gives them a slight bump upwards. It nullifies the previous vertical velocity that was caused by player actions.
You can add it pretty easily to Mewtwo's N-air by replacing a GFX event before his hitbox loop:
You can do this in a way with move logic, I think. The physics action function of an action state sometimes contains extra instructions that deal with velocity changes, so you might be able to find a function that has a desirable effect.So is there no way to change character movement in sub-actions with out codes? You would have to change something else? Im kind of new to hacking with syntax except for a few things, But i know how to use crazy hand.
Can you help me find one that descends the character? I've been using luigi's down B action physics function but it doesn't work in those random character + stage matchups where his cyclone starts charged...You can do this in a way with move logic, I think. The physics action function of an action state sometimes contains extra instructions that deal with velocity changes, so you might be able to find a function that has a desirable effect.
This is complicated by the fact that move logic for normal attacks is usually shared between every character, and so you can't just alter a single character's normal moves like this. It's possible to change these mid-action via subaction event; but only with the custom code I mentioned earlier.
So no, not that I'm aware of when it comes to normals.
---
A note about move logic with B-specials though; if you consider that any function can be placed in these pointer slots so long as they just use the argument r3 = player entity; you can really exploit it.
For example, this function (8007E2FC) appears to nullify all velocities of a player as a part of hitting a blast zone, and teleporting back to spawn. It's also used during ledge grabs. It's likely not what you're looking for in terms of "floating" but serves as an example of a function that works with velocities, and isn't necessarily intended to be used directly with move logic.
When placed in a B-special physics action function slot on the move logic table in Crazy Hand, you can expect it to nail your character in place for the duration of that action.
There are a few different mods for preventing characters from rapid jabbing. Do you have one of them and other mods enabled? It's possible there could be conflicts between mods. Also, how are you applying mods to your game? Gecko codes? I don't know how the Gecko codehandler responds to or handles mods that may conflict (e.g. two or more trying to use the same injection point). The Melee Code Manager now has a feature to detect such things though. You could try applying your codes with that and see if it warns you of anything.While I was trying some new mods from MagicScrumpy, I came to realise that when I rapid jab my wii and dolphin crashes for no reason. Later on I camo to conclusion that after installing the FSM engine on 20xx 4.05 the game crashes for no reason when any charaacter rapid jab.
Is there an explination or a solution for this? or is it a bug?
well, by replace a character, i mean, like, replace the model, i could work out the animations and whatnot myself after that, but i just need to figure out how to replace the model. and i know about zelda's character specific attributes, but the problem is, i messed something up, and ended up making it only go straight, and now i can't fix it.character specific attributes for zelda and im pretty sure replacing characters is impossible
ive never seen any melee model imports/replacements and ive been in the modding scene for a good while, im pretty sure modeling is only a thing for stageswell, by replace a character, i mean, like, replace the model, i could work out the animations and whatnot myself after that, but i just need to figure out how to replace the model. and i know about zelda's character specific attributes, but the problem is, i messed something up, and ended up making it only go straight, and now i can't fix it.
Try changing the animation interrupts in the move logic table - https://smashboards.com/threads/how...tly-out-of-his-teleport.442579/#post-21500465Does anyone know how to prevent Zelda from entering Special Fall after Side-B or DK after Neutral-B?
I don't know enough to give you a confident answer, but I would imagine that it would be with the right information. It would probably require some ASM though.Is it possible to allow Samus to charge her Charge Shot in the air using Crazy Hand?
5C000000 is the IASA flag event syntax. It tells the game that the player entity has extra IASA options for the rest of the action state duration, and can't be used for anything else unless you install this custom subaction event.Hey i'm using crazyhand 1.31 (most current, right?) and trying to add 800CAED0 jump cancel IASA to jiggz rest and it keeps not saving my changes ever! I did it to one other move so far on cFalc which worked fine, but for rest it's just never saving my change. I go to another move and go back and nothing's saved. Even when I save the the file, the IASA option keeps going back to 5C 00 00 00 00 and never saves my 800CAED0 please help!! I'm messaging Ampers etc @ it
Punkline leave this one to old man rippleDoes anyone know how to prevent Zelda from entering Special Fall after Side-B or DK after Neutral-B?
-==-
Zelda Side-B Preserves Jumps
Zelda doesn't burn her remaining doublejump on side-B
[Ripple]
Version -- DOL Offset ------ Hex to Replace ---------- ASM Code
1.02 ------ 0x13845C ---- 981E1968 -> 60000000
----------- 0x138768 ---- 981E1968 -> 60000000
1.01 ------ 0x1381A0 ---- 981E1968 -> 60000000
----------- 0x1384AC ---- 981E1968 -> 60000000
1.00 ------ 0x137D64 ---- 981E1968 -> 60000000
----------- 0x138070 ---- 981E1968 -> 60000000
PAL ------- 0x138C00 ---- 981E1968 -> 60000000
----------- 0x138F0C ---- 981E1968 -> 60000000
That's awesome, so this is what I'll do ti make jigg'z rest jump-cancelable?Crazy Hand makes a table out of it called the Move logic table. B-special moves can be modified from it in the way you're trying to do like so:
How do i find a certain move (like rest)?Crazy Hand makes a table out of it called the Move logic table. B-special moves can be modified from it in the way you're trying to do like so:
There are exceptions for some unique moves, but in general it goes like this:How do i find a certain move (like rest)?
all the moves there have strange names, and not all moves are available under "Move Logic" like jab 1 jab 2 etc
Looking for rest, but I only see moves like "SpecialLwR0x16" etc (wth is that?? lol)
If you have multiple things to post consecutively, please try to keep it to one post (mostly it just helps to keep threads clean and easier to search through). There's an edit button too, if you post and realize a little bit later that you have more to add.EUREKA IT WORKS MY ETERNAL GRATITUDE seriously
Any idea how to make a move cancelable into another move? like know falcon can spam knee in silly melee?
I want to make shine interruptible into another shine, so you can keep pressing down-B to multishine super easy no jump etc required
I'll go into some details, because move logic is a popular topic lately.Any idea how to make a move cancelable into another move? like know falcon can spam knee in silly melee?
I want to make shine interruptible into another shine, so you can keep pressing down-B to multishine super easy no jump etc required
8007d528 : ac_Interrupt_Fastfall_CheckToExecute
80081298 : ac_Interrupt_CliffCatch
8008169c : ac_Interrupt_Walljump
8008a4d4 : ac_Interrupt_AS_Wait
8008bfc4 : ac_Interrupt_F-Smash
8008c830 : ac_Interrupt_UpSmash
8008c948 : ac_Interrupt_UpSmash/LightThrowHi_FromKneebend
8008cad4 : ac_Interrupt_AS_Wait_CheckIASAflagforEnabledFirst
8008d08c : ac_Interrupt_AS_AttackAirN
8008d194 : ac_Interrupt_AS_AttackAirF
8008d29c : ac_Interrupt_AS_AttackAirB
8008d3a4 : ac_Interrupt_AS_AttackAirHi
8008d4ac : ac_Interrupt_AS_AttackAirLw
80090828 : ac_Interrupt_AS_DamageFall_Tumble
80091a2c : ac_Interrupt_Check
80092758 : ac_Interrupt_AS_Shielding
80093694 : ac_Interrupt_GuardReflect
80094e54 : ac_Interrupt_Item_CheckInstantAForThrow
80095328 : ac_Interrupt_ItemCheckForSomething
80096540 : ac_Interrupt_Side-B_Grounded
8009665c : ac_Interrupt_BbuttonInstant&Battacks
80096af4 : ac_Interrupt_AS_SpecialFall
8009802c : ac_Interrupt_AS_DownWaitU/D
800980bc : ac_Interrupt_DownStandU/D
80098214 : ac_Interrupt_DownBack/ForwardU/D
80098400 : ac_Interrupt_DownAttackU/D_FromDownBound
800984d4 : ac_Interrupt_DownAttackU/D_FromDownBoundWait
80098730 : ac_Interrupt_NeutralTech
80098928 : ac_Interrupt_TechRollF/B
8009917c : ac_Interrupt_Roll
80099264 : ac_Interrupt_Roll_OnlyCheckForL/R
80099794 : ac_Interrupt_SpotDodgeWithShieldHeldCheck
8009980c : ac_Interrupt_SpotDodge
80099a58 : ac_Interrupt_EscapeAir_Airdodge
80099c24 : ac_Interrupt_AS_EscapeAir_Airdodge
8009a080 : ac_Interrupt_ShieldDrop
8009a3c8 : ac_Interrupt_LedgeTeeter
8009a8fc : ac_Interrupt_AS_CliffWait
8009b170 : ac_Interrupt_CliffJump
8009eda4 : ac_Interrupt_StopWall
8009ef68 : ac_Interrupt_StopCeil
800c1d38 : ac_Interrupt_Edge/WalljumpTeching
800c23a0 : ac_Interrupt_CeilingTech
800c9618 : ac_Interrupt_AS_WalkSlow/Middle
800c97dc : ac_Interrupt_Turn
800c9cec : ac_Interrupt_TurnRun_KeepSameFrame
800c9d40 : ac_Interrupt_TurnRun
800c9ed8 : ac_Interrupt_AS_TurnRun
800ca094 : ac_Interrupt_TurnOrDash
800ca230 : ac_Interrupt_AS_Dash
800ca5f0 : ac_Interrupt_Run
800ca644 : ac_Interrupt_Run_Again
800ca830 : ac_Interrupt_AS_Run
800CAE80 : ac_Interrupt_JumpCheckInputOnly
800CAED0 : ac_Interrupt_Jump_Grounded
800caf78 : ac_Interrupt_AS_TurnRunActualChecks
800cb024 : ac_Interrupt_GroundJumpFromShield
800cb334 : ac_Interrupt_AS_JumpF
800cb5fc : ac_Interrupt_AS_Kneebend
800cb870 : ac_Interrupt_AerialJumpGoTo
800cb950 : ac_Interrupt_AerialJump
800ccaac : ac_Interrupt_AS_Fall
800ccd34 : ac_Interrupt_AS_Fall_Prefunction
800cce50 : ac_Interrupt_AS_Fall_Prefunction2
800d5d78 : ac_Interrupt_AS_Landing
800d5f84 : ac_Interrupt_JoystickDownRevivalPlatFall
800d5fb0 : ac_Interrupt_Squat
800d65d8 : ac_Interrupt_SquatReverse
800d6694 : ac_Interrupt_AS_SquatReverse
800d6824 : ac_Interrupt_Neutral-B_Grounded
800d688c : ac_Interrupt_Down-B_CheckInputOnly
800d68c0 : ac_Interrupt_Down-B_Grounded
800d6928 : ac_Interrupt_Up-B_CheckInputOnly
800d695c : ac_Interrupt_Up-B_Grounded
800D705C : ac_Interrupt_ItemCatch8FrameBufferEnableCheck
800d7100 : ac_Interrupt_CatchItem
800D8990 : ac_Interrupt_Grab_Standing
800d8a38 : ac_Interrupt_Grab_FromRun
800d8b9c : ac_Interrupt_CatchDash
800de9b8 : ac_Interrupt_D-PadUpInstantPressed?
800de9d8 : ac_Interrupt_Taunt
800e6adc : ac_Interrupt_Fox_AS_NeutralB_CheckForBbuttonPress