• 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

snuffysam

Smash Apprentice
Joined
Nov 13, 2012
Messages
101
How do I edit a character's taunt to attack the opponent or heal the user or something? I can't find "Taunt" in Master Hand.
I think it's called "Appeal". "Taunt" is the localized name.

Also, you can edit your posts, rather than double-post.
 
Last edited:

Tyadran

Smash Cadet
Joined
Jan 21, 2016
Messages
25
Location
Ohio
NNID
Tyadran
Is there any chance it might be worth adding some sort of F.A.Q. spoiler or something to the original post, to address some of these questions we keep getting? Like "how do I change the taunt" or "where are projectiles" or "how do I swap animations"? They're all questions two sentences or a picture can answer, but I feel like I've seen all of these asked multiple times since people (understandably) don't read every post that's been made.
 

AbsoluteBlack

Smash Apprentice
Joined
Jun 15, 2013
Messages
171
Location
Dallas, Texas
Possibly dumb question, but I can't make marth's neutral b charger faster/more often? I've sped the animation up and pulled all the timers down and such, but it still only adds one 'charge animation iteration' worth of damage every 30 frames, not every 10 frames as the animation currently is.

I want it to charge 1 damage per iteration but have each iteration be much faster, but that doesn't seem to be tied to the actual animation and I'm way out of my depth to find the actual timer D:
 

Maxer203

Smash Rookie
Joined
Aug 30, 2016
Messages
23
How do I use this? Do i just open up the crazyhand application thing and then select the melee iso?
 

Spawn_32

Smash Rookie
Joined
Dec 14, 2015
Messages
14
so my question got lost in the thread so I hope you don't mind if I repeat it

Well from a design standpoint of why he removed it I guess it is but I just wanted to implement it with Smash 4 Modding
Maybe you didn't understand me but all the parameters I talked about are still in Smash 4 files and are basically the same. 2.1, 0.95, 0.75 etc
And they still work (sort of) it's just that in Sm4sh you can't go faster than his normal air speed, ever. And I was wondering if in Melee there was one more parameter which I don't know of that could control this and might still exist in Sm4sh and thus I could implement running jump momentum with the tools Smash 4 Modding has at the moment
 

Tyadran

Smash Cadet
Joined
Jan 21, 2016
Messages
25
Location
Ohio
NNID
Tyadran
How do I use this? Do i just open up the crazyhand application thing and then select the melee iso?
Yes. Run the .jar file and pick your ISO, everything else should be self-explanatory/explained earlier in this thread.

Man I had a crazy Idea and I'm not sure how this program works yet since I was trying to do some special moves edits with some programs.
Explain what you're trying to do, and maybe someone can help.
 

Maxer203

Smash Rookie
Joined
Aug 30, 2016
Messages
23
Yes. Run the .jar file and pick your ISO, everything else should be self-explanatory/explained earlier in this thread.



Explain what you're trying to do, and maybe someone can help.
What does the actual application file look like I can'd find it in the files??
 

Tyadran

Smash Cadet
Joined
Jan 21, 2016
Messages
25
Location
Ohio
NNID
Tyadran
What does the actual application file look like I can'd find it in the files??
It should be called "Crazy Hand v1.31.jar". It's a Java program, so it's a .jar instead of an .exe. Just double-click it and it should run if you have Java installed.
 

StarPlatinum70

Smash Rookie
Joined
Aug 21, 2016
Messages
23
I love this program, but the "Add projectile" option doesn't seem to work, I can't make mario's downtilt shoot out one of Falco's lasers.
 

StarPlatinum70

Smash Rookie
Joined
Aug 21, 2016
Messages
23
Actually, the "Projectile" option isn't working on any moves. His jabs, his Fair, his Nair... none of them shoot out anything. Am I supposed to set the X/Y offset and X/Y Velocity to something specific?
 

Punkline

Dr. Frankenstack
Joined
May 15, 2015
Messages
423
I love this program, but the "Add projectile" option doesn't seem to work, I can't make mario's downtilt shoot out one of Falco's lasers.
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.
 

Middle Mang

Smash Cadet
Joined
Jul 30, 2016
Messages
28
Has anyone had the issue of modifying a throw, then resetting it back, and there is now an electric effect stuck on it? Anyone know the mechanics behind that? By modifying, I mean setting the damage type to darkness or changing async times or anything, than resetting it.
 
Last edited:

Tyadran

Smash Cadet
Joined
Jan 21, 2016
Messages
25
Location
Ohio
NNID
Tyadran
Has anyone had the issue of modifying a throw, then resetting it back, and there is now an electric effect stuck on it? Anyone know the mechanics behind that? By modifying, I mean setting the damage type to darkness or changing async times or anything, than resetting it.
I was actually wondering about that. I messed with hitboxes on Roy's throws (damage/angle/KB) and they suddenly became electric with no explanation. I'd love an explanation of that.
 

Sly_

DON'T FAKE THE FUNK ON A NASTY DUNK...
Joined
Jan 1, 2015
Messages
18
Location
eugene OR
The game changes action states through a series of little functions that set up a call to the main actionStateChange function. They’re all too simple to manipulate with any means that I know of besides code. See the bottom of this post for a similar scenario.

In this case, Sheik’s jump burn happens in the transition to her invisible teleporting state. By replacing this line with a nop (no operation) you can remove the effect.

Try this code:
Code:
-==-


Sheik keeps jumps during up-B
Prevents the side-B action state from consuming all remaining jumps.
Does not stop special falling state.
[Punkline]
Version -- DOL Offset ------ Hex to Replace ---------- ASM Code
1.02 ----- 0x80113bf0 --- 981E1968 -> 60000000
$Sheik keeps jumps during up-B [Punkline]
04113bf0 60000000
thanks! also wondering if there's a way to remove the sprite for Fox's shine? i'm reworking it to function like Rest for my next TAS.
 
