• 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

Ampers

Smash Journeyman
Joined
Feb 2, 2015
Messages
237
Location
St. Louis, MO
Sorry to be impatient, but any progress for V1.2?
Yes, v1.2 is still in the works. I don't want to set a release date in case we won't be able to make it but I'm hoping it is soon. Most of the contributions for this update are made by @ Tater Tater , not myself. I messaged him earlier today regarding this and have not heard back yet.
 

Kekker

Smash Cadet
Joined
Feb 9, 2015
Messages
34
Hey guys, loving the program. Couple observations regarding Pichu:

I've been trying to remove all his self damage, and I got most of it. However, there are two moves that don't have a CC 00 00 XX code listed in Crazy Hand:

1) Down special

2) SECOND hit of up special

I've also noticed there are a lot lf duplicate values under All Subactions, but when I click a later duplicate it always takes me back to the top duplicate, if that makes sense. I don't know if the duplicates are supposed to be there, but maybe those hits I mentioned are in those places?
 

MagicScrumpy

Smash Journeyman
Joined
Feb 25, 2015
Messages
251
Location
Ann Arbor, Michigan
Specials are weird. Going off of the fact that the down B only deals self damage when it hits Pichu, I would bet that the code that dictates self-damage for those two specials are elsewhere in the .dat file.
 

NintenNess

Smash Journeyman
Joined
Aug 9, 2014
Messages
481
Location
Washington State
@ MagicScrumpy MagicScrumpy Does the animation swapping actually uses the same subaction commands when it's swapped in this program? (Original Forward Air = Forward Air Subactions, Forward swapped into Side Tilt = Side Tilt subactions in Forward Air)

Like the one when you tried giving Falco the "Knee of justice."
 

Ampers

Smash Journeyman
Joined
Feb 2, 2015
Messages
237
Location
St. Louis, MO
@ Itaru Itaru ,
I am not familiar with this command. Tell me if this is true:
A2 is the "Command Starting Point" event.
It has the form "A2 00 00 XX XX"
Where "XX XX" indicates the starting point.

Is this right? If so, I will add that soon.



@ NintenNess NintenNess ,
The animation swapping only swaps the animation itself and keeps everything else the same. So for instance if you take Ganon's forward air and give it the animation for his down air, it will still have all the original hitboxes/values/timings etc... The hitboxes will also still be assigned to his arms instead of his legs.
In Scumpy's video for falco with a knee, he would have had to manually set the hitboxes for the move to be the same properties of Falcon's knee.


@ SwiftNinjaBlackMan SwiftNinjaBlackMan ,
Yes, you can make a move into a spike very easily with this program. Believe it or not, the way Melee determines if a moves spikes or meteors is based off the angle that it sends you at. Anything that sends you straight down can be meteor-cancelled. However, if it sends you off at a slight angle, this cannot be cancelled. If you take a look at the subactions for any meteor smash (ganon's dair, samus' dair, etc...) you will notice that for they all have angles set to 270 (Straight down. That is, 270 degrees counterclockwise, starting from 0 degrees being straightforward. Just like in standard mathematics).
However if you look at the hitbox for any spike, such as falco or marth's dairs, you will notice that they have angles of 290 degrees. These moves cannot be meteor cancelled at all. I don't think any move in melee has an angle of 250 degrees, but it should work by the same principle.
Another interesting thing to observe that verifies this:
On falcon's down air, there are like 3-4 hitboxes or somewhere around there as I recall. They are all set to an angle of 270, except for the one assigned to his chest which is set to 290. This is the so called "nipple spike" that falcon possesses.
One thing that I am not too sure about though is what happens when you have an angle that is between 270 and 290. I believe at one point I tested and angle of about 275 or 280 and it was still able to be meteor cancelled. However, I'm not sure about that. Somebody else might know.

So anyways, TL;DR:
any move can be made a spike by setting its angle to "290"
 

SwiftNinjaBlackMan

Smash Apprentice
Joined
Nov 9, 2014
Messages
89
Location
Staten Island
how do i mess around with special attacks like make the beginning frames of the falcon kick a meteor smash? also how can i make someones recovery way better like change falco's to foxes?
 

