• 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!

Interspace Station: The Subspace Emissary Stuff Topic

Toomai

Smash Ace
Joined
Aug 17, 2006
Messages
769
Location
Someplace in Canada
(hopefully this belongs here and not in the 1-Player Modes section)

[cooltitle][/cooltitle]

Since I don't really know how to start this right now, I'll just leap right into what I've found so far.

ENEMY ATTRIBUTES (EnmXXX.pac)

0x000: Filesize.
0x004: Data size? I don't know enough about offsets and so on to know this, it's probably the same as whatever Smasher files have.
0x008: Don't know this one either. Generally proportional to Filesize and 0x004.
0x00c: An integer between 5 and 10. Don't really know what it means: only Armanks have a 10, only Autolances, Duon, and Porky have a 9, and the rest of the enemies have 8, 7, 6, or 5.
0x010: An integer clustering around 27. Jyks have the lowest value by far at 8 (next lowest is Petey at 16), while Koopas have the highest at 35.
0x014: Always 0.
0x018: Always 0.
0x01c: Always 0.
0x020: A float, usually 1.0. Roturrets have the only lower value at 0.98, Shaydas have the highest at 1.6.
0x024: A float. The only enemy that doesn't have a 56 here is the Metal Primid, which has a 99. My theory is that this is weight for things like platform tipping and throw speed.
0x028: A float, usually 0.75, with 0.5 being a common value (the lowest). Feyeshes and Floows have a 1.0 (the highest).
0x02c: Integer. Always 2.
0x030: An integer, usually 3. Tickens have the lowest value at 2, while Tabuu has a whopping 16 and a Gamyga head has 13 (next highest is 7).
0x034: Always either 00000000 or 01000000; probably a true/false value. Usually false, but true for: Floows, Gamygas (both head and base), Giant Goombas, Glices, Glires, Glunders, Goombas, Jyks, Petey, Porky, Roturrets, and Spaaks.
0x038: Always 0.
0x03c: A float, usually 1.0. Ranges from 0.05 (Autolances) to 1.2 (Bucculuses).
0x040: Normal Death boolean. A true/false value (00000000 or 01000000) of whether the enemy dies a normal death (that is, goes into BulletMode and rockets around). True for most enemies; false for all bosses and Tickens.
0x044: Float. Always 120.0.
0x048: Integer. Always 1.
0x04c: Always 0.
0x050: A float. Always 0.7 except for Greaps, which have 0.5.
0x054: A float. Always 1.0 except for Greaps, which have 0.8.
0x058: Always 0.
0x05c: An integer. Usually 7, but 9 for all bosses, Armanks, Big Primids, Gamygas (head and base), and Roturrets.
0x060: Usually false, but true for all bosses, Armanks, Gamygas (head and base), Roturrets, and Tickens.
0x064: Integer. Always -1, except for Petey, where it's 1. Presumably this has to do with the cages.
0x068: A float, usually 0.1. Big Primids have a 0.24, while Duon, Galleom, Porky, and Rayquaza have a 1.8.
0x06c: Float. Always 0.1.
0x070: Float. Always 0.1.
0x074: Float. Always 1.4.
0x078: Always 0.
0x07c: Float. Always -15, except for Roturrets, where it's -20.
0x080: Integer. Has a range from 0 (Goomba) to 64 (both stationary and moving R.O.B. Blasters). No apparent pattern or common value.
0x084: Integer. -1 for most enemies, but 174 for Shaydases and Spaaks, while 165 for Armanks, Autolances, Greaps, Shellpods, Tickens, and Trowlons. The distribution here leads me to believe this has something to do with weak points.
0x088: Like the previous value, this is usually -1, but it's otherwise for the same enemies (except Shellpods). Armanks have a 9518 here while the others have a value near 64.
0x08c: Float. Always 8.0.
0x090: Always 0.
0x094: Float. Always 12.0.
0x098: Always 0.
0x09c: Point Value. How many points the enemy gives when defeated.
0x0a0: Always 0.
0x0a4: A true/false value. False for all bosses and some of the bigger/tougher enemies, but otherwise no pattern.
0x0a8: An integer. Ranges from 3 (Jyk) to 142 (Tabuu). Values seem to correspond to how tough the enemy is; bosses that aren't Petey have higher values while weaker enemies have lower ones. The back of my mind is saying "catch rate for Trophy Stands".
0x0ac: An integer. Most enemies have an "average integer", but all the Primids have a 91, while all enemies with a value of false for 0x0a4 (except for Floows) have a -1.
0x0b0: An integer. Always 50.
0x0b4: An integer. Always 45.
0x0b8: A value of (in hex) 01040000 for enemies and 03050000 for bosses (no, I don't know what this means).
0x0bc: A float, usually 50.0. Bosses have a 10.0, while Floows, Koopas, and Nagagogs have 100.0.
0x0c0: A float ranging from 110.0 to 0.0. Again, this seems to corelate to perceived difficulty: all non-Tabuu bosses have rather high numbers (at least 80), while most big enemies have between 30 and 50 while most others are below 20. Jyks, Floows, Gamyga bases, and Tabuu have a 0.
0x0c4: A float. This one ranges from 4.1 to 49.0 and, while bosses and such again get higher numbers, there seems to be no pattern.
0x0c8: An integer. Range of values is 0 (most common), 3, 64, 67, 264, 267, 328, 331, 516, 580, 780 (second most common), 783, 844, and 28672 (Bucculuses).
0x0cc: A float, usually 1.5 but can be 1.4 (Mites) or 2.2 (all bosses).
0x0d0: A float. I think this one has to do with base HP - Jyks have a -1, Petey has a 99999 (presumably he only dies once a cage's health is depleted instead of his own), and bosses have things in the hundreds while enemies are in the 10-range.
0x0d4: A float. I think this one has to do with HP scaling per difficulty level - bosses have values up to 50 (possibly +50 HP per difficulty level?), while enemies cluster around 1. Bombeds, Jyks, Petey, and Shaydases have a 0 here.
0x0d8: A float. Always 25.0, except for Jyks, which have 30.0.
0x0dc: A float. Usually 10.0, with a 12.5 for bosses (but not Petey and Rayquaza).
0x0e0: A float. Usually 20.0, but ranges by multiples of 5 from 10.0 (Jyks) to 25 (most bosses, some enemies).
0x0e4: A float. Always 8.0.
0x0e8: A float. Usually 15.0, sometimes 10.0, no clear pattern.
0x0ec: Always 0.
0x0f0: Always 0.
0x0f4: Always 0.
0x0f8: An integer. Sometimes 0, sometimes 50, no clear pattern.
0x0fc: An integer. Always 20.
0x100: Always 0.
0x104: Always 0.
0x108: A float. Usually 25.0, but can go up to 100.0. Ridley has a 5.0 here.
0x10c: A float. Usually 50.0, but can go up to 180.0. Ridley has a 6.0 here.
0x110: A float. Usually 80.0, but can go up to 600.0. Ridley has a 50.0 here.
0x114: A float. Almost always 90.0 - Big Primids have a 122 while Scope Primids have an 80.
0x118: An integer - maybe. Usually 1, but 0 for Autolances, Glices, Glire, Glunders, and Goombas, and -101 for all Primids.
0x11c: Normal Damage. How much damage is taken by Normal attacks.
0x120: Slash Damage. How much damage is taken by Slash attacks.
0x124: Electric Damage. How much damage is taken by Electric attacks.
0x128: Freezing Damage. How much damage is taken by Freezing attacks.
0x12c: Flame Damage. How much damage is taken by Flame attacks.
0x130: Grass Damage. How much damage is taken by Grass attacks.
0x134: Water Damage. How much damage is taken by Water attacks.
0x138: Darkness Damage. How much damage is taken by Darkness attacks. Not 100% confirmed.
0x13c: Aura Damage. How much damage is taken by Aura attacks. Not confirmed.
0x140: Special:Direct Damage. How much damage is taken by special attacks not involving articles. Uncomfirmed.
0x144: Special:Indirect Damage. How much damage is taken by special attacks involving articles. Unconfirmed, but at the very least it affects projectiles.
0x148: Normal Damage (weak point). How much damage is taken by Normal attacks on the weak point.
0x14c: Slash Damage (weak point). How much damage is taken by Slash attacks on the weak point.
0x150: Electric Damage (weak point). How much damage is taken by Electric attacks on the weak point.
0x154: Freezing Damage (weak point). How much damage is taken by Freezing attacks on the weak point.
0x158: Flame Damage (weak point). How much damage is taken by Flame attacks on the weak point.
0x15c: Grass Damage (weak point). How much damage is taken by Grass attacks on the weak point.
0x160: Water Damage (weak point). How much damage is taken by Water attacks on the weak point.
0x164: Darkness Damage (weak point). How much damage is taken by Darkness attacks on the weak point. Not 100% confirmed.
0x168: Aura Damage (weak point). How much damage is taken by Aura attacks on the weak point. Not confirmed.
0x16c: Special:Direct Damage (weak point). How much damage is taken by special attacks not involving articles on the weak point. Uncomfirmed.
0x170: Special:Indirect Damage (weak point). How much damage is taken by special attacks involving articles on the weak point. Unconfirmed, but at the very least it affects projectiles.
0x174: A float. Always 100.0.
0x178: Always 0.
0x17c: A float. Possibly flinch resistance; Greaps and Metal Primids have super-high values of 70 and 50, while most everything else has something 10 or less. Bosses all have a 10 here, that's probably the default.
0x180: If 0x17c is flinch resistance, this is probably flinch resistance scaling by difficulty level. Usually 0, otherwise it's less than 1, while for Gamyga heads it's a whopping 5.
0x184: Trophyizability. A boolean that's only false for Jyks and Gamyga bases.

EVENTS/COMMANDS

A look through EnmJyakeel.pac shows a grand total of 0 hitbox events. However, it did turn up some totally new events:

65040100 (value): Used three times in the Jyk file, with values of 3, 0, and 1.
65070200 (variable, variable): Used twice in the Jyk file, both uses appear to affect float variables. The two uses operated on [IC-Basic[44003],LA-FLoat[2]] and [IC-Basic[44004],LA-Float[5]].
66000400 (value, value, scalar, value): Used five times in the Jyk file, with the values going up inconsistently but steadily for each subsequent use - this probably has something to do with difficulty. Uses: [2,14,35791,3], [3,16,35791,3], [4,18,35791,6], [5,19,35791,7], [6,20,35791,8].

ENEMY-SPECIFIC

Jyk
  • Jyks use an If-ElseIf-ElseIf system to determine what graphic effects to put out based on IC-Basic[24000]; this must be the value that stores whether they're a Flame Jyk, Zap Jyk, or Hydro Jyk.

Subspace Generator
  • Subspace Generators are considered stage elements, not enemies, and so don't have a MiscData[0] (and therefore have not been examined).

Galleom
  • Through experimental testing, Galleom's HP has been determined to be the following:
    • 205 on Easy
    • 225 on Normal
    • 240 on Hard
    • 265 on Very Hard
    • 290 on Intense
  • This HP data doesn't match the 300 base/30 per level theory I have above, nor does it comform to any simple formula (the scaling isn't consistent) or have a defined array in the values.

VARIOUS OTHER STUFF

  • If you don't know where I found this stuff, you have to look in stage/adventure. All the Primids are in adventure_common.pac, while all other enemies and bosses are part of the stages in which they appear.
  • The data I scoured is labelled in BrawlBox as MiscData[0]. I attemped to get other MiscDatas out but BrawlBox kept giving concurrent modification errors for no reason.
  • You may have noticed that characters feel different when played in the Subspace Emissary, but not when playing Boss Battles Mode. This is because every character has two sets of attributes: one for regular gameplay, and another for the Subspace Emissary, with the regular attributes used when in a boss battle. In general, the SSE attributes:
    • Normalize walking speed.
    • Reduce running speed.
    • Reduce time taken to jump by 2 frames.
    • Increase jump force by 118%.
    • Increase gravity.
    • Increase max falling speed by 119%.
    • Normalize horizontal air speed.
    • A few isolated changes like tweaking specific characters' double jumps, and a few other things that I don't recognize.
 

pokelover980

Smash Ace
Joined
Oct 4, 2007
Messages
905
Hold on, I have a post in the Workshop Developers Corner with a bit of info on one of the Subspace data types, let me go find it, and I'll edit this post with it's contents.

Found it, but it doesn't have the link to the editor, which I'll go dig up in a second:
I'll just use this thread to inform people on my findings while I tear apart the SSE files. So far I've managed to find the file that controls enemy fighter's SSE attributes and make a small editor for it (no saving because I'm too lazy to make a saving process, you'll have to copy the text in the textbox into a hex editor and save it and then reinsert the file). To use it, extract the MiscData[7] in a SSE stage from BrawlBox, and then load it into my editor and select any of the nodes that appear in the combo box. Then edit the numbers, hit the button, move to a different node, whatever. I've yet to find out what data block controls what attributes yet, so if people could help me with that it'd be much appreciated (well, each one is a multiplier, and some I don't even think control attributes, but I don't know. There's 42 different multipliers per file typically). I'll post a simple breakdown of GFG1 files:
Code:
BLOC Header (42 4C 4F 43) - 0x0
-Number of entries (I think) - 0x10
-GFG1 Header (47 46 47 31) - 0x14
--GFG1 Entry Header (00 01 00 FF) - 0x94 away from GFG1 Header
---First GFG1 Entry Float - 0x20 away from Entry Header
---Second GFG1 Entry Float - 0x24 away from Entry Header
---Third GFG1 Entry Float - 0x28 away from Entry Header
--(REST OF FILE HERE)
EDIT: Link to the editor: http://www.mediafire.com/?itv519j67f93a2a
 