Last edited:

Middle Mang

Smash Cadet
Joined
Jul 30, 2016
Messages
28
Another odd thing I just found was that after modifying falcon all night, today I came back to see that in his move logic table, neutral B, Side B, and his swing code is gone. Activating those in game crashes it immediately. He was working fine before and I never changed anything since then. I don't really want to have to reset him but if there isn't another way than that is fine.
 
Last edited:

Tater

Smash Journeyman
Joined
Apr 10, 2014
Messages
201
Location
Socal
NNID
Taternater
3DS FC
2406-5307-2936
Another odd thing I just found was that after modifying falcon all night, today I came back to see that in his move logic table, neutral B, Side B, and his swing code is gone. Activating those in game crashes it immediately. He was working fine before and I never changed anything since then. I don't really want to have to reset him but if there isn't another way than that is fine.
I'm honestly not sure why his move logic would be messed up... But thankfully, there's no need to reset your changes to falcon(Doing so wouldn't fix his move logic anyways, because changes made to his moveset/attributes are in a completely different file than his move logic entries)

In the move logic menu, click the button labeled "*" next to the move logic entry that is causing problems. This will reset the entry to its default state.
 

Punkline

Dr. Frankenstack
Joined
May 15, 2015
Messages
423
Has anyone had the issue of modifying a throw, then resetting it back, and there is now an electric effect stuck on it? Anyone know the mechanics behind that? By modifying, I mean setting the damage type to darkness or changing async times or anything, than resetting it.
I was actually wondering about that. I messed with hitboxes on Roy's throws (damage/angle/KB) and they suddenly became electric with no explanation. I'd love an explanation of that.
I reproduced this earlier and was pretty confused.

After resetting Fox’s f-throw, I think I got this highlighted 9 in RAM instead of the vanilla 8:

88000003 16A08000 11922000 - event in RAM

Now I’m having some trouble getting it to save proper edits to the throw. My element keeps changing to fire? Testing it doesn’t seem to show any fire effect. No idea what’s going on. I'll try to take another look later, because I'm having trouble keeping track of my results.

thanks! also wondering if there's a way to remove the sprite for Fox's shine? i'm reworking it to function like Rest for my next TAS.
Maybe, though I don’t know of a way with Crazy Hand. I have a vague idea about how to approach it with ASM, but I think it might be simpler with DRGN DRGN ‘s Dat Texture Wizard.

If you have trouble doing it that way, I can take a look and see if it'd be easy to write a code for.

Another odd thing I just found was that after modifying falcon all night, today I came back to see that in his move logic table, neutral B, Side B, and his swing code is gone. Activating those in game crashes it immediately. He was working fine before and I never changed anything since then. I don't really want to have to reset him but if there isn't another way than that is fine.
Spooky~

Try resetting the logic for those moves like Tater mentioned. If it happens again though, try to take note of the steps you took and see if you can reproduce it.

Possibly dumb question, but I can't make marth's neutral b charger faster/more often? I've sped the animation up and pulled all the timers down and such, but it still only adds one 'charge animation iteration' worth of damage every 30 frames, not every 10 frames as the animation currently is.

I want it to charge 1 damage per iteration but have each iteration be much faster, but that doesn't seem to be tied to the actual animation and I'm way out of my depth to find the actual timer D:
This one’s tricky. Looking at the move logic function suggests that the value for 30 frames is a hardcoded immediate as a part of a multiplication line in the animation interrupt.

The value that gets written each frame however is accessible with Achilles’s custom character data modification event. You’ll have to install the code for this to work (make sure you’re using Melee v1.02)

After it’s installed, you’ll be able to use this new event in Crazy Hand:

F8FF000C 02032340 00000014

The 03 part tells the code to add the value of 0x14 to the damage timer (that’s 20 in decimal). You can use this to force the timer to tick up 20 frames in one gulp. If you do this every 10 frames, you should get the results you’re looking for.

First revert the neutral-B subaction event so that it’s back to vanilla (file>revert subaction.)

Then, try making these adjustments to event 5 (a graphic effect) and event 6 (synchronous timer)



When you hit save, the lines will spread out a bit like it shows on the right there. The 04000000 lines are just blank lines, since we only used 4 of the 6 lines made available from the GFX and timer events.

The 0400000A line creates 10 frames of wait time for each animation tick, making the F8 event carry the extra 20 right at the end just before looping. You can adjust the values according to your preference.
 
Last edited:

Tater

Smash Journeyman
Joined
Apr 10, 2014
Messages
201
Location
Socal
NNID
Taternater
3DS FC
2406-5307-2936
In regard to posts about throws becoming electric after being edited: I think it's my bad. I probably told the script to save incorrectly. I'll take a look at it and get back to you all.


EDIT: The issue seems to be fixed; To be honest I don't know how to work with bits, and the data for effects on throw scripts need to be shifted 3 times unlike the data for effects on hitbox scripts which need to be shifted 2 times. I assumed it was the same difference when I made this, so... electric throws.

I *still* don't know how to work with bits, but it looks like you don't even need to bother with bit shifting for throw scripts so I just made it write the effect data to the whole 9th byte. I figured it would mess with the throws BKB, but it does not.

Since this is such a small edit, I don't really think it warrants a new version, but not being able to edit throws is frustrating, so I think it would be best if I just posted the edited ThrowScript file and a short guide on how to put it in your current .jar of Crazy Hand.

The file is located here: http://www.mediafire.com/download/nosxj7sjj967uov/ThrowScript.class

-Make sure Crazy Hand is closed before you do this!

Step 1: Go to your Crazy Hand folder
Step 2: Right click Crazy Hand v1.31 and select "Open With..." from the drop-down menu
Step 3: Select 7Zip/Winrar from the list of programs.

NOTE: If there is a checkbox labeled "Always use the selected program to open this type of file" be sure it is UNCHECKED. Otherwise, windows will always try to open .jar files with 7Zip/Winrar :p

Step 4: Inside 7Zip/Winrar, Double click the folder labeled "com", then double click the folder labeled "scripts".
Step 5: Drag the ThrowScript.class file you downloaded into 7Zip/Winrar, and hit "OK" on the dialog box that pops up.

Now you can edit throws freely, and ACTUALLY get the effects you want on them :)