NintenNess

Smash Journeyman
Joined
Aug 9, 2014
Messages
481
Location
Washington State
@ NintenNess NintenNess ,
The animation swapping only swaps the animation itself and keeps everything else the same. So for instance if you take Ganon's forward air and give it the animation for his down air, it will still have all the original hitboxes/values/timings etc... The hitboxes will also still be assigned to his arms instead of his legs.
In Scumpy's video for falco with a knee, he would have had to manually set the hitboxes for the move to be the same properties of Falcon's knee.
I see. I tried doing this on my own and I managed to give Falco's the Knee of justice as a test. I also realized that changing the character's .dat size file will basically freeze the game.
 
Last edited:

Itaru

MasterGanon
Joined
Jun 25, 2014
Messages
279
Location
日本 茨城県
@ Itaru Itaru ,
I am not familiar with this command. Tell me if this is true:
A2 is the "Command Starting Point" event.
It has the form "A2 00 00 XX XX"
Where "XX XX" indicates the starting point.

Is this right? If so, I will add that soon.
???
I'm confused. I don't know A2 format. But

スクリーンショット (2892).png


This is Ganon's NB and blue is Command starting point. So, I jump to 390C.
スクリーンショット (2891).png


(The address that was ordered (390C))+32bites=Command starting point.
Do you know this?
If you don't know this, how did you make CrazyHand?
I want CrazyHand which displays Command starting points.

EDIT; Sorry, my explanation was bad.
This picture↓ was "example".

スクリーンショット (2890).png

 
Last edited:

Ampers

Smash Journeyman
Joined
Feb 2, 2015
Messages
237
Location
St. Louis, MO
@ Itaru Itaru ,
Oh I'm sorry, I completely misunderstood what you were saying. Yes, the next release of the program will tell you where the starting point of it is.

@ NintenNess NintenNess ,
In what way did you change the size of the file? Did you copy/paste new data in, shifting everything past it in the file back? This will most certainly cause errors when the game runs, because of the way the game uses pointers. When the game loads up the subactions for an attack, it will go to a predetermined location in the file. Let's say for this example that a specific move goes to the 10,000th byte in the file. If you add in new data, let's say 5 bytes, to the file previous to that location, the location of what the games wants to read has now been shifted forward to the 10,005th byte but the game still tries to read from the 10,000th byte. This will cause many errors.
 

NintenNess

Smash Journeyman
Joined
Aug 9, 2014
Messages
481
Location
Washington State
@ Itaru Itaru ,
Oh I'm sorry, I completely misunderstood what you were saying. Yes, the next release of the program will tell you where the starting point of it is.

@ NintenNess NintenNess ,
In what way did you change the size of the file? Did you copy/paste new data in, shifting everything past it in the file back? This will most certainly cause errors when the game runs, because of the way the game uses pointers. When the game loads up the subactions for an attack, it will go to a predetermined location in the file. Let's say for this example that a specific move goes to the 10,000th byte in the file. If you add in new data, let's say 5 bytes, to the file previous to that location, the location of what the games wants to read has now been shifted forward to the 10,005th byte but the game still tries to read from the 10,000th byte. This will cause many errors.

When I was giving Falco's Fair to act like his F-tilt, I put all of his Fair subaction commands into nothing. I replaced it with the F-tilt subactions and tried getting rid of the unnecessary 0s, but it froze the game when I tried to play as Falco. (I selected him and chose the stage, but it froze instead.) I tried it again I got it managed to work.
 

Ampers

Smash Journeyman
Joined
Feb 2, 2015
Messages
237
Location
St. Louis, MO
@ Stratocaster Stratocaster (or anybody else really. I just assume you might know),
Do you know how one could find the action ID's to be used for FSM's for character specific actions such as special moves? They don't seem to line up with the names of the subactions as far as I can tell and I don't know how to find them. I know on Magus' original post of FSM's he gave a list of all the common ones and that is what I have been writing my program around but they don't list any specials.
 
Last edited:

Tater