Toomai

Smash Ace
Joined
Aug 17, 2006
Messages
769
Location
Someplace in Canada
Ummkay, apparently I'm not doing it right, since all the MiscData[7]s that BrawlBox lets me export don't have anything in the dropbox. That said, if the program is just for looking at values, it's not very useful to me.
 

pokelover980

Smash Ace
Joined
Oct 4, 2007
Messages
905
Open any of the files in stage/adventure, and if they have a MiscData[7], they can be loaded into my program. Try opening the MiscData[7] from 01001.pac and see if it works for you. If so, then you were probably using a bad MiscData[7] file or you were using a MiscData[7] from the wrong kind of file. It has no save feature, but that's simply because I'm too lazy to figure out how to do a string to byte[] conversion (well, it's actually quite simple to convert a string to a byte array, but that would give me an undesired file as it'd get me the byte value of each character and not the byte values represented in the string, so you have to follow the rest of the instructions I provided before to save).
 

Toomai

Smash Ace
Joined
Aug 17, 2006
Messages
769
Location
Someplace in Canada
Yeah, I don't have any idea what the program's showing me. Thanks for trying, but all I see is random numbers.

Anyway, I'm guessing that the amount of traffic this topic is getting (i.e. little if any) really shows how much people are not concentrating on this stuff.

But in any case, I've put up the experimentally-determined HP values for Galleom, which seem completely random with no pattern (as if we haven't heard that one before). Some insight of possibilities would be helpful here.
 
Top Bottom