PLEASE let me know if you have any issues with the throw script this time around; I'm confident I fixed it but I want to be sure.
 
Last edited:

Punkline

Dr. Frankenstack
Joined
May 15, 2015
Messages
423
PLEASE let me know if you have any issues with the throw script this time around; I'm confident I fixed it but I want to be sure.
Just made my earlier modifications, reverted, and remade them. No problems on all accounts, seems to be all good here! Think you killed it, nice one~

I'll let you know if I see anything strange.
 

Middle Mang

Smash Cadet
Joined
Jul 30, 2016
Messages
28
Thanks so much for the support on throw editing. About poor ol' falcon without a falcon punch... I would hit the "*" reset button but the move logic entries are gone. Like not on the page. Don't know if it is worth the upload but here is a pic http://imgur.com/a/iZGLv
 

Tater

Smash Journeyman
Joined
Apr 10, 2014
Messages
201
Location
Socal
NNID
Taternater
3DS FC
2406-5307-2936
Thanks so much for the support on throw editing. About poor ol' falcon without a falcon punch... I would hit the "*" reset button but the move logic entries are gone. Like not on the page. Don't know if it is worth the upload but here is a pic http://imgur.com/a/iZGLv
Huh, that's a new one...
I want to see if I can recreate this problem, so I need to know:

Is the ISO a version 1.02 NTSC copy of melee? (You can check this by opening dolphin, right-clicking on melee in your games list, select properties, then go to the "info" tab and make sure the country is USA and the revision is 2)
Is the ISO modified in any way other than the changes you made in Crazy Hand (20XX ISO, MCM codes added to your ISO, changes made to Start.dol on your own via hex editor, etc)?
Did you use Crazy Hand to add the FSM patch to your ISO, and if so did you add or remove and frame speed modifiers?
What changes inside Crazy Hand did you make before this problem occurred?
 

Middle Mang

Smash Cadet
Joined
Jul 30, 2016
Messages
28
Yes the ISO is a version 1.02 NTSC, the country is USA and the revision is 2. The only changes I made were MCM codes, such as custom event codes and sub action event codes. I also used the cheat code earlier requested by tyadran to make ganon and falcon maintain jumps. I have a couple frame speed modifiers, but falcon only has one, and it is suspiciously the one that I last edited before calling it a night. It was falcon punch at 2x speed. The odd thing is that falcon worked after that change, it was only after I had woke up the other day that I found the weird issue. Not sure if it is a product of his neutral b disappearing, or if I already got rid of it to try and fix it but forgot, but the speed modifier for it is gone.
 

Tater

Smash Journeyman
Joined
Apr 10, 2014
Messages
201
Location
Socal
NNID
Taternater
3DS FC
2406-5307-2936
Yes the ISO is a version 1.02 NTSC, the country is USA and the revision is 2. The only changes I made were MCM codes, such as custom event codes and sub action event codes. I also used the cheat code earlier requested by tyadran to make ganon and falcon maintain jumps. I have a couple frame speed modifiers, but falcon only has one, and it is suspiciously the one that I last edited before calling it a night. It was falcon punch at 2x speed. The odd thing is that falcon worked after that change, it was only after I had woke up the other day that I found the weird issue. Not sure if it is a product of his neutral b disappearing, or if I already got rid of it to try and fix it but forgot, but the speed modifier for it is gone.
I just looked more closely at the screenshot you sent me, and it looks like the move logic table got offset somehow, and that is what's causing your issue. The values for subaction IDs are where the values for "flags 2" ought to be. I honestly have no idea how that could have happened :p

My suggestion is to either reset your Start.dol to default, or use a hex editor to replace Captain Falcon's move logic table with the default values.

To do this, open Start.dol in a hex editor(I use HxD and it works great), press ctrl+G and go to 0x3C42B8
Highlight everything from 0x3C42B8 to 0x3C4597 and then copy-paste the values from the spoiler.