Smash Journeyman
Joined
Apr 10, 2014
Messages
201
Location
Socal
NNID
Taternater
3DS FC
2406-5307-2936
@ Stratocaster Stratocaster (or anybody else really. I just assume you might know),
Do you know how one could find the action ID's to be used for FSM's for character specific actions such as special moves? They don't seem to line up with the names of the subactions as far as I can tell and I don't know how to find them. I know on Magus' original post of FSM's he gave a list of all the common ones and that is what I have been writing my program around but they don't list any specials.

Did a little digging and found this: http://smashboards.com/threads/how-...iers-via-asm-coding-courtesy-of-magus.334480/

You may have already seen it, but I did notice that specials/character specific actions are entry 155 onward.

...
153 - ThrownCrazyhand
154 - BarrelCannonWait
155 - (Specials & Character specific)

Unfortunately, I'm not sure if the order for fsms is the same as the order for subactions(Generally, a character has the ground/air versions of each special following a pattern of neutral,side,up,down. There are some weird exceptions to that format, such as Peach having only one entry at the start of her specials labeled as SpecialN, which is actually pulling her turnip, and then ground/air versions of toad listed as SpecialLw. But those are easy to catch once you play with editing them. Characters with additional oddities(Such as characters with tethers) will have subaction listings for those after their specials.)

For a side note, I'm nearly done polishing script switching :)
 

Stratocaster

