searching for a pointer table or anything of that nature…
position 1
#BCM starts at 7A6CF0
2342434DFEFF30000000070045001000
0000000000000000300000008C050000
A8050000241A0000381B0000B81B0000
lets look more closely
at #BCM + 24
30000000
8C050000
A8050000
241A0000
381B0000
B81B0000
4 bytes, as before, a short pointer table?
30000000 (7a6d20) -
points to where I believe the section where move motions are defined starts, right after the last (?) element in the pointer table is (B81B0000)
8C050000 (7a727c) -
1420 decimal… and it points to near the start of the triangle jump region… looks like another VERY SHORT pointertable?
F81B0000
001C0000
0D1C0000
171C0000
211C0000
301C0000
351C0000
A8050000 (7a7298) -
1448 decimal… 24 bytes of unknown numbers
4000101002000300000000006666A63F0000000000000000
this inspired me to search for 3Fa66666, the number that i FUCKING SEE EVERYWHERE IN THIS FILE I just realized… and 99% of the search results bring up brawl+ hacking stuff LOL. I’m suddenly wondering if this number 3fa66666 has any significance somehow? Perhaps the reason for the weird looking numbers is that this is a 4 byte floating point number of some sort? It would explain the odd behaviors of it. I remembered stuff about floating point numbers being fucking weird to the point of me not understanding at all how they’re implemented. they have like the inability to express integers accurately and all that crap… now that you mentioned that they don’t behave correctly, you’re right, changing the “3f” to “4f” should not create a increase of more than 10x
searching for “3fa66666 float” in google brings up http://www.smashboards.com/showthread.php?t=204677 where
AHA MOTHERFUCKERS, no wonder we see these same fucking numbers in every fucking part of the file just in opposite endian and it didnt seem to scale linearly. well i guess brawl players are good for something.
anyway back to this.
immediately following this section is the 76-byte length repeating pattern that is the region i used to create triangle jumps and similar concepts. should be 67 blocks unless i’m off by one in one direction or another.
241A0000 (7A8714) -
276 bytes worth of what looks like more pointers. that means 69 pointers… maybe I’m 2 off on how many blocks there are in the previous section lol??
edit: looks like it is pointing to the readable text stuff below starting at like “5LP” and stuff…
381B0000 (7A8828) -
128 bytes worth of what looks like pointers, meaning 32 of them. if this points to something i can’t figure out what though
B81B0000 (7A88A8) -
64 bytes worth of pointers… meaning 16 of them. edit: points to “GROUND AIR_V AIR_F” etc
this is followed immediately by
the = in “G=SHOT_EX” may be the result of me experimenting early on several months ago to see if it would break the game and i forgot to revert it? not sure lol.
this is probably not part of the same pointed to thing though.
and then about 330 bytes of numbers that appear to be counting upward, edit: fucking with this section by copying and pasting it around is causing various jumping moves to stop working… also standing hk has been replaced by fake kick. perhaps this is where moves that aren’t just standing/crouch moves are handled (jumping, followups (messiah kick demon flip wall dive etc), fake kick) are handled?
and then
and then the end of the file stuff
btw you know before you mentioned this stuff i never even thought of the idea of a file using pointers… i’ve used it plenty of times in all sorts of applications in programming just file formats were kind of new to me.