00 00 01 27 00 44 08 42 41 00 00 00 80 0C D3 90 80 0C D3 B0 80 0C D3 D0 80 0C D3 F0 80 07 61 C8 00 00 01 28 00 44 08 46 45 00 00 00 80 0C D4 58 80 0C D4 78 80 0C D4 98 80 0C D4 B8 80 07 61 C8 00 00 01 29 00 44 08 4A 49 00 00 00 80 0C D5 20 80 0C D5 40 80 0C D5 60 80 0C D5 80 80 07 61 C8 00 00 01 2A 00 44 08 4E 4D 00 00 00 80 0C D6 A0 80 0C D7 C4 80 0C D7 E4 80 0C D8 04 80 07 61 C8 00 00 01 2B 00 44 08 52 51 00 00 00 80 0C D8 8C 80 0C D8 AC 80 0C D8 CC 80 0C D8 EC 80 07 61 C8 00 00 01 2C 00 44 08 56 55 00 00 00 80 0C DB 14 80 0C DB 34 80 0C DB 54 80 0C DB 74 80 07 61 C8 00 00 01 2D 00 34 02 11 12 00 00 00 80 0E 2C 80 80 0E 2E 38 80 0E 2F 2C 80 0E 31 68 80 07 61 C8 00 00 01 2E 00 34 06 11 12 00 00 00 80 0E 2D 5C 80 0E 2E 3C 80 0E 30 18 80 0E 31 F4 80 07 61 C8 00 00 01 2F 00 34 02 12 13 00 00 00 80 0E 38 4C 80 0E 3B 0C 80 0E 3B 1C 80 0E 3C 38 80 07 61 C8 00 00 01 30 00 34 02 12 13 00 00 00 80 0E 38 88 80 0E 3B 10 80 0E 3B 3C 80 0E 3D 44 80 07 61 C8 00 00 01 31 00 34 06 12 13 00 00 00 80 0E 39 64 80 0E 3B 14 80 0E 3B 5C 80 0E 3D E4 80 07 61 C8 00 00 01 32 00 34 06 12 13 00 00 00 80 0E 39 F0 80 0E 3B 18 80 0E 3B D0 80 0E 3E 40 80 07 61 C8 00 00 01 33 00 34 00 13 14 00 00 00 80 0E 4B 00 80 0E 4B 60 80 0E 4B F8 80 0E 4E 1C 80 07 61 C8 00 00 01 34 00 34 04 13 14 00 00 00 80 0E 4E E8 80 0E 4F 48 80 0E 4F DC 80 0E 50 D8 80 07 61 C8 00 00 01 35 00 34 00 13 14 00 00 00 80 0E 51 F8 80 0E 52 34 80 0E 52 38 80 0E 52 3C 80 07 61 C8 00 00 01 36 00 34 00 13 14 00 00 00 80 0E 53 10 80 0E 53 84 80 0E 53 88 80 0E 54 B8 80 07 61 C8 00 00 01 37 00 34 02 14 15 00 00 00 80 0E 41 5C 00 00 00 00 80 0E 44 08 80 0E 46 B8 80 07 61 C8 00 00 01 38 00 34 02 14 15 00 00 00 80 0E 42 68 00 00 00 00 80 0E 44 9C 80 0E 47 B0 80 07 61 C8 00 00 01 39 00 34 06 14 15 00 00 00 80 0E 42 E0 00 00 00 00 80 0E 45 E4 80 0E 48 BC 80 07 61 C8 00 00 01 3A 00 34 06 14 15 00 00 00 80 0E 43 54 00 00 00 00 80 0E 46 18 80 0E 49 3C 80 07 61 C8 00 00 01 3C 00 34 06 14 15 00 00 00 80 0E 43 90 00 00 00 00 80 0E 46 78 80 0E 49 5C 80 07 61 C8 00 00 01 3B 00 34 02 14 15 00 00 00 80 0E 42 A4 00 00 00 00 80 0E 45 5C 80 0E 48 38 80 07 61 C8 00 00 01 3D 00 34 06 14 15 00 00 00 80 0E 43 CC 00 00 00 00 80 0E 46 98 80 0E 49 DC 80 07 61 C8

If you get a popup that says something about changing the size of the file, hit NO and make sure you highlighted the proper region.
 

Middle Mang

Smash Cadet
Joined
Jul 30, 2016
Messages
28
I just looked more closely at the screenshot you sent me, and it looks like the move logic table got offset somehow, and that is what's causing your issue. The values for subaction IDs are where the values for "flags 2" ought to be. I honestly have no idea how that could have happened :p

My suggestion is to either reset your Start.dol to default, or use a hex editor to replace Captain Falcon's move logic table with the default values.

To do this, open Start.dol in a hex editor(I use HxD and it works great), press ctrl+G and go to 0x3C42B8
Highlight everything from 0x3C42B8 to 0x3C4597 and then copy-paste the values from the spoiler.

00 00 01 27 00 44 08 42 41 00 00 00 80 0C D3 90 80 0C D3 B0 80 0C D3 D0 80 0C D3 F0 80 07 61 C8 00 00 01 28 00 44 08 46 45 00 00 00 80 0C D4 58 80 0C D4 78 80 0C D4 98 80 0C D4 B8 80 07 61 C8 00 00 01 29 00 44 08 4A 49 00 00 00 80 0C D5 20 80 0C D5 40 80 0C D5 60 80 0C D5 80 80 07 61 C8 00 00 01 2A 00 44 08 4E 4D 00 00 00 80 0C D6 A0 80 0C D7 C4 80 0C D7 E4 80 0C D8 04 80 07 61 C8 00 00 01 2B 00 44 08 52 51 00 00 00 80 0C D8 8C 80 0C D8 AC 80 0C D8 CC 80 0C D8 EC 80 07 61 C8 00 00 01 2C 00 44 08 56 55 00 00 00 80 0C DB 14 80 0C DB 34 80 0C DB 54 80 0C DB 74 80 07 61 C8 00 00 01 2D 00 34 02 11 12 00 00 00 80 0E 2C 80 80 0E 2E 38 80 0E 2F 2C 80 0E 31 68 80 07 61 C8 00 00 01 2E 00 34 06 11 12 00 00 00 80 0E 2D 5C 80 0E 2E 3C 80 0E 30 18 80 0E 31 F4 80 07 61 C8 00 00 01 2F 00 34 02 12 13 00 00 00 80 0E 38 4C 80 0E 3B 0C 80 0E 3B 1C 80 0E 3C 38 80 07 61 C8 00 00 01 30 00 34 02 12 13 00 00 00 80 0E 38 88 80 0E 3B 10 80 0E 3B 3C 80 0E 3D 44 80 07 61 C8 00 00 01 31 00 34 06 12 13 00 00 00 80 0E 39 64 80 0E 3B 14 80 0E 3B 5C 80 0E 3D E4 80 07 61 C8 00 00 01 32 00 34 06 12 13 00 00 00 80 0E 39 F0 80 0E 3B 18 80 0E 3B D0 80 0E 3E 40 80 07 61 C8 00 00 01 33 00 34 00 13 14 00 00 00 80 0E 4B 00 80 0E 4B 60 80 0E 4B F8 80 0E 4E 1C 80 07 61 C8 00 00 01 34 00 34 04 13 14 00 00 00 80 0E 4E E8 80 0E 4F 48 80 0E 4F DC 80 0E 50 D8 80 07 61 C8 00 00 01 35 00 34 00 13 14 00 00 00 80 0E 51 F8 80 0E 52 34 80 0E 52 38 80 0E 52 3C 80 07 61 C8 00 00 01 36 00 34 00 13 14 00 00 00 80 0E 53 10 80 0E 53 84 80 0E 53 88 80 0E 54 B8 80 07 61 C8 00 00 01 37 00 34 02 14 15 00 00 00 80 0E 41 5C 00 00 00 00 80 0E 44 08 80 0E 46 B8 80 07 61 C8 00 00 01 38 00 34 02 14 15 00 00 00 80 0E 42 68 00 00 00 00 80 0E 44 9C 80 0E 47 B0 80 07 61 C8 00 00 01 39 00 34 06 14 15 00 00 00 80 0E 42 E0 00 00 00 00 80 0E 45 E4 80 0E 48 BC 80 07 61 C8 00 00 01 3A 00 34 06 14 15 00 00 00 80 0E 43 54 00 00 00 00 80 0E 46 18 80 0E 49 3C 80 07 61 C8 00 00 01 3C 00 34 06 14 15 00 00 00 80 0E 43 90 00 00 00 00 80 0E 46 78 80 0E 49 5C 80 07 61 C8 00 00 01 3B 00 34 02 14 15 00 00 00 80 0E 42 A4 00 00 00 00 80 0E 45 5C 80 0E 48 38 80 07 61 C8 00 00 01 3D 00 34 06 14 15 00 00 00 80 0E 43 CC 00 00 00 00 80 0E 46 98 80 0E 49 DC 80 07 61 C8