Smash Ace
Joined
Oct 6, 2007
Messages
672
Location
Knoxville, TN
As Tater pointed out, the action IDs are 155+ (I haven't actually tested them myself). You'd have to either start trying them out or something, but I doubt they follow a format across characters that is usable. For the FSM modifiers you can just set it to use the subaction ID (change the S from 0 to 8) which we already know the subaction ID of the specials so its easier that way I think. If I were doing it by hand anyway I would set that to 8 and then look up the subaction ID of the move I wanted to modify.
 

Ampers

Smash Journeyman
Joined
Feb 2, 2015
Messages
237
Location
St. Louis, MO
@ Tater Tater and @ Stratocaster Stratocaster ,

Yeah, I've been referencing that list you showed for the program and I also saw that they are 155+, I just wasn't sure if anybody knew how to find the exact orders of them. I guess you're right though, I should just use subactions instead. The only reason I hadn't started it out like that was because for whatever reason the SD remix used Action ID's and wanted the program to be able to interpret them. Oh well, I guess I'll just make it so that they can only read the known ones, and the others will appear as "Unknown".
 

Achilles1515

Smash Master
Joined
Jun 18, 2007
Messages
3,211
Location
Cincinnati / Columbus OH
In debug dolphin during a match, take the pointer at 0x80453130, add 0x70 to it, and then that address will hold the action state ID that P1 is in.
 
Last edited:

Achilles1515

Smash Master
Joined
Jun 18, 2007
Messages
3,211
Location
Cincinnati / Columbus OH
FYI, this is the specific difference between the two types of sleep elements.

Hitbox Elements
00 .Normal
04 .Fire
08 .Electric
0C .Slash
10 .Coin
14 .Ice
18 .Sleep (103 sleep frames)
1C .Sleep (412 sleep frames)
20 .Grounded (I can't get this one to actually cause the grounded effect?)
24 .Grounded (97 ground frames)
28 .Cape
2C .Empty (Gray hitbox that doesn't hit)
30 .Disabled
34 .Darkness
38 .Screw Attack
3C .Poison/Flower
40 .Nothing (no graphic on hit)
 

Ampers

Smash Journeyman
Joined
Feb 2, 2015
Messages
237
Location
St. Louis, MO
FYI, this is the specific difference between the two types of sleep elements.

Hitbox Elements
00 .Normal
04 .Fire
08 .Electric
0C .Slash
10 .Coin
14 .Ice
18 .Sleep (103 sleep frames)
1C .Sleep (412 sleep frames)
20 .Grounded (I can't get this one to actually cause the grounded effect?)
24 .Grounded (97 ground frames)
28 .Cape
2C .Empty (Gray hitbox that doesn't hit)
30 .Disabled
34 .Darkness
38 .Screw Attack
3C .Poison/Flower
40 .Nothing (no graphic on hit)

nice find. I'll update the program to reflect this
 

SwiftNinjaBlackMan

Smash Apprentice
Joined
Nov 9, 2014
Messages
89
Location
Staten Island
can you make a character have a wall jump? like ganon for example?

oh Also idk what i did wrong but i changed ganon's moveset around and he crashes the game everytime i play him someone help T_T
 
Last edited:

Ampers

Smash Journeyman
Joined
Feb 2, 2015
Messages
237
Location
St. Louis, MO
can you make a character have a wall jump? like ganon for example?

oh Also idk what i did wrong but i changed ganon's moveset around and he crashes the game everytime i play him someone help T_T
Hmm, that's a good question and unfortunately I do not know the answer. However, I would bet that it is probably not possible, due to the fact that this would require a dedicated subaction for wall jumping, which characters that can't wall jump probably just don't have. The only way I could see this being possible is if the wall teching and wall jumping subactions are linked, but I doubt it.
On the flip side it may be possible to remove a character's wall jump somehow. I'd imagine there would be a flag or it somewhere that could be disabled. Not really sure why you would want to remove a wall jump though haha.
Another thought though: Ganon is a clone Falcon, who has a wall jump. I suppose it is possible that he does have a subaction for wall jumping that just isn't used.

This is all entirely speculation though. I've never read anything about adding/removing wall jumps. Hopefully somebody else can offer some more light on the topic. That's actually the reason I haven't responded to this until just now because I hoped somebody with a better answer would chime in.
 
Last edited:

CeLL

Smash Lord
Joined
Jan 26, 2014
Messages
1,026
Location
Washington
Hmm, that's a good question and unfortunately I do not know the answer. However, I would bet that it is probably not possible, due to the fact that this would require a dedicated subaction for wall jumping, which characters wthat can't wall jumpprobably just don't have. The only way I could see this being possible is if the wall teching and wall jumping subactions are linked, but I doubt it.
On the flip side it may be possible to remove a character's wall jump somehow. I'd imagine there would be a flag or it somewhere that could be disabled. Not really sure why you would want to remove a wall jump though haha.
Another thought though: Ganon is a clone Falcon, who has a wall jump. I suppose it is possible that he does have a subaction for wall jumping that just isn't used.

This is all entirely speculation though. I've never read anything about adding/removing wall jumps. Hopefully somebody else can offer some more light on the topic. That's actually the reason I haven't responded to this until just now because I hoped somebody with a better answer would chime in.
There is a code around somewhere that gives all characters a walljump.

Edit: http://smashboards.com/posts/18158121
 
Last edited:

Ampers

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

how are things coming on your work for master hand? Haven't seen a commit from you in a while on Github (same for myself though)
 

Tater

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

how are things coming on your work for master hand? Haven't seen a commit from you in a while on Github (same for myself though)

Ah yeah, I've been working on Crazy Hand, but I've been exploring the game's code more than I've been programming as of late. I figured out another event/command that allows you to remove a specific hitbox during a subaction while retaining the others. I've been doing more digging on projectile AI/spawning and I've come to the conclusion that we need to be looking at main.dol for things of that nature. For instance, what Mewtwo spawns with neutral-B is defined in main.dol.

Inside Crazy Hand, I've been working on fixing problems that can arise from Script Switching, but I'm getting inconsistent results. I fixed running dolphin from the program so it should now work on any OS, and Crazy Hand now checks if an instance of dolphin that it launched is running before you try to make any edits to the ISO, and prompts you to shut down dolphin so you can safely make changes to the ISO. I've made more progress on character specific attributes through tinkering and finding odds and ends from melee hacking threads. I'll double-check what I have right now and make sure it doesn't have any bugs and commit it if you'd like to see.
 

Ampers

Smash Journeyman
Joined
Feb 2, 2015
Messages
237
Location
St. Louis, MO
Ah yeah, I've been working on Crazy Hand, but I've been exploring the game's code more than I've been programming as of late. I figured out another event/command that allows you to remove a specific hitbox during a subaction while retaining the others. I've been doing more digging on projectile AI/spawning and I've come to the conclusion that we need to be looking at main.dol for things of that nature. For instance, what Mewtwo spawns with neutral-B is defined in main.dol.

Inside Crazy Hand, I've been working on fixing problems that can arise from Script Switching, but I'm getting inconsistent results. I fixed running dolphin from the program so it should now work on any OS, and Crazy Hand now checks if an instance of dolphin that it launched is running before you try to make any edits to the ISO, and prompts you to shut down dolphin so you can safely make changes to the ISO. I've made more progress on character specific attributes through tinkering and finding odds and ends from melee hacking threads. I'll double-check what I have right now and make sure it doesn't have any bugs and commit it if you'd like to see.
Good stuff. I'd like to see it some time but no rush. I've made little progress since my last commit due to school. Exams, exams, exams... I'll polish my work up eventually.
 

Achilles1515

Smash Master
Joined
Jun 18, 2007
Messages
3,211
Location
Cincinnati / Columbus OH
Sheik - PlSk.dat

0x35D4 = 00000014 = Vanish (up-b) travel frames.

Higher number = longer recovery.

Code:
Function:
80113a30   AS_Sheik_0x167_Vanish(Aerial)
- controls executing the aerial vanish action state change and also calculates direction of motion based on X & Y joystick inputs

80113be4  -  lwz r0,0x38(r5)       # load vanish frames
80113be8  -  stw r0,0x2340(r30)    # store vanish frames into data offset timer

Similar function is used for grounded vanish.
 
Last edited:

Tater

Smash Journeyman
Joined
Apr 10, 2014
Messages
201
Location
Socal
NNID
Taternater
3DS FC
2406-5307-2936
so how long till where able to toggle walljumps?
A new release of crazy hand is in the near future, but walljump toggles aren't the first thing on my list to complete before the release is done so they may come in a later update/hotfix.

Sheik - PlSK.dat

0x35D4 = 00000014 = Vanish (up-b) travel frames.

Higher number = longer recovery.

Code:
Function:
80113a30   AS_Sheik_0x167_Vanish(Aerial)
- controls executing the aerial vanish action state change and also calculates direction of motion based on X & Y joystick inputs

80113be4  -  lwz r0,0x38(r5)       # load vanish frames
80113be8  -  stw r0,0x2340(r30)    # store vanish frames into data offset timer

Similar function is used for grounded vanish.
Good find, Achilles c: This has been added to sheik's character-specific attributes
 

Gentlefox

Smash Cadet
Joined
Dec 6, 2013
Messages
47
Thank you so much for creating this!

I was working on my own in Javascript, but I haven't had a lot of coding time since starting classes. So glad I can finally modify characters now =D
 

Achilles1515

Smash Master
Joined
Jun 18, 2007
Messages
3,211
Location
Cincinnati / Columbus OH
From Magus on hitbox info:

magus.PNG


(This is a picture because I can't edit or quote that post.....???)


Random Hitbox Elements - Modified Attack Specific (1.02) [Achilles]
  • Hitbox element will be random if the element ID within the hitbox event equals 0x11 (or in terms of Magus' list from above, 44).
    • So you can manually change specific hitboxes to have random elements.
C20715B0 00000009
807E0030 2C030011
40820038 38600011
3C808038 60840580
7C8903A6 4E800421
2C030007 41A2FFE8
2C030008 41A2FFE0
2C03000B 41A2FFD8
907E0030 907E003C
28000009 00000000

Notes.
 
Last edited:
D

Deleted member

Guest
Excuse my ignorance on this subject, but how do I open this? Do I have to compile it with a program before I can execute it?
 

Tater

Smash Journeyman
Joined
Apr 10, 2014
Messages
201
Location
Socal
NNID
Taternater
3DS FC
2406-5307-2936
Excuse my ignorance on this subject, but how do I open this? Do I have to compile it with a program before I can execute it?
No worries, java programs can behave a little weirdly at times haha
Does your computer open .jar files with Java by default?
 
D

Deleted member

Guest
No worries, java programs can behave a little weirdly at times haha
Does your computer open .jar files with Java by default?
I recently installed Windows so that must be it, I guess I'll go download Java. After I do that, what file do I open specifically? Thanks.
 
Top Bottom