Okay, I still need to do the Framespeed and Hitbox Modifier codes, but I thought I'd let you know that some reformatting would be nice. I've added a few features to the Launch/Grav codes that hopefully you'll find useful for when I release them (still have to fix bugs but I'd rather do that once I have a full set of betas).
Velocity Modifiers Format:
AAAA/CCCC/EEEE is a specific value that corresponds to each velocity type, and I'll provide a sample list with the code. B/D/F correspond to the position in the 8 digit data block; Z is the position of the Overall Gravity Modifier.
01234567
ABCDEFGH
16 Floats Code Format:
where AAA etc. are the 16 floats in order from 0 to F.
Custom Gravity Modifiers Format:
Where XX/AA are a character ID (or 0xFF for a wildcard), YYYY/CCCC are the last 16-bits of the action ID (generally this is just the action ID but there are some cases where this is not true; for example, Metaknight's Tornado Gravity after he touches the floor gains the value 0x4FD8). Z/B are a value corresponding to one of the 16 Floats describing which one to use for this specific action in place of the character's normal gravity change. Information on how to collect specific information will be provided with the codes.
Data Index Format:
For each character in order, with ABCDEFGH being the positions of the fractions defined by the Velocity Modifiers code, and NNNNNNNN being a 32-bit value for momentum (75% is 0.75).
Frame Speed Float Changes:
Consider:
This would be changed to:
The actual change to speed will be negligible as a result, but this is required for the code to function at its most efficient.
Hitbox Changes:
Characters must have all their data written together (in any order). All non-character (e.g. projectile) changes should be listed together. Within each list, items should be organized by Action ID (from lowest to highest).
I realise this is quite a large change, but I like making you sweat.
- I'd like you to change it so that in the 16 float values used for assigning fractions to multiply things by, "0" corresponds to float 1 (3F800000). It's mainly for convenience for people who will want to use these codes when the clone engine is released.
- The new system doesn't require the two-digit character ID at the start of the 8 digits which describe the features. Its new format will be ABCDEFGH XXXXXXXX 00000000 00000000, where A-H are float multipliers, and Xs are the character's momentum (as a 32-bit float). The 0s are used by the system for the Frame Speed and Hitbox codes as an index. This list will be arranged in character order. Missing IDs will be padded with 0s. The ID 0x10 must remain unused.
- As part of the Launch Code you'll be able to choose which values are assigned to which location using a new code. So for ABCDEFGH, A would always be overall grav, but the role of B-H (e.g. if they modify DGrav, FF etc.) would be done by another easy-to-use code.
- As part of the Grav code, you'll be able to add specific gravity to different animations using another data code, which includes a wildcard for character choice.
- Frame Speed Modifications must be arranged by character, than arranged by animation ID within each character. I realised I could use a much more efficient searching algorithm, allowing limitless animation changes rather than 80-90, but it throws on this extra restriction.
- For the Float Values of the Animation changes: change the penultimate digit of the float multiplier to the position in the list of changing the same animation that something is, and the last digit to how many changes to the animation have been made in tota... The explanation is tricky, there's an example at the end. A similar thing needs to be done to hitbox changes.
- The codes will all be appended to each other at the end to make one collossal "Brawl+ Physics Engine Data" code. This code will work in any region without requring any porting. Thus, updating a codeset will be a matter of swapping out the appropriate collossal code.
Velocity Modifiers Format:
Code:
06580500 BYTECOUN
0000000Z AAAA000B
CCCC000D EEEE000F
01234567
ABCDEFGH
16 Floats Code Format:
Code:
06580520 00000040
AAAAAAAA BBBBBBBB
CCCCCCCC DDDDDDDD
EEEEEEEE FFFFFFFF
GGGGGGGG HHHHHHHH
IIIIIIII JJJJJJJJ
KKKKKKKK LLLLLLLL
MMMMMMMM NNNNNNNN
OOOOOOOO PPPPPPPP
Custom Gravity Modifiers Format:
Code:
06580600 BYTECOUN
XX0ZYYYY AA0BCCCC
Data Index Format:
Code:
06580000 BYTECOUN
ABCDEFGH NNNNNNNN
00000000 00000000
ZYXWVUTS MMMMMMMM
00000000 00000000
For each character in order, with ABCDEFGH being the positions of the fractions defined by the Velocity Modifiers code, and NNNNNNNN being a 32-bit value for momentum (75% is 0.75).
Frame Speed Float Changes:
Consider:
Code:
065A9400 00000020
120E002F 3F266666
141C0024 40400000
14140024 3F000000
14000024 40600000
Code:
065A9400 00000020
120E002F 3F2666[color=blue]0[/color][color=red]0[/color]
141C0024 404000[color=blue]0[/color][color=red]2[/color]
14140024 3F0000[color=blue]1[/color][color=red]2[/color]
14000024 406000[color=blue]2[/color][color=red]2[/color]
Hitbox Changes:
Characters must have all their data written together (in any order). All non-character (e.g. projectile) changes should be listed together. Within each list, items should be organized by Action ID (from lowest to highest).
Code:
065A9800 00000014
GGHHIIJJ KKLLLMMM
NNOOPPQQ RRRRAABB
SSSSSSSS PPPPPPPP
GG character id
HH original damage
II original KB gain
JJ original Base KB
KK original Element
LLL original launch angle
MMM action id
NN new damage
OO new KB gain
PP new Base KB
QQ new Element
RRRR new launch angle
SSSSSSSS new SFX
PPPPPPPP new hitbox size
AA Number of change to action ID
BB Total number of changes to action ID