If you get a popup that says something about changing the size of the file, hit NO and make sure you highlighted the proper region.
Not used to this kind of thing at all. Anyways, I just replaced the original values with the one from the spoiler and saved it. The move logic table is still offset and the game still crashes when falcon performs grounded side-b or neutral-b. Did I miss a step? I was worried if I completely reset the Start.dol to default I would lose all of the changes I made to other characters, is that correct? Also Punkline Punkline , to kill two birds with one stone, I remember seeing a thread where you discussed super armor. Did you ever get it working perfectly, and if so, how is that added?
 

Punkline

Dr. Frankenstack
Joined
May 15, 2015
Messages
423
Not used to this kind of thing at all. Anyways, I just replaced the original values with the one from the spoiler and saved it. The move logic table is still offset and the game still crashes when falcon performs grounded side-b or neutral-b. Did I miss a step? I was worried if I completely reset the Start.dol to default I would lose all of the changes I made to other characters, is that correct? Also Punkline Punkline , to kill two birds with one stone, I remember seeing a thread where you discussed super armor. Did you ever get it working perfectly, and if so, how is that added?
You talking about this post by Achilles?

I believe these are instructions for the custom character data modification event. Internal player data offset 0x18B4 apparently holds a float that represents super armor. Yoshi toggles it on by setting it to 120.0

Try these 2 events to toggle it on or off:

On - F8FF000C 020018B4 42F00000
Off - F8FF000C 020018B4 00000000

It will toggle off automatically after an action state expires.

---

Also, if you're worried about reverting start.dol and losing move logic/FSM entries for other characters, you can always back up your current start.dol file and recover things later.
 

Tater

Smash Journeyman
Joined
Apr 10, 2014
Messages
201
Location
Socal
NNID
Taternater
3DS FC
2406-5307-2936
I was worried if I completely reset the Start.dol to default I would lose all of the changes I made to other characters, is that correct?
Resetting the Start.dol will remove:

-Any codes added via MCM
-FSM engine patch(if installed) and FSM entries
-Changes made in the Move Logic menu

Any changes to a character's subactions / attributes / special attributes / animation swapping / etc will be kept if you only reset Start.dol

I'm sorry to hear that you couldn't fix the issue, though.
 

DRGN

Technowizard
Moderator
Joined
Aug 20, 2005
Messages
2,179
Location
Sacramento, CA
What regions and files (anything besides the DOL and Pl__.dats?) does CH use for saving custom code?

I just updated MCM a few days ago and updated what regions it uses in the DOL. There are toggle-able options in the GUI so you can choose where exactly it saves custom code, and the regions are also editable in the settings.py file. If you allow all regions, it uses these (not all are enabled by default) -per game version:

( 'vAllCommonCodeRegions':, [
( 0x2C8, 0x398 ), ( 0x39C, 0x498 ), ( 0x4E4, 0x598 ), ( 0x5CC, 0x698 ), # 0xD0, 0xFC, 0xB4, 0xCC = 0x34C
( 0x6CC, 0x798 ), ( 0x8CC, 0x998 ), ( 0x99C, 0xA98 ), ( 0xACC, 0xB98 ), # 0xCC, 0xCC, 0xFC, 0xCC = 0x360
( 0xBCC, 0xE98 ), ( 0xECC, 0xF98 ), ( 0xFCC, 0x1098 ), (0x10CC, 0x1198 ), # 0x2CC, 0xCC, 0xCC, 0xCC = 0x530
( 0x1220, 0x1298 ), ( 0x1308, 0x1398 ), ( 0x1408, 0x1498 ), ( 0x1508, 0x1598 ), # 0x78, 0x90, 0x90, 0x90 = 0x228
( 0x15F0, 0x1698 ), ( 0x16CC, 0x1898 ), ( 0x18CC, 0x1998 ), ( 0x19CC, 0x1E98 ), # 0xA8, 0x1CC, 0xCC, 0x4CC = 0x80C
( 0x1ECC, 0x1F98 ), ( 0x1FCC, 0x2098 ), ( 0x20CC, 0x2198 ) ] ), # 0xCC, 0xCC, 0xCC = 0x264​
# Total space of above: 0x1874

