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!
It appears that you are using ad block :'(
Hey, we get it. However this website is run by and for the community... and it needs ads in order to keep running.
Please disable your adblock on Smashboards, or go premium to hide all advertisements and this notice. Alternatively, this ad may have just failed to load. Woops!
Very bizarre... Have you had problems with any other features in Crazy Hand not working, or is this the first one you've noticed?
Would you post a snapshot of what your FSM editor panel in Crazy Hand looks like? I want to check and see if it looks right.
Edit: Also if you haven't tried already, I would recommend taking a completely clean v1.02 iso and trying with that one. Possibly you're testing with an iso that has some other kind of jankiness on it. I just tested exactly what I said and had no issues.
Going to the Move Logic tab freezes the program, but that's probably because I didn't download the thing that goes with it yet. Besides that, nothing.
I uploaded the screenshot.
It should be noted that when I open a completely clean iso, apply the FSM patch, and navigated over to the FSM panel, the modifier was already there. I deleted the modifier and re-added it just for testing purposes. No dice. But the fact that the modifier was there regardless should probably point us in the right direction...
Going to the Move Logic tab freezes the program, but that's probably because I didn't download the thing that goes with it yet. Besides that, nothing.
I uploaded the screenshot.
It should be noted that when I open a completely clean iso, apply the FSM patch, and navigated over to the FSM panel, the modifier was already there. I deleted the modifier and re-added it just for testing purposes. No dice. But the fact that the modifier was there regardless should probably point us in the right direction...
Everything looks correct. Sorry, I don't know what the issue could be but I'll definitely be looking into it. If you'd be willing, I may also PM you in the future with a test build to see how it runs for you.
Also... this is my first time seeing what Crazy Hand's GUI looks like on a non-windows OS and I'm seeing that some things aren't displaying quite right. The character select window should display the whole image, and the text combo boxes should be wide enough to fit all of the text without an ellipsis. Also there's so much more whitespace than on windows. This makes me worried that other things aren't displaying right either.
Would you mind posting screenshots of the other panels of Crazy Hand? I'd like to see how everything else is displaying.
Actually the FSM stuff just get exported as a plain .txt file. "options.cfg" must be what he's referring to which is auto-generated by CH and is only used by the program to manage user settings (default iso directory and a couple other flags). You shouldn't ever need to open this file, and deleting it is just fine, it will generate a new one.
What happens when you try to use it? And what version of melee are you using (1.02, 1.01, 1.00, PAL)? I'm working on a new update for CH so I'll look it. Unfortunately I've never been able to test CH on Mac or Linux because I only have windows. The DOL patching system should be getting a complete makeover in the next release.
Everything looks correct. Sorry, I don't know what the issue could be but I'll definitely be looking into it. If you'd be willing, I may also PM you in the future with a test build to see how it runs for you.
Also... this is my first time seeing what Crazy Hand's GUI looks like on a non-windows OS and I'm seeing that some things aren't displaying quite right. The character select window should display the whole image, and the text combo boxes should be wide enough to fit all of the text without an ellipsis. Also there's so much more whitespace than on windows. This makes me worried that other things aren't displaying right either.
Would you mind posting screenshots of the other panels of Crazy Hand? I'd like to see how everything else is displaying.
It should be noted that I had to stretch the window for that screenshot in order to see all the fields. With the default window size, this is what all the panels (except Move Logic) look like:
It should be noted that I had to stretch the window for that screenshot in order to see all the fields. With the default window size, this is what all the panels (except Move Logic) look like:
Awesome. Might be a while before I have a test build ready but I'll let you know when I do.
And after seeing those screenshots for CH on Mac... yikes. The window sizes should by default be set so that everything fits in the frame horizontally. I'll see what I can do to fix this, but that may be pretty difficult since I have no easy access to a Mac for testing. I'll see what I can do.
I will say though, the native GUI components mac has look soooo much better than the ones windows has haha. I'm jelly.
Sorry man, I didn't mean to ignore you. I'm super busy right now so I can't help atm, but in the meantime answer these:
Is Java up to date on your computer?
Does it immediately close? Can you see the main window open at all?
Are you sure the iso you are using isn't corrupted?
What's your OS?
If you know how to run it from console, what does the log say when it crashes?
Awesome. Might be a while before I have a test build ready but I'll let you know when I do.
And after seeing those screenshots for CH on Mac... yikes. The window sizes should by default be set so that everything fits in the frame horizontally. I'll see what I can do to fix this, but that may be pretty difficult since I have no easy access to a Mac for testing. I'll see what I can do.
I will say though, the native GUI components mac has look soooo much better than the ones windows has haha. I'm jelly.
Thanks for the tip I'll look into it. I forgot about look and feel.
Just to make sure I understood you right, Mac's L&F can be changed, you just can't set other operating systems to have the one Mac has by default, right?
Sorry man, I didn't mean to ignore you. I'm super busy right now so I can't help atm, but in the meantime answer these:
Is Java up to date on your computer?
Does it immediately close? Can you see the main window open at all?
Are you sure the iso you are using isn't corrupted?
What's your OS?
If you know how to run it from console, what does the log say when it crashes?
Thanks for the tip I'll look into it. I forgot about look and feel.
Just to make sure I understood you right, Mac's L&F can be changed, you just can't set other operating systems to have the one Mac has by default, right?
I'm having the same problem as Binvin
- I just have different specs.
Ubuntu 15.04 with OpenJDK 8, ISO works, and when I try running from console, it says it cannot access the jarfile? But it opens to the choose ISO window. When I click Open, it closes.
I'm having the same problem as Binvin
- I just have different specs.
Ubuntu 15.04 with OpenJDK 8, ISO works, and when I try running from console, it says it cannot access the jarfile? But it opens to the choose ISO window. When I click Open, it closes.
advfsm:true
PlKp.dat
File is 0x2fd00 bytes in length.
false
java.io.FileNotFoundException: def\102\PlKp.dat (The system cannot find the path specified)
at java.io.RandomAccessFile.open0(Native Method)
at java.io.RandomAccessFile.open(Unknown Source)
at java.io.RandomAccessFile.<init>(Unknown Source)
at java.io.RandomAccessFile.<init>(Unknown Source)
at com.FileIO.getDefaultSubactions(FileIO.java:355)
at com.FileIO.getDefaultSubactions(FileIO.java:348)
at com.MeleeEdit.<init>(MeleeEdit.java:145)
at com.MeleeEdit$1.run(MeleeEdit.java:1088)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at javax.swing.DefaultComboBoxModel.<init>(Unknown Source)
at javax.swing.JComboBox.<init>(Unknown Source)
at com.MeleeEdit.<init>(MeleeEdit.java:145)
at com.MeleeEdit$1.run(MeleeEdit.java:1088)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
trying to run from the Toolbox. I can't release 2.77 when this happens. I'm not very knowledgeable in Java, but it seems like Crazy Hand cannot find the resource files when loading from MTB.
Took me 20 minutes to figure this out today, a regression since the original release.
e~ solved the issue in toolbox using shifty directory swapping. still a pretty bad issue though.
advfsm:true
PlKp.dat
File is 0x2fd00 bytes in length.
false
java.io.FileNotFoundException: def\102\PlKp.dat (The system cannot find the path specified)
at java.io.RandomAccessFile.open0(Native Method)
at java.io.RandomAccessFile.open(Unknown Source)
at java.io.RandomAccessFile.<init>(Unknown Source)
at java.io.RandomAccessFile.<init>(Unknown Source)
at com.FileIO.getDefaultSubactions(FileIO.java:355)
at com.FileIO.getDefaultSubactions(FileIO.java:348)
at com.MeleeEdit.<init>(MeleeEdit.java:145)
at com.MeleeEdit$1.run(MeleeEdit.java:1088)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at javax.swing.DefaultComboBoxModel.<init>(Unknown Source)
at javax.swing.JComboBox.<init>(Unknown Source)
at com.MeleeEdit.<init>(MeleeEdit.java:145)
at com.MeleeEdit$1.run(MeleeEdit.java:1088)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
trying to run from the Toolbox. I can't release 2.77 when this happens. I'm not very knowledgeable in Java, but it seems like Crazy Hand cannot find the resource files when loading from MTB.
Took me 20 minutes to figure this out today, a regression since the original release.
e~ solved the issue in toolbox using shifty directory swapping. still a pretty bad issue though.
Uhh if you want to avoid jankiness, I could probably add in the ability to specify the root directory to read those files from as a command-line argument when executing CH. I don't fully know what the problem your having is but that may make things simpler.
I've been using this program for a while, and I have to say, it's really great. I would really appreciate it if somebody could give or link me a run-through of the character attributes that is loaded by the program by default (like dash & run A, etc) because I'm trying to do something with Luigi, and after modifying some properties, he still has his same length wavedash (which I'm trying to decrease.) I tried looking through the SSBM data sheet but they have the same descriptions that are shown from Master Hand.
I've been using this program for a while, and I have to say, it's really great. I would really appreciate it if somebody could give or link me a run-through of the character attributes that is loaded by the program by default (like dash & run A, etc) because I'm trying to do something with Luigi, and after modifying some properties, he still has his same length wavedash (which I'm trying to decrease.) I tried looking through the SSBM data sheet but they have the same descriptions that are shown from Master Hand.
I've been using this program for a while, and I have to say, it's really great. I would really appreciate it if somebody could give or link me a run-through of the character attributes that is loaded by the program by default (like dash & run A, etc) because I'm trying to do something with Luigi, and after modifying some properties, he still has his same length wavedash (which I'm trying to decrease.) I tried looking through the SSBM data sheet but they have the same descriptions that are shown from Master Hand.
Wavedashing is largely affected by "Friction / stop deccel". The lower the value, the less your momentum will decay over time. (I.E setting this value to zero results in no loss of momentum on the ground, negative values cause your momentum to grow, and values at one or above immediately halt all horizontal momentum on the ground.)
I think "Ground to air jump momentum multiplier" also has an influence on wavedashing/wavelanding.
Air mobility A effects how well your character can move horizontally in the air via control stick inputs(For instance, Jigglypuff has a high value and she has a large amount of control over her movement in the air). This *may* effect wavedashing/landing as well.
I was wondering what flag affects what moves can be cancelled by the boomerang as link/young link, would it be possible to change what moves can be cancelled or even allow all moves to be cancelled?
Found a glitch in crazy hand, replacing a subaction with an (unknown) subaction that starts with 02xxxxxx is read as the end of the subaction, likely because of the trailing 0.
Found a glitch in crazy hand, replacing a subaction with an (unknown) subaction that starts with 02xxxxxx is read as the end of the subaction, likely because of the trailing 0.
I'll add it to my to-do list.
Additionally, the next version of Crazy Hand will allow users to enter their own formats to be recognized by Crazy Hand. You won't be able to add things like new text fields or drop down menus, but you will be able to have CH recognize new event IDs and how long they are. This will hopefully be helpful for people like you who find new formats often.
IIRC it has to do with ground traction, I don't remember if that's the exact name it has in crazyhand but it's the attribute that controls how far you slide on the ground once you stop moving (aka how quickly your momentum diminishes after traveling in a direction)
It might also be affected by the speed/distance of your air dodge, but I've got no idea how to alter that outside framespeed modifiers
Take the hitbox radius/axis offsets and multiply by 0.003906 to get the Meleemeter equivalent.
With this knowledge, you should be able to accurately make a GUI of what a hitbox radius will look like.
(Not that this couldn't already have been figured out with Magus' physics hack).
Hey Tater
I just realized that some flags and a “move ID” I’ve been poking and prodding at in RAM for a couple weeks match all of the flags used in the Move Logic table included with v1.31. Actually, I can reconstruct the whole table as currently loaded player data from the player data table (which presumably load off of the values editable here in Crazy Hand.)
To see these in Dolphin or Cheat Engine, follow a player data pointer (ex, P1 is pointed to by 0x80453130, P2 by 0x804534C0) and add the following offsets to the resulting pointer to get the exact address in RAM of any of the following during a game:
(Edit: I've updated these to use internal player data offsets)
Also, the function pointers--I’ve been playing with these a bit lately and I think they have the potential to make Achilles’ recent chimera of a subaction event dance in ways that are really interesting:
0x219C - IASA function pointer 0x21A0 - Animation Interrupt function pointer 0x21A4 - Action Physics function pointer 0x21A8 - Collision Interrupt function pointer 0x21AC - Camera Behaviour function pointer
Here’s something I’m pretty certain of:
byte 0x3 of “flags 1” --
This is actually an ID. I’ve been using it as a “move ID” since it uniquely categorizes every move in a simple way that’s common between characters.
Code:
ID Move Description
01 jab1
02 jab2
03 jab3
04 jabLoop
05 dash attack
06 ground f-tilt
07 ground u-tilt
08 ground d-tilt
09 f-smash
0A u-smash
0B d-smash
0C n-air
0D f-air
0E b-air
0F u-air
10 d-air
11 n-special (ground and air use these)
12 f-special
13 u-special
14 d-special
...
33 grab
34 grab jab
35 f-throw
36 b-throw
37 u-throw
38 d-throw
...
40 jab with Beamsword
41 tilt with Beamsword
42 smash with Beamsword
43 dash attack with Beamsword
44 jab with Homerun Bat
45 tilt with Homerun Bat
46 smash with Homerun Bat
47 dash attack with Homerun Bat
4C jab with Parasol
4D tilt with Parasol
4E smash with Parasol
4F dash attack with Parasol
4C jab with Fan
4D tilt with Fan
4E smash with Fan
4F dash attack with Fan
50 jab with Star Rod
51 tilt with Star Rod
52 smash with Star Rod
53 dash attack with Star Rod
54 jab with Lipstick
55 tilt with Lipstick
56 smash with Lipstick
57 dash attack with Lipstick
58 ??
59 shoot raygun
5A use fireflower
5B ??
5C tap superscope
5D full shot superscope
5E Hammertime
5F Waprstar
...
62 throw item
63 Luigi taunt (lol)
64 turn around
65 ??
66 walking
67 dash start
68 dash loop
69 jump
6A double jump
6B bounce of wall
6C downed (up facing)
6D downed (down facing)
70 grab ledge
71 taunt
Also, “flags 2” appears to be a version of the above Move ID that isn’t 0-based. From what I can tell, it just adds 1 to byte 0x3 of “flags 1”
I also know just a couple of things about the flags:
byte 0x0 of “flags 1” -- Just padding? I’ve never seen something write to this byte.
byte 0x1 of “flags 1” --
I’ve loosely interpreted some of these bits:
Code:
80 move anchors something to bone?
40 something to do with items/downed state
20 ?
10 special moves/tumble
08 followup is available (for some moves)
04 ? (attacks?)
02 in tumble/flinching from grab jab
01 ?
byte 0x2 of “flags 1”--
Again, loosely interpreted:
I can also confirm what Itaru
said about Event 94 -- the effect can be seen normally in the “blink” animation for various teleport-like moves. It also seems to have 2 sister events, each of which use the exact same syntax:
Event 8C -- toggles held item visibility Event 90 -- toggles visibility of other articles (tested with the Bunny Hood)
Here are my notes on a few other unknown subaction events:
30 00 00 XX
--”Adjust Hitbox Damage”
XX -- Damage to replace hitbox value
note that there is a 3-bit hitbox ID in the first 2 bytes that is identical to 2C events:
xxxx xxii ixxx xxxx
64 00 00 0X
--”Ground Anchor?” (Don't know much about this one; used in many recovery moves)
0 - seems to move the player to nearest point on last used platform/surface (gfycat)
1 - ?
2 - ?
A4 XX Y0 00
--”Animate Bodypart”
XX - body part selector (ex: 18 = Fox’s left eye, 20 = Fox’s right eye, 00 = Fox’s left hand)
Y - Animation state (ex: 0 = closed eye, 1 = half-closed eye, 2 = open eye, 3 = tightly closed eye)
C4 00 00 0X
--”Sword Trail Visibility”
Input written to player.0x2160
byte appears to use "0" "1" and "2" to initialize a status "3" of being on; and "FF" when off.
X = 0-based number of sword trails? May be something else, but increases number of trails.
special syntax C5 FF FF FF equates to “-1” byte; used to terminate sword trail
Hey Tater
I just realized that some flags and a “move ID” I’ve been poking and prodding at in RAM for a couple weeks match all of the flags used in the Move Logic table included with v1.31. Actually, I can reconstruct the whole table as currently loaded player data from the player data table (which presumably load off of the values editable here in Crazy Hand.)
To see these in Dolphin or Cheat Engine, follow a player data pointer (ex, P1 is pointed to by 0x80453130, P2 by 0x804534C0) and add the following offsets to the resulting pointer to get the exact address in RAM of any of the following during a game:
Also, the function pointers--I’ve been playing with these a bit lately and I think they have the potential to make Achilles’ recent chimera of a subaction event dance in ways that are really interesting:
player.0x21FC - IASA function pointer player.0x2200 - Animation Interrupt function pointer player.0x2204 - Action Physics function pointer player.0x2208 - Collision Interrupt function pointer player.0x220C - Camera Behaviour function pointer
Here’s something I’m pretty certain of:
byte 0x3 of “flags 1” --
This is actually an ID. I’ve been using it as a “move ID” since it uniquely categorizes every move in a simple way that’s common between characters.
Code:
ID Move Description
01 jab1
02 jab2
03 jab3
04 jabLoop
05 dash attack
06 ground f-tilt
07 ground u-tilt
08 ground d-tilt
09 f-smash
0A u-smash
0B d-smash
0C n-air
0D f-air
0E b-air
0F u-air
10 d-air
11 n-special (ground and air use these)
12 f-special
13 u-special
14 d-special
...
33 grab
34 grab jab
35 f-throw
36 b-throw
37 u-throw
38 d-throw
...
40 jab with Beamsword
41 tilt with Beamsword
42 smash with Beamsword
43 dash attack with Beamsword
44 jab with Homerun Bat
45 tilt with Homerun Bat
46 smash with Homerun Bat
47 dash attack with Homerun Bat
4C jab with Parasol
4D tilt with Parasol
4E smash with Parasol
4F dash attack with Parasol
4C jab with Fan
4D tilt with Fan
4E smash with Fan
4F dash attack with Fan
50 jab with Star Rod
51 tilt with Star Rod
52 smash with Star Rod
53 dash attack with Star Rod
54 jab with Lipstick
55 tilt with Lipstick
56 smash with Lipstick
57 dash attack with Lipstick
58 ??
59 shoot raygun
5A use fireflower
5B ??
5C tap superscope
5D full shot superscope
5E Hammertime
5F Waprstar
...
62 throw item
63 Luigi taunt (lol)
64 turn around
65 ??
66 walking
67 dash start
68 dash loop
69 jump
6A double jump
6B bounce of wall
6C downed (up facing)
6D downed (down facing)
70 grab ledge
71 taunt
Also, “flags 2” appears to be a version of the above Move ID that isn’t 0-based. From what I can tell, it just adds 1 to byte 0x3 of “flags 1”
I also know just a couple of things about the flags:
byte 0x0 of “flags 1” -- Just padding? I’ve never seen something write to this byte.
byte 0x1 of “flags 1” --
I’ve loosely interpreted some of these bits:
Code:
80 move anchors something to bone?
40 something to do with items/downed state
20 ?
10 special moves/tumble
08 followup is available (for some moves)
04 ? (attacks?)
02 in tumble/flinching from grab jab
01 ?
byte 0x2 of “flags 1”--
Again, loosely interpreted:
I can also confirm what Itaru
said about Event 94 -- the effect can be seen normally in the “blink” animation for various teleport-like moves. It also seems to have 2 sister events, each of which use the exact same syntax:
Event 8C -- toggles held item visibility Event 90 -- toggles visibility of other articles (tested with the Bunny Hood)
Here are my notes on a few other unknown subaction events:
30 00 00 XX
--”Adjust Hitbox Damage”
XX -- Damage to replace hitbox value
note that there is a 3-bit hitbox ID in the first 2 bytes that is identical to 2C events:
xxxx xxii ixxx xxxx
64 00 00 0X
--”Ground Anchor?” (Don't know much about this one; used in many recovery moves)
0 - seems to move the player to nearest point on last used platform/surface (gfycat)
1 - ?
2 - ?
A4 XX Y0 00
--”Animate Bodypart”
XX - body part selector (ex: 18 = Fox’s left eye, 20 = Fox’s right eye, 00 = Fox’s left hand)
Y - Animation state (ex: 0 = closed eye, 1 = half-closed eye, 2 = open eye, 3 = tightly closed eye)
C4 00 00 0X
--”Sword Trail Visibility”
Input written to player.0x2160
byte appears to use "0" "1" and "2" to initialize a status "3" of being on; and "FF" when off.
X = 0-based number of sword trails? May be something else, but increases number of trails.
special syntax C5 FF FF FF equates to “-1” byte; used to terminate sword trail
Hey Tater
I just realized that some flags and a “move ID” I’ve been poking and prodding at in RAM for a couple weeks match all of the flags used in the Move Logic table included with v1.31. Actually, I can reconstruct the whole table as currently loaded player data from the player data table (which presumably load off of the values editable here in Crazy Hand.)
To see these in Dolphin or Cheat Engine, follow a player data pointer (ex, P1 is pointed to by 0x80453130, P2 by 0x804534C0) and add the following offsets to the resulting pointer to get the exact address in RAM of any of the following during a game:
Also, the function pointers--I’ve been playing with these a bit lately and I think they have the potential to make Achilles’ recent chimera of a subaction event dance in ways that are really interesting:
player.0x21FC - IASA function pointer player.0x2200 - Animation Interrupt function pointer player.0x2204 - Action Physics function pointer player.0x2208 - Collision Interrupt function pointer player.0x220C - Camera Behaviour function pointer
Here’s something I’m pretty certain of:
byte 0x3 of “flags 1” --
This is actually an ID. I’ve been using it as a “move ID” since it uniquely categorizes every move in a simple way that’s common between characters.
Code:
ID Move Description
01 jab1
02 jab2
03 jab3
04 jabLoop
05 dash attack
06 ground f-tilt
07 ground u-tilt
08 ground d-tilt
09 f-smash
0A u-smash
0B d-smash
0C n-air
0D f-air
0E b-air
0F u-air
10 d-air
11 n-special (ground and air use these)
12 f-special
13 u-special
14 d-special
...
33 grab
34 grab jab
35 f-throw
36 b-throw
37 u-throw
38 d-throw
...
40 jab with Beamsword
41 tilt with Beamsword
42 smash with Beamsword
43 dash attack with Beamsword
44 jab with Homerun Bat
45 tilt with Homerun Bat
46 smash with Homerun Bat
47 dash attack with Homerun Bat
4C jab with Parasol
4D tilt with Parasol
4E smash with Parasol
4F dash attack with Parasol
4C jab with Fan
4D tilt with Fan
4E smash with Fan
4F dash attack with Fan
50 jab with Star Rod
51 tilt with Star Rod
52 smash with Star Rod
53 dash attack with Star Rod
54 jab with Lipstick
55 tilt with Lipstick
56 smash with Lipstick
57 dash attack with Lipstick
58 ??
59 shoot raygun
5A use fireflower
5B ??
5C tap superscope
5D full shot superscope
5E Hammertime
5F Waprstar
...
62 throw item
63 Luigi taunt (lol)
64 turn around
65 ??
66 walking
67 dash start
68 dash loop
69 jump
6A double jump
6B bounce of wall
6C downed (up facing)
6D downed (down facing)
70 grab ledge
71 taunt
Also, “flags 2” appears to be a version of the above Move ID that isn’t 0-based. From what I can tell, it just adds 1 to byte 0x3 of “flags 1”
I also know just a couple of things about the flags:
byte 0x0 of “flags 1” -- Just padding? I’ve never seen something write to this byte.
byte 0x1 of “flags 1” --
I’ve loosely interpreted some of these bits:
Code:
80 move anchors something to bone?
40 something to do with items/downed state
20 ?
10 special moves/tumble
08 followup is available (for some moves)
04 ? (attacks?)
02 in tumble/flinching from grab jab
01 ?
byte 0x2 of “flags 1”--
Again, loosely interpreted:
I can also confirm what Itaru
said about Event 94 -- the effect can be seen normally in the “blink” animation for various teleport-like moves. It also seems to have 2 sister events, each of which use the exact same syntax:
Event 8C -- toggles held item visibility Event 90 -- toggles visibility of other articles (tested with the Bunny Hood)
Here are my notes on a few other unknown subaction events:
30 00 00 XX
--”Adjust Hitbox Damage”
XX -- Damage to replace hitbox value
note that there is a 3-bit hitbox ID in the first 2 bytes that is identical to 2C events:
xxxx xxii ixxx xxxx
64 00 00 0X
--”Ground Anchor?” (Don't know much about this one; used in many recovery moves)
0 - seems to move the player to nearest point on last used platform/surface (gfycat)
1 - ?
2 - ?
A4 XX Y0 00
--”Animate Bodypart”
XX - body part selector (ex: 18 = Fox’s left eye, 20 = Fox’s right eye, 00 = Fox’s left hand)
Y - Animation state (ex: 0 = closed eye, 1 = half-closed eye, 2 = open eye, 3 = tightly closed eye)
C4 00 00 0X
--”Sword Trail Visibility”
Input written to player.0x2160
byte appears to use "0" "1" and "2" to initialize a status "3" of being on; and "FF" when off.
X = 0-based number of sword trails? May be something else, but increases number of trails.
special syntax C5 FF FF FF equates to “-1” byte; used to terminate sword trail
I've gotten some very janky things from the sword trails with different values, some seeming like they are trying to predict the previous position of the sword from its current position(might just be in my mind though), also high values causes some strange effects and crashing.