# The following regions are used for the multiplayer tournament mode (which of course will no longer be functional if you use this space).
# If you use this space, you may want to add a code that prevents people from accessing this mode so that the game doesn't crash when someone tries to use it.
( 'v102TournamentModeRegion', [ ( 0x18DCC0, 0x197B2C ) ] ), # Total space: 0x9E6C
( 'v101TournamentModeRegion', [ ( 0x18D674, 0x1974E0 ) ] ), # Total space: 0x9E6C
( 'v100TournamentModeRegion', [ ( 0x18CDC0, 0x196DE0 ) ] ), # Total space: 0xA020
( 'vPALTournamentModeRegion', [ ( 0x18E804, 0x19869C ) ] ), # Total space: 0x9E98​
# The tournament mode regions for versions other than 1.02 have not yet been tested. Please let me know the results if you test them.

# The regions below are for the unused 'USB Screenshot' feature, described here:
# http://smashboards.com/threads/the-dol-mod-topic.326347/page-11#post-19130116
#
# If they are used for custom code, then the following changes also need to be made:
# 0x1a1b64 --> 60000000, 0x1a1c50 --> 60000000 (nops the branch links to these regions; DOL addresses are for v1.02)
# The program will handle the nops above for you if these regions are used, so these nop notes are really just in case you want to do something manually.
( 'v102ScreenshotRegions', [ ( 0x22545c, 0x225644 ), ( 0x329428, 0x329640 ), ( 0x32a890, 0x32a9a0 ), ( 0x32b96c, 0x32c208 ), ( 0x39063c, 0x3907f4 ) ] ),
( 'v101ScreenshotRegions', [ ( 0x224cd4, 0x224ebc ), ( 0x328750, 0x328968 ), ( 0x329bb8, 0x329cc8 ), ( 0x32ac94, 0x32B530 ), ( 0x38f95c, 0x38fb14 ) ] ),
( 'v100ScreenshotRegions', [ ( 0x22414c, 0x224334 ), ( 0x327b00, 0x327d18 ), ( 0x328f68, 0x329078 ), ( 0x32a044, 0x32A8E0 ), ( 0x38e778, 0x38e930 ) ] ),
( 'vPALScreenshotRegions', [ ( 0x2272cc, 0x2274b4 ), ( 0x329704, 0x32991c ), ( 0x32AB6C, 0x32AC7C ), ( 0x32BC48, 0x32C4E4 ), ( 0x390564, 0x39071c ) ] ),​
# Space: 0x1e8 0x218 0x110 0x89c 0x1b8 = 0xF64

# The regions below are used for the game's vanilla Debug Menu, which of course will no longer be functional if you use this space.
# The Debug Mode itself (DbLevel) may still work to some extent, but at the very least you'd need a new method to enter it.
# This region is used automatically if you add Gecko Codes to your game/DOL, for the codeslist. Because of this,
# if you must modify the DebugModeRegion, it's recommended to not modify the first region (especially the first offset of the region).
( 'v102DebugModeRegion', [ ( 0x3f7124, 0x3fac20 ) ] ), # Total space: 0x3AFC (same for all game versions)
( 'v101DebugModeRegion', [ ( 0x3f6444, 0x3f9f40 ) ] ),
( 'v100DebugModeRegion', [ ( 0x3f5294, 0x3f8d90 ) ] ),
( 'vPALDebugModeRegion', [ ( 0x3f7ecc, 0x3fbae8 ) ] ),​
# Recommended to not remove or comment out these regions for now; if you don't want them to be used, just disable them in the GUI.

# These are unused areas containing text likely used for debugging the game, and have been tested to be safe for overwriting.
# The first half of this region is used to store the Gecko codehandler if Gecko codes are enabled. So similarly to the above debug mode regions,
# it's recommended to avoid editing the first region here.
( 'v102AuxCodeRegions', [ ( 0x407950, 0x408f50 ) ] ), # Total space: 0x1600
( 'v101AuxCodeRegions', [ ( 0x406c70, 0x408270 ) ] ),
( 'v100AuxCodeRegions', [ ( 0x405990, 0x406f90 ) ] ),
( 'vPALAuxCodeRegions', [ ( 0x408810, 0x409e10 ) ] )​
])

It will also zero-out all areas that are selected for use before writing codes (even if the code does not fill the entire region(s)). These are all of the free-space regions I know of for custom code in the DOL, besides another region starting at 0x4089b0 (unknown length), which @Achilles1515 used to use for FSM entries in 20XX (not sure if that has changed).

These programs should be completely compatible with each other, but it seems they might need some coordinating to avoid them overwriting each other's codes. I could even add warnings in MCM if someone selects to use a region that CH typically uses. Punkline Punkline was just recently pointing out to me an instance where it looks like it might be happening. Idk if it was in that case, but I can see how it could; it just depends on how much custom code is being saved in MCM (it starts writing codes using the earliest defined regions, and works it's way "up" from there), and what regions CH uses.
 
Last edited:

Middle Mang

Smash Cadet
Joined
Jul 30, 2016
Messages
28
Resetting the Start.dol will remove:

-Any codes added via MCM
-FSM engine patch(if installed) and FSM entries
-Changes made in the Move Logic menu

Any changes to a character's subactions / attributes / special attributes / animation swapping / etc will be kept if you only reset Start.dol

I'm sorry to hear that you couldn't fix the issue, though.
Lmao I wish I came here every time I got something cool to work, maybe it wouldn't seem like I have a million and 1 bugs. Anyways I found a way to fix falcon but now my debug menu freezes the ISO. I need it to be able to check hitboxes and stuff. I was using the "Debug Menu replaces Tournament Mode" code. Once again thanks so much to everyone in here for putting up with this stuff, I was able to make a ton of cool changes and transfer my ideas into reality with your help.
 

StarPlatinum70

Smash Rookie
Joined
Aug 21, 2016
Messages
23
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?
 

Ampers

Smash Journeyman
Joined
Feb 2, 2015
Messages
237
Location
St. Louis, MO
What regions and files (anything besides the DOL and Pl__.dats?) does CH use for saving custom code?

I just updated MCM a few days ago and updated what regions it uses in the DOL. There are toggle-able options in the GUI so you can choose where exactly it saves custom code, and the regions are also editable in the settings.py file. If you allow all regions, it uses these (not all are enabled by default) -per game version:

( 'vAllCommonCodeRegions':, [
( 0x2C8, 0x398 ), ( 0x39C, 0x498 ), ( 0x4E4, 0x598 ), ( 0x5CC, 0x698 ), # 0xD0, 0xFC, 0xB4, 0xCC = 0x34C
( 0x6CC, 0x798 ), ( 0x8CC, 0x998 ), ( 0x99C, 0xA98 ), ( 0xACC, 0xB98 ), # 0xCC, 0xCC, 0xFC, 0xCC = 0x360
( 0xBCC, 0xE98 ), ( 0xECC, 0xF98 ), ( 0xFCC, 0x1098 ), (0x10CC, 0x1198 ), # 0x2CC, 0xCC, 0xCC, 0xCC = 0x530
( 0x1220, 0x1298 ), ( 0x1308, 0x1398 ), ( 0x1408, 0x1498 ), ( 0x1508, 0x1598 ), # 0x78, 0x90, 0x90, 0x90 = 0x228
( 0x15F0, 0x1698 ), ( 0x16CC, 0x1898 ), ( 0x18CC, 0x1998 ), ( 0x19CC, 0x1E98 ), # 0xA8, 0x1CC, 0xCC, 0x4CC = 0x80C
( 0x1ECC, 0x1F98 ), ( 0x1FCC, 0x2098 ), ( 0x20CC, 0x2198 ) ] ), # 0xCC, 0xCC, 0xCC = 0x264​
# Total space of above: 0x1874

# The following regions are used for the multiplayer tournament mode (which of course will no longer be functional if you use this space).
# If you use this space, you may want to add a code that prevents people from accessing this mode so that the game doesn't crash when someone tries to use it.
( 'v102TournamentModeRegion', [ ( 0x18DCC0, 0x197B2C ) ] ), # Total space: 0x9E6C
( 'v101TournamentModeRegion', [ ( 0x18D674, 0x1974E0 ) ] ), # Total space: 0x9E6C
( 'v100TournamentModeRegion', [ ( 0x18CDC0, 0x196DE0 ) ] ), # Total space: 0xA020
( 'vPALTournamentModeRegion', [ ( 0x18E804, 0x19869C ) ] ), # Total space: 0x9E98​
# The tournament mode regions for versions other than 1.02 have not yet been tested. Please let me know the results if you test them.

# The regions below are for the unused 'USB Screenshot' feature, described here:
# http://smashboards.com/threads/the-dol-mod-topic.326347/page-11#post-19130116
#
# If they are used for custom code, then the following changes also need to be made:
# 0x1a1b64 --> 60000000, 0x1a1c50 --> 60000000 (nops the branch links to these regions; DOL addresses are for v1.02)
# The program will handle the nops above for you if these regions are used, so these nop notes are really just in case you want to do something manually.
( 'v102ScreenshotRegions', [ ( 0x22545c, 0x225644 ), ( 0x329428, 0x329640 ), ( 0x32a890, 0x32a9a0 ), ( 0x32b96c, 0x32c208 ), ( 0x39063c, 0x3907f4 ) ] ),
( 'v101ScreenshotRegions', [ ( 0x224cd4, 0x224ebc ), ( 0x328750, 0x328968 ), ( 0x329bb8, 0x329cc8 ), ( 0x32ac94, 0x32B530 ), ( 0x38f95c, 0x38fb14 ) ] ),
( 'v100ScreenshotRegions', [ ( 0x22414c, 0x224334 ), ( 0x327b00, 0x327d18 ), ( 0x328f68, 0x329078 ), ( 0x32a044, 0x32A8E0 ), ( 0x38e778, 0x38e930 ) ] ),
( 'vPALScreenshotRegions', [ ( 0x2272cc, 0x2274b4 ), ( 0x329704, 0x32991c ), ( 0x32AB6C, 0x32AC7C ), ( 0x32BC48, 0x32C4E4 ), ( 0x390564, 0x39071c ) ] ),​
# Space: 0x1e8 0x218 0x110 0x89c 0x1b8 = 0xF64

# The regions below are used for the game's vanilla Debug Menu, which of course will no longer be functional if you use this space.
# The Debug Mode itself (DbLevel) may still work to some extent, but at the very least you'd need a new method to enter it.
# This region is used automatically if you add Gecko Codes to your game/DOL, for the codeslist. Because of this,
# if you must modify the DebugModeRegion, it's recommended to not modify the first region (especially the first offset of the region).
( 'v102DebugModeRegion', [ ( 0x3f7124, 0x3fac20 ) ] ), # Total space: 0x3AFC (same for all game versions)
( 'v101DebugModeRegion', [ ( 0x3f6444, 0x3f9f40 ) ] ),
( 'v100DebugModeRegion', [ ( 0x3f5294, 0x3f8d90 ) ] ),
( 'vPALDebugModeRegion', [ ( 0x3f7ecc, 0x3fbae8 ) ] ),​
# Recommended to not remove or comment out these regions for now; if you don't want them to be used, just disable them in the GUI.

# These are unused areas containing text likely used for debugging the game, and have been tested to be safe for overwriting.
# The first half of this region is used to store the Gecko codehandler if Gecko codes are enabled. So similarly to the above debug mode regions,
# it's recommended to avoid editing the first region here.
( 'v102AuxCodeRegions', [ ( 0x407950, 0x408f50 ) ] ), # Total space: 0x1600
( 'v101AuxCodeRegions', [ ( 0x406c70, 0x408270 ) ] ),
( 'v100AuxCodeRegions', [ ( 0x405990, 0x406f90 ) ] ),
( 'vPALAuxCodeRegions', [ ( 0x408810, 0x409e10 ) ] )​
])

It will also zero-out all areas that are selected for use before writing codes (even if the code does not fill the entire region(s)). These are all of the free-space regions I know of for custom code in the DOL, besides another region starting at 0x4089b0 (unknown length), which @Achilles1515 used to use for FSM entries in 20XX (not sure if that has changed).

These programs should be completely compatible with each other, but it seems they might need some coordinating to avoid them overwriting each other's codes. I could even add warnings in MCM if someone selects to use a region that CH typically uses. Punkline Punkline was just recently pointing out to me an instance where it looks like it might be happening. Idk if it was in that case, but I can see how it could; it just depends on how much custom code is being saved in MCM (it starts writing codes using the earliest defined regions, and works it's way "up" from there), and what regions CH uses.
Well actually in the next version of CH (If I ever get around to releasing it...) removes the ability the apply dol mods and instead just requires conjunction with MCM. Your program is a million times more robust than CH for applying injection mods so there's no reason to keep it, or to reinvent the wheel.

However, who knows when I'll actually have time to finish the next version. I've already said twice now that I was close to being done and then disappeared into the shadows, haha. So if you want to add flags for what space CH uses, it injects the FSM engine at 0x4088B0 and the FSM entries start at 0x4089B0 (directly after the FSM engine code).
 

DRGN

Technowizard
Moderator
Joined
Aug 20, 2005
Messages
2,179
Location
Sacramento, CA
Well actually in the next version of CH (If I ever get around to releasing it...) removes the ability the apply dol mods and instead just requires conjunction with MCM. Your program is a million times more robust than CH for applying injection mods so there's no reason to keep it, or to reinvent the wheel.

However, who knows when I'll actually have time to finish the next version. I've already said twice now that I was close to being done and then disappeared into the shadows, haha. So if you want to add flags for what space CH uses, it injects the FSM engine at 0x4088B0 and the FSM entries start at 0x4089B0 (directly after the FSM engine code).
So it looks like it's just a slight overlap with the last region used by MCM. So one would have to fill nearly all of the free space in their DOL with other codes to encounter a conflict. I could still adjust the last region though to prevent this.

What is the end point for the FSM entries? If that area is all tested to be safe for custom code, I can just add that as another separate region that can be used in MCM. Disabled by default, and if they enable it, they'll be prompted with a warning that tells them that CH will want to use that space. (Could also include a caveat of 'Crazy Hand versions 1.31 and below', if you end up changing that.) If this is done, do you think it would still be beneficial to remove the FSM injection from CH?
 

Ampers

Smash Journeyman
Joined
Feb 2, 2015
Messages
237
Location
St. Louis, MO
So it looks like it's just a slight overlap with the last region used by MCM. So one would have to fill nearly all of the free space in their DOL with other codes to encounter a conflict. I could still adjust the last region though to prevent this.

What is the end point for the FSM entries? If that area is all tested to be safe for custom code, I can just add that as another separate region that can be used in MCM. Disabled by default, and if they enable it, they'll be prompted with a warning that tells them that CH will want to use that space. (Could also include a caveat of 'Crazy Hand versions 1.31 and below', if you end up changing that.) If this is done, do you think it would still be beneficial to remove the FSM injection from CH?
CH actually does not have a defined limit on FSM entries. If you continue to add new modifiers, it will continue to add them until the dol file ends. However, I believe that I have applied enough modifiers that it did in fact break the game at some point. It was a while ago and I can't quite remember the details, but I made a mod that used an absurd number of modifiers (100+) that eventually just crashed when the game started once I reached a certain number of modifiers. I compared the dol of that mod to a clean version of melee and I couldn't find any particular spot that seemed like it could have been the point where junk data ended and important data started.
 

Ampers

Smash Journeyman
Joined
Feb 2, 2015
Messages
237
Location
St. Louis, MO
While we're on the topic I think it would be good to share this demo.
Place the .jar in the same directory as CH v1.31 in order for it to work!

Because I'm taking my sweet, sweet time releasing the next version of Crazy Hand, I at least want people to be able to play with this because I think a lot of people will be happy (or at least happier) with it.
I completely redid the way FSM editing is handled in Crazy Hand, and this .jar a small build that only contains the new FSM editor. Honestly the FSM handler has been one of the worst things about Crazy Hand, I'm actually embarrassed it's been so bad for so long. This build helps to remedy the problem. It is incomplete, has some bugs, and it's pretty ugly, but it's what I have been using for applying FSM's for a while now and it is pretty stable.

What's new:


-FSM entries are now grouped by character, so the editor will only show modifiers for the character that you have selected from the drop-down box.
-FSM entries are now grouped together by type, so if you have multiple modifiers on the same subaction, they will be grouped together for convenience.
-It's no longer slow and clunky. The editor had two glaring issues before: The program would slow down drastically as you added more modifiers, and the scroll bar would return to the top of the window every time you added a new modifier. Both of these issues have been fixed.

Note:

-This build will NOT apply the FSM engine, you must use an ISO that already has it applied by CH v1.31


fsm.PNG




Hope you like it :)
 
Top Bottom