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

Important Melee, Hacks, and You -- New Hackers Start Here, in the OP!

zankyou

Smash Lord
Joined
Sep 12, 2014
Messages
1,055
Awesome. Creating a new function for animations would be amazing, but I bet would be incredibly difficult and time consuming to make it function the same as vanilla Melee.

Awhile back, I was going to start making a function executed every frame to move Battlefield's platforms around. And while I can move the on-screen object and it's collisions, making it interact with characters the same way as a vanilla platform would was the problematic part. I had a character standing on a platform and then moved it elsewhere the next frame, and the character just enters the "Fall" action state, instead of going with the platform. But if they are charging a smash attack, they get instantly warped to the new platform collision link location. Just things like that. So I just stopped and moved on to other things.
Have you tried moving the platform before the character update function happens? I got mixed results when I was looking into this similar to you but didnt really have time to test it more.
 

Mean Green

Smash Lord
Joined
Sep 12, 2014
Messages
1,637
Since we can't import moving platforms, would this one be "easy"? (Ignoring the platform or making it static)
Would you be able to take m22k's vanilla stage from PM 3.0, and base the moving plats from the one on Falcon's target stage? Of course after you finish working on achilles' suggestion and if you wouldn't mind
 

Myougi

My posts are gluten free.
Joined
Mar 14, 2014
Messages
484
Location
WEST COAST BEST COAST
How do I change which icon corresponds to which stage in the SSS? I've looked in MnSlMap and Start.dol, but I can't find anything.
I answered a similar question like this awhile back on the thread for the Melee Netplay Community Build. Here's the gist:

Swapping stages on the SSS (where they actually link to) requires DOL modding as well as manually changing the icons/preview text of each stage individually via texture hacking. Using Dolphin you can dump the textures of a vanilla Melee SSS and then you can use CeLL/DRGN's texture hacking tools to find their offsets and replace them to different icons. Be cautious of different image types when editing and injecting new icons into Melee.

Here's a list of all the stage values and their offsets. These should be for vanilla.
Key:
Name
Offset in the Start.DOL (They are all 0x1C apart)
AABBCCDD

AA - Stage type?
BB - Icon/Model/Text Preview ID
CC - Stage Select Menu ID
DD - Stage to load ID

Peach's Castle
0x3ED6D8
02000004

Rainbow Cruise
0x3ED6F4
02010C0B

Kongo Jungle
0x3ED710
02020105

Jungle Japes
0x3ED72C
02030D0C

Great Bay
0x3ED748
0204020D

Hyrule Temple
0x3ED764
02050E0E

Yoshi's Story
0x3ED780
02080408

Yoshi's Island Melee
0x3ED79C
02091010

FoD
0x3ED7B8
020A0502

Green Greens
0x3ED7D4
020B1111

Corneria
0x3ED7F0
020C0607

Venom
0x3ED80C
020D1216

Brinstar
0x3ED828
02060306

Brinstar Depths
0x3ED844
02070F0F

Onett
0x3ED860
02120909

Fourside
0x3ED87C
02131512

Mute City
0x3ED898
0210080A

Big Blue
0x3ED8B4
02111418

Pokemon Stadium
0x3ED8D0
020E0703

Poke Floats
0x3ED8EC
020F1317

Mushroom Kingdom I
0x3ED908
02140B13

Mushroom Kingdom II
0x3ED924
02151614

Icicle Mountain
0x3ED940
02160A19

Flatzone
0x3ED95C
0217171B

Battlefield
0x3ED978
0218181F

Final Destination
0x3ED994
02191920

Dream Land
0x3ED9B0
021A1A1C

Yoshi's Island 64
0x3ED9CC
021B1B1D

Kongo Jungle 64
0x3ED9E8
021C1C1E

Random?
0x3EDA04
021D0000

If you want your Melee build's SSS link to different stages, you need to individually modify each stage value in the Start.DOL to a corresponding icon. Be careful when swapping what stages link to where, and be sure to factor in the IDs for each stage on the Random Stage Select Menu. Incorrect linking will cause the game to crash.
 
Last edited:

WinterWonter

Smash Apprentice
Joined
Sep 13, 2015
Messages
101
Location
Louisiana (I wish I wasn't here)
NNID
mikael72202
3DS FC
5241-2891-3126
So, FSM.

I have a custom Melee mod, and trying to get the characters to be balanced before I edit them, I took all the SD Remix Characters and put them in my mod. I also copied all of their FSM data. I have a 1.02 ISO, so FSM is different from 1.00 in that it's at a different offset and has slightly different coding.

The 1.02 offset for the injected function is @4088B0 and then the FSM entries start off @4089B0 and end @408E5F (This is at the point where there isn't any room left for FSM data.)

At the 1.00 offset for the injected function (@17A0) and FSM entries (@19D0) , there is empty space, so is it possible to have FSM for both the 1.00 and 1.02 offsets? Would they work together or not? It's also important to note that I'm using Crazy Hand to edit the current FSM data that I have, so assuming that if both of these combined would work, would I have to manually edit the 1.00 offset?
 

Absolome

Smash Cadet
Joined
Jan 3, 2014
Messages
68
Location
Asheville, NC
Whoops, posted this in the gecko codes topic but this looks like more of an appropriate place


I've been working on making a symbol map for melee (dolphin) that gives names to as many functions as I can figure out, I have around 150 newly named functions right now. The more that get named the easier it is to figure out what a function is doing, for example seeing a branch to something like "RemoveInstantItem" immediately gives you a much easier time figuring out what that function is there for.

Has anyone done something similar to this? And would anyone be interested in a copy of the (still very much in development) current map?
 

zankyou

Smash Lord
Joined
Sep 12, 2014
Messages
1,055
Whoops, posted this in the gecko codes topic but this looks like more of an appropriate place


I've been working on making a symbol map for melee (dolphin) that gives names to as many functions as I can figure out, I have around 150 newly named functions right now. The more that get named the easier it is to figure out what a function is doing, for example seeing a branch to something like "RemoveInstantItem" immediately gives you a much easier time figuring out what that function is there for.

Has anyone done something similar to this? And would anyone be interested in a copy of the (still very much in development) current map?
theres the ssbmo documentation. Dan Salvato is also working on this so itd be awesome if you guys combined your efforts
 

flieskiller

Smash Journeyman
Joined
Jan 3, 2013
Messages
426
Absolome Absolome shooting all my notes that can be related to a function. Let that motivate you to do more mapping! I didn't check again any of them, most things uncertain are in () or containing a '?'. All are version 1.02

800438cc = (incomplete) include item timer reduction

8026bb44 = item or projectile disappearing, destroyed by fire (turnip?)?

8025bd30 = choose String to write in the CSS at the top.
803a660c = Construct a String (seems to be called by 6 different functions, including the one above)

80167bc8 = related to timer? (at least load the menu setting and put the number into minutes for in-game, more in that function). Loaded by 4 functions

802f5ec0 = Initially raw character's percentage in-game (blr = no %) (called in 1 function)

8022f538 = VS mode menu settings navigation function (maybe for other menus?)

800e85ec = air spacies shine
800e8560 = ground spacies shine

AIR only (down-b of zelda/sheik)
8013b0a8 = zelda -> sheik
80114560 = 2nd part of zelda -> sheik

80114328 = sheik -> zelda
8013b2e0 = 2nd part of sheik -> zelda

8016cfe0 = related to when game is paused (including the check of LRAstart)

8006cf5c = when consuming a healing item (maybe others like rabbit ears?)
8026b47c = item healing value (loading from global constants from somewhere else)

8014d9b4 = G&W Bucket Filling
8014c46c = Side-B hammer, when hitting (including the check if 7 for food drop)

800debd0 = goes there when taunting

800c3d6c = Samus zair (Links zair too?)

801d4548 = PKMN stadium main function (timer, changing stage when timer is at 0)

801b3500 = related to UI loading? (801b3abc = check number of players to load, for instance)

8008f970 = related to meteor attacks, maybe some other similar timers)

802633b0 = related to name menu in the CSS (including checks if name is already taken)

800d72a0 = puff (kirby?) after using 1 aerial jump

800cb950 = second jump of non-balloon characters.

8026a8ec = make items disappear

800eb7c8 = Links down-b

802bd32c = Peach's down-b

8016d8ac = characters initialization (handicap ratio, size and other stuff)

800d34e0 = Function when a character loses a stock

8006CC7C = apply damage to player

8016e934 = matches start function
802f6ea4 = function related to starting the game, BLR = no more 321go.
802f446c = function related to load timer (visual?)
802f665c = HUD (%, stocks, coins etc.)

800d4e50 = when dead, reduce amount of coins (maybe other things?)
8007c77c = coin grabbing
802e6380 = function when a coin is dropped?
80033d60 = function that increments player's coins

8026f3d4 = function when a container is destroyed

8025db34 = player changes color in the CSS (teams only?)

801b0348 = choosing character's tints (when multiple characters are in the same teams)

8026c75c = items dropping from a cargo?

stage functions, all are the starter function for loading all the stages.
801e3030 = Yoshi Story
801ff168 = Rainbow Ride
801fcbc4 = Mushroom Kingdom II
8020f46c = Kongo Jungle 64
8020e79c = Yoshi Island 64
801efc6c = mute city
801fa90c = Mushroom Kingdom
801e57c0 = Big Blue
80202b70 = Jungle Japes
801e373c = Onett
801f2d10 = Fourside
80203b18 = Venom
801d523c = Kongo Jungle (Melee)

802839BC = Saturn Hitting someone
 

tatatat0

Smash Journeyman
Joined
Jan 28, 2015
Messages
412
All this stage modding stuff looks really cool and all, but I can't find any place to start reading up on this stuff without it expecting me to already know the format for stages. It also doesn't help that it seems a lot of documentation is just flung across Melee, hacks, and you, which I've just now started browsing(I've just stuck to the first page or pages in links, because the sheer size of this thread is kinda scary. I guess I'll also include some content in this post so it is relevant. Found some neat stuff in PlCo.dat pertaining to the spawn platform and its shape before and including 0xF960. No idea what the format is. I've gotten some results, like
when changing the values. I have noticed some stuff about it though.
Only certain bytes are read from these locations, and I'll give some notes about it.

The only things read from 0xF958-F96B are the things in boxes. I'll go over what things do.
Changing the values in red often gives errors like these

whenever you die (when the respawn platform is created). They only rarely do not give errors, the reason for that is unknown to me (I'm pretty much just putting out what I've experienced). It seems like these values are read directly as opcode and dolphin assumes its an error that would cause a crash (It doesn't actually crash or hang). Whether or not they crash, they always make weird geometry.
Changes the bytes in green often results in that part of the object simply dissapearing. The byte group(or w/e you want to call it) where the bytes in green are mark the start of the object, and almost always the end of another one. The ones in yellow is even more mysterious, changing them usually doesn't cause a crash but instead very strange things to occur. [Refer to
]
I did find one kinda neat thing out of all of this though, and thats removing parts of the spawn platform.
0xf950-0xf957: 000000100000003 -> 0000000200000004
causes the following result.
If anyone has any information on this stuff, please PM me with it.
 

SinsOfApathy

Smash Journeyman
Joined
Feb 24, 2015
Messages
474
NNID
Psion312
I've been working on making a symbol map for melee (dolphin) that gives names to as many functions as I can figure out, I have around 150 newly named functions right now. The more that get named the easier it is to figure out what a function is doing, for example seeing a branch to something like "RemoveInstantItem" immediately gives you a much easier time figuring out what that function is there for.

Has anyone done something similar to this? And would anyone be interested in a copy of the (still very much in development) current map?
I don't use Dolphin's awful symbol mapping. Everything I have is mapped in IDA, since I'm able to write function comments and the likes. I don't think there's anyway to backport that without writing a converter. Dolphin team's built one is made for Dolphin -> IDA, I think.
 

Absolome

Smash Cadet
Joined
Jan 3, 2014
Messages
68
Location
Asheville, NC
god I wish dolphin had built in function comments, or really any sort of symbol map functionality at all beyond basics

mapping them via dolphin seems like the best way to collaborate with the rest of the community though, and it's extremely convenient for poking at the code with the game running
 

tatatat0

Smash Journeyman
Joined
Jan 28, 2015
Messages
412
Posting some of my random notes on animations.
Read up on this
Ness u-special air hold:
0x93EB
00000000 00002300 000890C0 0000214A

SpecialAirHiHold animation tree thingy:
0x2320
pointer and other animation data for it:
00002300 000890C0 0000214A 00003A90

00000008 00000000

00002334 0008B220

AttackAirHi model/animation tree:
0x9C0
Animation pointer and stuff:
000009A0 00061AE0 00002860 00005060

00000008 00000000

Attackairhi:
0x7D38-7D47
00000000 000009A0 00061AE0 00002860




Alright 0x10-12 from the start of an animation entry is a sort of flags thing. I'll list some documented effects of different numbers in here:
(All this was tested on ness's uair, hope this doesn't ruin any results)
80 on an aerial move
No sliding on landing
60 on an aerial move: continously repeats an animation until interrupted. Can not be interrupted by b moves, airdodging, or grabbing the ledge.
40 on an aerial move:
same as above
20 on an aerial move:
nothing out of the ordinary
A0 on aerial move:
same as 80
E0:
80 and 60 combined!
No sliding, and continous animation
F0:
Same as E0
Some assumptions/observations:
In the animation trees, animations that are part of a set of animations like jabs and what not, are all one after another, with only ONE period in between them. I am talking of the string list thingy.
I am making a guess that with a animation flag (Talked about it above) of 40/60 you could possibly use continuation controls or something to iterate through them.

I took a peek int PlNAJ.dat at a random offset I found in the PlNs.dat
it was apart of a larger animation tree
I took all of it and am pasting it here
Ness u-special air hold:
0x93EB
00000000 00002300 000890C0 0000214A

SpecialAirHiHold animation tree thingy:
0x2320
pointer and other animation data for it:
00002300 000890C0 0000214A 00003A90

00000008 00000000

00002334 0008B220

AttackAirHi model/animation tree:
0x9C0
Animation pointer and stuff:
000009A0 00061AE0 00002860 00005060

00000008 00000000

Attackairhi:
0x7D38-7D47
00000000 000009A0 00061AE0 00002860




Alright 0x10-12 from the start of an animation entry is a sort of flags thing. I'll list some documented effects of different numbers in here:
(All this was tested on ness's uair, hope this doesn't ruin any results)
80 on an aerial move
No sliding on landing
60 on an aerial move: continously repeats an animation until interrupted. Can not be interrupted by b moves, airdodging, or grabbing the ledge.
40 on an aerial move:
same as above
20 on an aerial move:
nothing out of the ordinary
A0 on aerial move:
same as 80
E0:
80 and 60 combined!
No sliding, and continous animation
F0:
Same as E0
Some assumptions/observations:
In the animation trees, animations that are part of a set of animations like jabs and what not, are all one after another, with only ONE period in between them. I am talking of the string list thingy.
I am making a guess that with a animation flag (Talked about it above) of 40/60 you could possibly use continuation controls or something to iterate through them.

I took the unknown offset (Byte group 3) from ness attackairhi
added 0x20 and put it into PlNsAJ.dat
I took some of the values from there as I saw a sort of pattern in a greater image. Although it had nothing to do with attackairhi it waas interesting.
PlyNess5K_Share_ACTION_Wait_figatree
0x2748-4EAB:
00000000 506C794E 65737335 4B5F5368 6172655F 41435449 4F4E5F57 6169745F 66696761 74726565 00FFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00002759 00002554 0000006D 00000001 00000000 00000000 00000000 00000000 119999B0 04999900 1140B004 40000000 E4030000 FFD6A3BC 0ECDEC90 D9CA3B1C A310BB0E EA3B0E00 00FFD6A3 BC0ECDEC 6CD9CA3B 1CA31091 0EEA3B0E 00002BD7 A3BC0ECD EC90D9CA 3B1CA310 910EEA3B 0E0000FF D6A3BC0E CDEC6CD9 CA3B1CA3 10910EEA 3B0E0000 2BD7A3BC 0ECDEC90 D9CA3B1C A310910E EA3B0E00 00FFD6A3 BC0ECDEC 6CD9CA3B 1CA310BB 0EEA3B0E 00002BD7 A3BC0ECD EC6CD9CA 3B1CA310 910EEA3B 0E0000FF D6A3BC0E CDEC6CD9 CA3B1CA3 10BB0EEA 3B0E0000 2BD7A3BC 0ECDEC6C D9CA3B1C A310910E EA3B0E00 00FFD6A3 BC0ECDEC 90D9CA3B 1CA310BB 0EEA3B0E 0000FFD6 A3BC0000 93010000 1C57161C 00001C57 161C0000 1C57161C 00001C57 161C0000 1C57161C 040000D0 40CCBA1C 232B0B1C 00001C2B 0B1C0400 00D040CC 3A1C5357 161C0000 1C57161C 00001C57 161C0000 00000000 C40314E4 D0404C3C 0EA9E94D 2B88BB1C 7EDE4D2B 88BB0E14 E4D0404C 3C0EA9E9 352B88BB 1C7EDE35 2B88BB0E 14E40641 4C3C0EA9 E94D2B88 BB1C7EDE 352B88BB 0E14E4D0 404C3C0E A9E9352B 88BB1C7E DE352B88 BB0E14E4 06414C3C 0EA9E94D 2B88BB1C 7EDED040 CC3A1C74 EC9C3099 3B1CDFE6 4D2B08BB 0EA9E906 41CC3B0E 74EC0336 2ABC1CB3 DB03362A BC0E7EDE D040CC3B 0E49E135 2B08BB1C B3DBB030 993B1CA9 E9EC40CC 3A1C7EDE 352B88BB 0E14E4D0 404C3C0E A9E94D2B 88BB1C7E DE4D2B88 BB0E14E4 D0404C3C 00000000 93010000 1CD5F41C 00001CD5 F41C0000 1CD5F41C 00001CD5 F41C0000 1CD5F41C 040000D0 40CC3A1C 236BFA1C 00001C6B FA1C0400 00D040CC BA1C53D5 F41C0000 1CD5F41C 00001CD5 F41C0000 00000000 C403C110 32010E21 199AFF1C 60089AFF 0EC11032 010E2119 9AFF1C60 089AFF0E C1103201 0E21199A FF1C6008 9AFF0EC1 1032010E 21199AFF 1C60089A FF0EC110 32010E21 199AFF1C 60084C00 1C82214C 001CC110 9AFF0E21 1932010E 8221CEFE 1C0000CE FE0E6008 32010EC1 109AFF1C 00004C00 1C21194C 001C6008 9AFF0EC1 1032010E 21199AFF 1C60089A FF0EC110 32010000 1100B004 00000000 1100B004 00000000 E4023FEF 0DBC26BC 1249E83F AAFB3B20 02F4BEAB 56BC12E5 E6BD6950 BB25D5F4 36354BBC 13E5E622 6B50BB25 D5F43F35 4BBC13E5 E6BD6950 BB25D5F4 F0374BBC 13E5E622 6B50BB22 DEF50C7E 32BC1D41 DF10FDD4 3B1E74EC A2384BBC 1171DE3F B7F0BB1B 99FB12D1 8F3C0EFE FB713A7D BC1145EF 2F6F50BB 223EFE7A 7D32BC1D A1E7B0FA D43B1ED5 F43F354B BC13E5E6 526F50BB 25D5F46D 384BBC07 3FEFFCBB 26BC0000 F4010000 D9E6AA39 26E90721 6C8CBB20 95054FED 983B21B8 02486585 BB305A07 A6E491BB 202E0642 25983B22 BE014C46 65BB2E9D 07CCAF89 BB240704 9E54163B 34170370 27183B2B 55008129 EC3A255A 07B9E491 BB202E06 7027983B 22BE019B 4265BB2E 5A07B9E4 91BB1100 00B6E6AA B9000000 445C1B5D 000A5218 1DFD0D8A 0B1AFE0D B90E5403 08F92249 030B05D9 0104851B A6FE0B05 AEFF3452 181DFD0D 8A0B1AFE 0DB90E54 0308F922 49030B05 D9010485 1BA6FE0B 05AEFF34 52181DFD 0D8A0B1A FE0DB90E 540308F9 2249030B 05D90104 851BA6FE 0B05AEFF 3452181D FD0D8A0B 1AFE0DB9 0E540308 F9224903 0B05D901 04851BA6 FE0B05AE FF245218 1DFD0E69 0D23FF0E 09164A03 07052D04 04642246 01090542 0024E117 82FC0C7E 0697F90F 5BD94AFD 0D0522FE 042AE521 050705A8 0604FC02 02070605 2A051403 0721FE05 F1039500 09057501 044E00B2 FA060595 F93447F2 EAFD0BDD F247030C D5102806 07C023C6 020C05C3 01545323 B8000A25 2152FD12 CA14A400 0CBE1D68 020AF61D DDFD0BBF 1159FD0A 05C7FC04 E0FAABFC 10053BFD 244A035D 04088719 000705C0 2493010C 05550044 8B1B6B00 0952181D FD0D8A0B 1AFE0DB9 0E540308 F9224903 0B05D901 04851BA6 FE0105AE FF045C1B AEFF0000 44D82B4B FF0AB72C F60114C6 39D3FE0D 5F2880FE 0C2C2C3C 000B05AD FF34B72C F60114C6 39D3FE0D 5F2880FE 0C2C2C3C 000B05AD FF34B82C F60114C6 39D3FE0D 5F2880FE 0C2C2C3C 000B05AD FF34B72C F60114C6 39D3FE0D 5F2880FE 0C2C2C3C 000B05AD FFF402B8 2CF60114 5636B0FE 103B280D 000CA732 52000980 3C03020E 9643FAFE 0FFE4040 010EF23B A7FF0C77 3E5E0111 DE36B5FD 0EFC1E5F FF0D3D1D B8FF0C99 1A1A0210 252520FF 10FB1D6B 0014872B 3C010DFF 3B740014 2D2F84FE 09DC25B2 0009232B 40FF09B7 2CF60114 C639D3FE 0D5F2880 FE0DD82B ADFF0000 B4032F19 96000A3A 16F3FD0C 9F0CA7FD 0D95051F 0106720E 99040B8F 199CFF0D 481706FE 0E6C0B97 FD0D3B06 7A010A69 1732020B 7A198A00 0A3A1516 FE0B9F0C A7FD0D95 051F0106 720E9904 0B8F199C FF0D4817 06FE0E6C 0B97FD0D 3B067A01 0A691732 020B7A19 8A000A3A 1516FE0C 190D34FE 12E50EC1 030B1517 9EFE082A 11D3FE07 B806E1FA 0F91DE8B FD0C054A FE04A9E6 22040805 75050408 03330509 05C80304 18061800 0A050001 048D04F1 FB0605FC FA8401D9 F8ECFD0B 73F5A601 0B4B00EA 0111761A AA010B94 1B6BFD14 FB05CAFE 0D1A0885 020CD211 96FF0AF5 0B94FD0C 05D3FC14 CBFAD0FE 126B08A9 03090573 04F40026 1966010A 7A198A00 0A3A1516 FE0B9F0C A7FD0D95 051F0106 720E9904 0B8F199C FF042F19 4E000000 4492E13A FD0D02CA B4FD18D1 C07CFF08 59C94305 0A27E20D 010C05D6 FE348ECC 1DFD1AD1 C07CFF08 59C94305 0A27E20D 010C05D6 FE348ECC 1DFD1AD1 C07CFF08 59C94305 0A27E20D 010C05D6 FE348ECC 1DFD1AD1 C07CFF08 59C94305 0A27E20D 010C05D6 FE348ECC 1DFD1AAC BFFDFF09 0CCC8705 09ADE0B7 000C05AF FE24BED0 0EFF1A1E D225FE07 56CE1401 09051802 048CE153 04040519 0344EFE1 18FD09BA D507FF0E 13D0F5FF 0F14D067 0011A6DA 91FD0D05 9EFC3416 C3A9FE19 1FCF1001 0B5BDBB0 0207D1DB F1FC0A05 31FC245B CD8EFF0D E3CB0CFF 0F85C0D5 FE07058C FF1442C9 75050A2B E2FD000C 05D0FE34 8ECC1DFD 1AD1C07C FF0859C9 43050A27 E20D0101 05D6FE04 92E1D6FE 00000000 1100B004 00000000 1100B004 00000000 115BF5B0 045BF500 11A83DB0 04A83D00 1132E5B0 0432E500 11DBFEB0 04DBFE00 11D648B0 04D64800 11D35BB0 04D35B00 11B7FFB0 04B7FF00 112056B0 04205600 11D35BB0 04D35B00 112501B0 04250100 118561B0 04856100 11D35BB0 04D35B00 11DE02B0 04DE0200 11CF6EB0 04CF6E00 11D35BB0 04D35B00 1158FFB0 0458FF00 111CB004 1C000000 11EAEFB0 04EAEF00 11394AB0 04394A00 B3010000 1C7CF91C 00001C7C F91C0000 1C7CF91C 00001C7C F91C0000 1C7CF91C 00001C7C F91C0400 0033001C 03A7041C 040000CD FF1C537C F91C0000 1C7CF91C 00001C7C F91C0000 00000000 94030000 D0404CBC 0ED5F44D 2B883B1C 2B0B4D2B 883B0E00 00D0404C BC0ED5F4 352B883B 1C2B0B35 2B883B0E 00000641 4CBC0ED5 F44D2B88 3B1C2B0B 352B883B 0E0000D0 404CBC0E D5F4352B 883B1C2B 0B352B88 3B0E0000 06414CBC 0ED5F44D 2B883B1C 2B0BD040 4C3B1C00 00D040CC 3A1CC110 B56E69BB 46A9E9A9 3019BC0E 7EDED040 CC3B1C6B FAEC40CC 3B1CD5F4 B030993B 1C2B0B35 2B883B0E 0000D040 4CBC0ED5 F44D2B88 3B1C2B0B 4D2B883B 0E0000D0 404CBC00 B4030000 D040CCBB 0E6BFA4D 2B083B1C 95054D2B 083B0E00 00D040CC BB0E6BFA 352B083B 1C950535 2B083B0E 00000641 CCBB0E6B FA4D2B08 3B1C9505 352B083B 0E0000D0 40CCBB0E 6BFA352B 083B1C95 05352B08 3B0E0000 0641CCBB 0E6BFA4D 2B083B1C 9505352B 083B0E00 00D040CC BB0E6BFA 352B083B 1C9505B5 6E693A46 0000412B 08BB0E6B FA352B08 3B1C9505 4D2B083B 0E000006 41CCBB0E 6BFA352B 083B1C95 05352B08 3B0E0000 D040CCBB 0E6BFA4D 2B083B1C 95054D2B 083B0E00 00D040CC BB000000 11A0B004 A0000000 1100B004 00000000 116F15B0 046F1500 94030D18 D0404CBC 0EE20C4D 2B883B1C 39234D2B 883B0E0D 18D0404C BC0EE20C 352B883B 1C392335 2B883B0E 0D180641 4CBC0EE2 0C4D2B88 3B1C3923 352B883B 0E0D18D0 404CBC0E E20C352B 883B1C39 23352B88 3B0E0D18 06414CBC 0EE20C4D 2B883B1C 3923D040 4C3B1C0D 18CA40CC 3A1CCF28 B56E69BB 46B601A9 3019BC0E 8CF6D040 CC3B1C78 12EC40CC 3B1CE20C B030993B 1C392335 2B883B0E 0D18D040 4CBC0EE2 0C4D2B88 3B1C3923 4D2B883B 0E0D18D0 404CBC00 0429FE00 0E0329FE 1C1429FE 000E29FE 000E0329 FE1C1429 FE000E29 FE000E03 29FE1C14 29FE000E 29FE000E 0329FE1C 1429FE00 0E29FE00 0E0329FE 1C1429FE 000E29FE 000E0329 FE1C1429 FE000E29 FE000E03 29FE1C14 29FE000E 29FE000E 0329FE1C 1429FE00 0E29FE00 0E0329FE 1C1429FE 000E29FE 000E0329 FE1C1429 FE000E29 FE000000 1100B004 00000000 1100B004 00000000 1100B004 00000000 1180B004 80000000 1100B004 00000000 B403B5D0 65030932 D4CEFE09 7BD051FF 092ACD4A FD05A6CC F4010A15 CF52FE0F 8FD16703 09D7D366 FE087BD0 51FF092A CD4AFD05 A6CCF401 0A15CF52 FE0F8FD1 670309D7 D366FE08 7BD051FF 092ACD4A FD05A6CC F4010A15 CF52FE0F 8FD16703 09D7D366 FE087BD0 51FF092A CD4AFD05 A6CCF401 0A15CF52 FE0F8FD1 670309D7 D366FE09 ECCFCFFE 094ACA55 FC0B055F FD246CCE A0010C6A D08E0107 58D76105 0905CA04 34ADDBC0 FF0EDBDA 9CFD0615 D975010A A6DB30FF 0C059BFE 24DCD896 FF09E5DC 790208AD DB39FB07 0558FA14 4CD42AFE 0737D09C FC0405A7 FD0428D1 98030705 500404C4 D6460004 05A3FE04 1FD3BBFA 090526FC 5468CF99 FD0883CB 4AFF17BD C778FE06 7AC86802 102FCB9B FD05DCC7 67FF0505 9A06041A D0D7040E 05BD03A4 01F6D16D 000A4CCF F6FC064C CE680109 15CF49FE 0F8FD167 0309D7D3 66FE087B D051FF09 2ACD4AFD 05A6CCF4 010A15CF 52FE0EB5 D00A0300 C404536E 25FF1161 5D6FFE0B EE5C8401 122B6B3F 010E906B 13FE0E9F 5C91FE10 0C62F101 12426E9A 0010EF61 ABFD10EE 5C840112 2B6B3F01 0E906B13 FE0E9F5C 91FE100C 62F10112 426E9A00 10EF61AB FD10845D C10118D0 6D990012 A561F4FE 1298612C 0114616C BA000B68 6611FE0E B95D48FF 111266E0 000CE269 3A00102F 670AFF0E 1D62FAFF 0E8B68C9 000EBD6E A8000D00 663FFD13 815C7701 10E5694B 0110906B 13FE0E9F 5C91FE10 0C62F101 12426E9A 0004536E 8EFF0000 64455E34 FF092760 590111B8 5C42FF0C F660A8FF 13DE5D49 FF0FA861 84FF0D8C 5C7A0009 053F0134 F660A8FF 13DE5D49 FF0FA861 84FF0D8C 5C7A0009 053F0134 F660A8FF 13DE5D49 FF0FA861 84FF0D8C 5C7A0009 053F0194 03F660A8 FF13DE5D 49FF0FA1 6175FF0F F55C2D02 09A76072 FF11CA5A A2FE0E04 63E90011 2362C1FF 0F0E583D FF0C3E58 8D000D21 6303000F 7A60E300 099F5E47 FF0A215F 64001178 61E3FF0D 265E5CFF 0C2762D3 FF10CC62 650103D1 62DAFD08 685FD600 10C95FEB FE08A45E 55010978 6085FF11 DE5D49FF 0FA86184 FF0D8C5C 7A000905 3F0114F6 60A8FF12 455E3BFF 00000000 1498ED9C F80777D6 C1FB0B05 DEFC143F D6D60109 AEE70305 03055704 04F8EADD FF070515 FE04B0E3 89FF0B05 6A001411 F14B0206 B3F290FD 0805BBFB 0497D8AB FA0C05C1 FB143FD6 D60109AE E7030503 05570404 F8EADDFF 070515FE 04B0E389 FF0B056A 001411F1 4B0206B3 F290FD08 05BBFB04 97D8AAFA 0C05C1FB 143FD6D6 0109AEE7 03050305 570404F8 EADDFF07 0515FE04 B0E389FF 0B056A00 1411F14B 0206B3F2 90FD0805 BBFB0497 D8ABFA0C 05C1FB14 3FD6D601 09AEE703 05030557 0404F8EA DDFF0705 15FE04B0 E389FF0B 056A0014 11F14B02 06B3F290 FD0805BB FB0497D8 AAFA0B05 C1FB248D D5AB0109 5DE71A06 031DEFA0 0307056B 000458E6 D6FD0D05 B8FE1441 F00F0206 10F15CFD 0705B7FB 0481DB97 FA0C058A FB042ED7 1B020805 BA0204C6 E9B90503 05010504 5DEECC00 070582FE 04C7E5B4 FE080589 FF0497EB C7010905 24010431 EE370005 0567FF24 8CE633FB 0F6AD53E 010ADEE0 34050205 56060420 E62D0402 05FCFE04 4EE361FB 0505BEF9 0469D720 FE05053E 0004F1E0 D0060305 F9070499 EA100407 05BC0004 35E3D4FE 08050900 24C6E7BE FF0F61E7 3D000A57 F12C0404 05490314 8AF162FD 08DAEB84 00050524 011483EE DBFF06EB F4670502 05F70604 A1FC7308 01051F03 0431FE1F 030405C7 F4044BE7 0AF60705 5FF704DD D4EEFD10 05C4FE14 81E0D004 0598E838 000805B4 FE04A7E3 B2000A05 73011411 F14B0206 B3F290FD 0805BBFB 0497D8AB FA0C05C1 FB143FD6 D60109AE E7030503 05570404 F8EADDFF 070515FE 04B0E389 FF0B056A 001411F1 4B0206B3 F290FD02 05BBFB04 98ED10FA 00000000 1100B004 00000000 1100B004 00000000 116629B0 04662900 117ADCB0 047ADC00 11ECB004 EC000000 1194F8B0 0494F800 111FDFB0 041FDF00 116FD7B0 046FD700 11E2FDB0 04E2FD00 11BED9B0 04BED900 116FD7B0 046FD700 117B08B0 047B0800 1121D5B0 0421D500 116FD7B0 046FD700 113515B0 04351500 11BFCFB0 04BFCF00 116FD7B0 046FD700 11BDCDB0 04BDCD00 1152D3B0 0452D300 11CB96B0 04CB9600 116CF4B0 046CF400 118FD9B0 048FD900 1154FEB0 0454FE00 11EE4AB0 04EE4A00 24D4F284 FE10D7DA 36001A54 04D1010C 05170164 C3F56CFE 0B90E016 FE1AB7F5 2C020A72 04E7FE0C 57F160FE 0EB6DA0A 001B5404 D1010C05 17019402 C3F56CFE 0B90E016 FE1AB7F5 2C020A72 04E7FE0C 57F160FE 0EB8DA0E 0019C800 DA0107C8 0073FE11 67E116FE 216DF91B 010FE8EB CBFE0F3A DA8F0019 89078702 03120F10 0105F006 19FE10BA EC50FE1F 65044902 06A4080B FD1205EB FD2428E5 D0FD1164 E05A0112 5404D301 0C051701 44C3F56C FE0B90E0 16FE1AB7 F52C020A 7204E7FE 0BD4F299 FE000000 2463E22D FF1201DB 69001846 F30A010C 056D0024 41E4EAFE 1829DDAA 001446F3 0A010C05 6D002442 E4EAFE18 29DDAA00 1446F30A 010C056D 002441E4 EAFE1829 DDAA0014 46F30A01 0C056D00 2442E4EA FE1900DE C2001358 F3D4000C 05320054 F1E3D8FE 1AE0DC9B 001262EB 5E000E3D E05AFF14 66DB8D00 159BF5FF 010405DD 023414F7 84FD13E8 DE51FF1F 75F48801 063AF5E8 FC1705B7 FD44F0D9 D2FF1D39 F220010D 41E4EAFE 1829DDAA 001446F3 0A010C05 6D001441 E4EAFE02 63E226FF 00000000 840332DA 8C08233C 1106E29F FDF0BB21 EAD521AA 383C11BE E2D0EED2 3B1905D5 050D07BC 1129D8C4 DC3D3C15 85E1ED89 09BC20EA D5FDA938 3C11BEE2 D0EED23B 1905D5E1 0C07BC11 29D8C4DC 3D3C157D E1712D0D BC2007D6 3C683A3C 13FDE39D 3F913A24 83D72233 233C12B1 E30DF1B6 3B1C04D3 CD7AF2BB 1D02DF3E 1D543B1A BED287DA AEBB1C20 E2832214 3C1C14D4 C33FE9BB 1C3EE24F F0113C1A 05D5E60B 07BC1129 D859DC3D 3C0332DA 595D1E3C 00000000 34A432E2 010FFA46 66FF19A6 111EFD04 B20C6301 0B05F702 34B73018 02114946 3BFF18A6 111EFD04 B20C6301 0B05F702 34B73018 02114946 3BFF18A6 111EFD04 B20C6301 0B05F702 34B73018 02114946 3BFF18A6 111EFD04 B20C6301 0B05F702 34B73018 02114846 3AFF17DC 1310FD05 1A0D9701 0C05FD02 F4001633 FE010FA9 4777FF18 061DFEFD 07AD1B51 020A7634 B5010F99 476EFF18 51121DFC 03D1021C F901154D FE4DFE01 1D010204 0207F202 0D05B505 3478332F 020E8E43 30FF164A 1159FC03 E00382FA 01153EFD 3EFD011D 01020487 02B40009 05880734 D82AE802 0A3041DE 011CC520 11FD084F 0BF9FE09 05630144 FF280103 0A503F06 020EFA41 A3FE14A6 111EFD04 B20C6301 0B05F702 14B73018 0201A432 ED010000 1100B004 00000000 1100B004 00000000 24A90507 7B19BC1E 0007A542 5B3C0D4C 141FDCD6 3B0C0523 8E0EBCD4 0149064F 5430BC25 0A0DFA68 913C098D 121131A9 BC0EC003 6BB827BC 25BD1142 B1933C06 181152D5 BEBC32BD 1142B493 3C061811 77D3BEBC 31C6104B 7D983C07 0311FDE1 BABC30F3 0EFF284B 3C0A440E BAAE84BC 2F1A1115 F0C43C05 4217600E 2ABC0C05 0322D9BC 344505D2 E941BC13 C5FE0B2B E63B14D9 12BE97D3 3C045D17 BB2B14BC 05056298 273B649B 0EA66BD9 BC13FDFF D3D01FBB 1EDD12C2 8E893C0C EA074A87 70BC2BBD 11B7B093 3C061811 D3D5BEBC 0AA9050F 3120BC00 E4025EFA 43E24F3C 11B0037D 6A0BBC21 71F4F92A 843C117F 0469EBF2 3B1C2FF1 A2EF00BC 1C7F0457 E7F23B1C 2FF1E9EF 00BC1C7F 0469EBF2 3B1C2FF1 75EF00BC 1C7F0425 E8F23B1F 16F01137 E13A20C5 0ACC7ED9 BA1F8101 330E003C 11010B7B D58D3B1C 10EE6B32 6DBC10F9 EED01111 3C1933F1 74800EBC 1C0EF22C 6A963C19 0B0365A8 29BC1D6E F30A8F78 3C127F04 47E9F23B 1C2FF16C EF00BC11 5EFA4A47 503C0000 B4026AED 0A868E3B 164EEFEC AAA1BB1F 79EC2B29 B53B1BA6 EE476CAB BB1D79EC 9629B53B 1BA6EE00 6CABBB1D 79ECE328 B53B1BA6 EE476CAB BB1D79EC BA29B53B 1AA9EED9 1DC1BB21 4EEEDC42 033C1F5B F28CC45A BB236AF4 4762993A 268EE761 DB143B2A 6BE70264 96BA2629 F1D9574C BA23BEEB 9974BB3B 1CFBEE7E 49A7BB1E 79EC2B29 B53B036A ED140C8F 3B000000 1161EFB0 0461EF00 840346EB 437422BC 1950E9E9 3A1A3C16 62F49373 72BC1BF2 E5AC6D9C 3B1358F4 1098743C 10D9ED2E 6A83BC27 55F34F54 863C0F09 F0259590 BC283EF2 092F8E3C 0E4DF2A0 2F8DBC21 ECE93292 1E3C1545 F49AE479 BC19F0E4 15A0D63A 17CDF057 FFEB3B16 5CE7B309 F2BB1E14 F4E054BA 3C0DCFF6 C70295BC 1FC1EABB 8F1A3C0F 65F98C03 683C1578 E949B92B BC213AF3 6330893C 0F0BF036 EA90BC29 55F3A352 863C0F09 F0049390 BC0546EB 036538BC 00000000 8404C8F6 9EC38FBC 124BE666 A4D43B12 18FC30A2 DE3C0E0D FE873D99 BC10FFE8 102894BC 147EF10A 31BF3C0F A1028FF8 FEBB1706 E7776A48 BC127EF1 2534BF3C 0FA10201 FEFEBB17 06E7C469 48BC127E F10A31BF 3C0FA102 8FF8FEBB 1706E777 6A48BC12 80F14523 C03C0F77 02C2B611 BC0FB3F0 5A88B7BC 10A0E647 27183C11 45F88CE6 993C16E9 EED7C392 BC10A5E7 DEC65E3C 11C60169 C5FB3C0D 0805C985 A7BC143C EE4AF1E7 BB178B01 0287DC3C 0D310226 67BBBC12 09E89353 82BC13F3 F08766C2 3C0FAB02 B406FCBB 1706E777 6D48BC12 7EF17A31 BF3C0FA1 02EEFBFE BB0BC8F6 8AF48BBC 00000000 119C26B0 049C2600 116AF8B0 046AF800 1150EDB0 0450ED00 C40323E5 AB130ABC 200BDDE5 9B883C0F 06EA1043 FBBB1D64 D8E0C165 BB144FE7 E68FA03C 1199E439 051ABC1F 0BDD5A9C 883C0F06 EAA442FB BB1D64D8 E0C165BB 144FE7E6 8FA03C11 99E43905 1ABC2186 DE93099F 3C0DF8E9 E496F8BB 14E3E196 4E8ABB1C D5F1DCB7 893C0BD5 F0303076 BC204BDE 91C8383B 1027EA3F B5113C0E 34DFCCB0 6ABC1107 CF603F28 BB1564E1 C6E5D33C 0AAEE7E4 6815BC11 C0DD1D68 4CBC1DBF E4B17BA8 3C0A7CE9 275610BC 155DDB45 E419BC17 F2E19329 AB3C0B06 EA0A3EFB BB0923E5 A9D0F0BB 00000000 C4021A31 227C903B 28DB265A 6AA2BB15 0134CB59 833B25D1 25420A1C BB11E032 E0A7983B 2645268B 0E85BB13 76331260 903B2545 260E1185 BB137633 415E903B 25352674 2782BB12 6A3295D6 8A3B2750 24AFE621 BB123F31 9B8E983B 25282639 A9AABB12 2D333E48 B63B268A 25EA2678 BB12FE32 7578953B 264526C1 5585BB13 76331260 903B2545 26F60E85 BB0F1A31 4BC7983B 00000000 C402B523 911797BB 1F0F23D2 02DC3B14 33275A27 D1BB27B8 25EBB9E5 3B126526 F7A1C8BB 25D22439 0CE53B12 33270D28 D1BB27B8 251BBEE5 3B126526 F7A1C8BB 268325FB 77EC3B12 7F265F87 BABB298C 2C6221AE 3B2C0D20 F7084E3B 1951271A A708BC1D F0190B2C D43B1B7C 27628DE7 BB29AE26 71A1DD3B 12A12553 58BCBB24 D224150C E53B1233 274125D1 BB05B523 467092BB 00000000 8405C735 91010F05 477CFF18 A11F3EFE 07CB1E1D 020B5837 A8010E05 477CFF18 A11F3EFE 07CA1E1D 020B5837 A8010E05 477CFF18 A11F3EFE 07CB1E1D 020B5837 A8010E05 477CFF18 A11F3EFE 07CA1E1D 020B5837 A8010E06 477DFF17 602113FE 08C21E1C 020B2737 9C010E52 466BFF18 471F4AFE 0852204D 020A0E36 A9010FFE 4575FF17 E71F1EFE 07361E19 020AC535 A4010F2E 4871FF17 97200CFE 08531E37 020B6F37 A6010EF9 4670FF17 7D2115FE 08CB1E1D 020B5837 A8010E05 477CFF18 A11F3EFE 07CB1E1D 020AC735 97010000 1100B004 00000000 1100B004 00000000 E403EA15 876035BC 12DA0803 25CD3B17 E42C2AC2 113C107F 1472253F BC12B509 3041E83B 16E42C53 C4113C10 7F148425 3FBC12B5 09CE40E8 3B16E42C 1EC1113C 107F1472 253FBC12 B5090044 E83B16E4 2C53C411 3C107F14 84253FBC 12B9090D 7FEA3B16 172DA26C 013C1008 1479B044 BC127509 C457DC3B 17D2293C 3BA33B0F 9C137AC5 2CBC1310 0AA52EF5 3B165B30 E1A5013C 0EAB19E7 4634BC13 2D0DE05E F93B1618 30A24AE5 3B10D714 371F50BC 13980AE9 79FD3B15 E32CF00C 133C107F 1472253F BC12B509 7944E83B 16E42CAD C1113C0F EA15BA2D 39BC0000 D4027F23 AC6A473C 11513781 DED8BB20 9F168CB4 663C12BC 372D9D06 3C269F16 B9B4663C 12BC374B 9B063C26 9F1682B4 663C12BC 371B9D06 3C269F16 94B7663C 12BC374B 9B063C23 6213C44C 173C1DD6 420CC5F9 BA1F1932 1FD2EF3B 112543EC 0BFD3A26 1B07A3BF 113C1ECC 14B3230D BC1B9511 D892863C 1A7B3635 220FBC1D 9F1682B4 663C12BC 37FD9B06 3C269F16 3FB8663C 077F23E3 66443C00 D4023924 4DA8FD3B 136A2F76 0FCFBB20 821E73F4 1D3C1AA0 2D2548F8 BB1E821E 52F21D3C 1AA02DA2 4BF8BB1E 821E6BF4 1D3C1AA0 2D2548F8 BB1E821E 6EF21D3C 1A272DDA 580ABC1D F21DFB95 1A3C1B59 364A0B7C BB1EB82B 8B34B43B 19233137 2428BC1F 4915E5C3 E43B1E72 1BE588D4 BB1CBD1D 3A783B3C 19152EF9 1C00BC1C 481DD768 193C1A8F 2E11F4E4 BB1F821E 5BF21D3C 05392499 50F93B00 116BFAB0 046BFA00 B4025F22 DEF2453B 270C1B4D 8943BB1C 5F25F2B3 4F3A1E85 1A3FD97E BA1A5F25 97B04F3A 1E851A6D D17EBA1A 5F25F2B3 4F3A1E85 1A3FD97E BA1A5F25 97B04F3A 1E871AEF 0C84BA1A E52489AC 063A2084 196D41AD 3A216A24 D796B4BA 1F241FF7 4AC53B2B 141B2510 84BB1C4E 25B2C87D 3A1F841A 0CB472BA 1A5F25D4 B24F3A1E 851A8BD2 7EBA0F5F 22FE9167 3B000000 A40232ED C9B4CFBB 23E1EA45 A0833C37 D9E9EF8A 823C12CE EEEE7FCE BB27E1EA 45A0833C 37D9E9C9 8C823C12 CEEEEE7F CEBB27D4 EA04AE82 3C138AEE 9EEF92BB 25B7F3BF D8673C12 94F39C67 1EBC27E6 EDC0B441 3C21ADDE 342EE2BB 1732E951 A19F3C25 4BE51B0E 48BB1325 EC471075 3C35D7E8 B78F7B3C 10E9EF5E 06A0BB07 32ED778B C4BB0000 112141B0 04214100 112627B0 04262700 113AB004 3A000000 00080000 064D8861 00000000 00060000 07878861 00000008 00DB0000 062E0061 00000010 004D0000 014F0061 000000EC 00CD0000 022D0061 0000013C 004D0000 012E0061 0000020C 00930000 022D2E00 0000025C 00060000 06888800 000002F0 00060000 03888800 000002F8 00A30000 022E0000 00000300 00720000 014F0000 000003A4 01630000 032D2E00 00000418 00DF0000 024E2E00 0000057C 011F0000 012D2E00 0000065C 010D0000 032D2E00 0000077C 00060000 02888800 0000088C 00060000 01888800 00000894 00080000 012E8800 0000089C 00080000 024F8800 000008A4 00080000 032E8800 000008AC 00080000 032E8800 000008B4 00080000 024E8800 000008BC 00080000 024E8800 000008C4 00080000 032E8800 000008CC 00080000 024E8800 000008D4 00080000 024E8800 000008DC 00080000 034F8800 000008E4 00080000 024E8800 000008EC 00080000 024E8800 000008F4 00080000 034F8800 000008FC 00080000 024E8800 00000904 00080000 024E8800 0000090C 00080000 012E8800 00000914 00060000 02878800 0000091C 00080000 032E8800 00000924 00080000 034E8800 0000092C 00490000 012E2E00 00000934 00B80000 022E0000 00000980 00C60000 032E0000 00000A38 00060000 06868800 00000B00 00060000 07888800 00000B08 00080000 014F8800 00000B10 00B80000 022E0000 00000B18 00870000 032E6600 00000BD0 00060000 03888800 00000C58 00060000 02888800 00000C60 00060000 01888800 00000C68 00060000 08878800 00000C70 00060000 01888800 00000C78 015C0000 032C2E00 00000C80 00BB0000 024D2E00 00000DDC 00E90000 014D2E00 00000E98 02510000 032D2E00 00000F84 00060000 02888800 000011D8 00060000 01888800 000011E0 00080000 014F8800 000011E8 00080000 022E8800 000011F0 00060000 03668800 000011F8 00080000 032E8800 00001200 00080000 022D8800 00001208 00080000 022D8800 00001210 00080000 032E8800 00001218 00080000 022D8800 00001220 00080000 022D8800 00001228 00080000 034F8800 00001230 00080000 022D8800 00001238 00080000 022D8800 00001240 00080000 034F8800 00001248 00080000 022D8800 00001250 00080000 022D8800 00001258 00080000 012D8800 00001260 00080000 022D8800 00001268 00080000 034D8800 00001270 00080000 012E8800 00001278 00080000 022E8800 00001280 00080000 032E8800 00001288 00080000 034E8800 00001290 00C60000 032E2E00 00001298 00C10000 022E2E00 00001360 00B10000 012E0000 00001424 011B0000 034E2E00 000014D8 00060000 02888800 000015F4 00060000 01888800 000015FC 00D80000 032E0000 00001604 00A30000 022E0000 000016DC 008E0000 012E0000 00001780 00080000 012E8800 00001810 00B10000 022E0000 00001818 00E90000 032E0000 000018CC 00080000 054F8800 000019B8 00080000 062E8800 000019C0 00080000 072E8800 000019C8 00CD0000 032E0000 000019D0 00950000 024F0000 00001AA0 00950000 014F0000 00001B38 00CF0000 034E2E00 00001BD0 00060000 02888800 00001CA0 00060000 01888800 00001CA8 00DB0000 034F0000 00001CB0 009C0000 024F0000 00001D8C 009C0000 014F0000 00001E28 00080000 012E8800 00001EC4 008E0000 024F0000 00001ECC 00870000 032E0000 00001F5C 00080000 054F8800 00001FE4 00080000 064F8800 00001FEC 00060000 07878800 00001FF4 00000201 02030300 00030303 02010201 02010201 03010005 03000003 02000003 03030201 02010201 02010303 01000000 03030003 00060003 03000300 060000FF 00000001 00000000 440C0000 00002500 00001FFC 00002004 00002010 0000201C 00002028 00002034 00002040 0000204C 00002058 00002064 00002070 0000207C 00002088 00002094 000020A0 000020AC 000020B8 000020C4 000020D0 000020DC 000020E8 000020F4 00002100 0000210C 00002118 00002124 00002130 0000213C 00002148 00002154 00002160 0000216C 00002178 00002184 00002190 0000219C 000021A8 000021B4 000021C0 000021CC 000021D8 000021E4 000021F0 000021FC 00002208 00002214 00002220 0000222C 00002238 00002244 00002250 0000225C 00002268 00002274 00002280 0000228C 00002298 000022A4 000022B0 000022BC 000022C8 000022D4 000022E0 000022EC 000022F8 00002304 00002310 0000231C 00002328 00002334 00002340 0000234C 00002358 00002364 00002370 0000237C 00002388 00002394 000023A0 000023AC 000023B8 000023C4 000023D0 000023DC 000023E8 000023F4 00002400 0000240C 00002418 00002424 00002430 0000243C 00002448 00002454 00002460 0000246C 00002478 00002484 00002490 0000249C 000024A8 000024B4 000024C0 000024CC 000024D8 000024E4 000024F0 000024FC 0000254C 00002550 00002540
A commonly repeated set of values around 0x2880 is:
1C57161C 00001C57 161C0000
0x2890-289B: 1C57161C 00001C57 161C0000 -> 00000000 00000000 00000000
Results: Unnoticable if there at all
0x2890-28D7: 57161C 00001C57 161C0000 1C57161C 00001C57 161C0000 1C57161C 040000D0 40CCBA1C 232B0B1C 00001C2B 0B1C0400 00D040CC 3A1C5357 161C0000 1C57161C 00001C57 161C000000
Zeroing out both did nothing
0x2780-2783: 00002759 -> 00000000
Again nothing.
Zeroing 0x2748-4EAB
Finally have results. Animation is non-existant. Somehow uses last frame of the previous animation in weird ways
Noticed strange pattern at 0xFCFC-4E9F
Each value is similar to the value 0x20 ahead, (You can see this easier by setting your bytes per group to 4 and bytes per row to 32
almost always with the last number in the value that is not zero being the same as the number with the same requirements of the value 0x20 ahead
(They end with the same number almost always) (It would seem that the numbers in this collumn increase by 0x60 every time they go down up until a rule ends)
I am going to list some values with this rule starting at 0x4D04 in dec
8340
8436
8532
8628
8724
Difference of each:
96
96
96
96
It would seem that the numbers in this collumn increase by 0x60 every time they go down
I'm going to do the same for the collumn starting at 4D08 in hex
2040
20A0
2100
2160
21C0
2220
2280
22E0
2340
23A0
2400
2460
24C0
Difference:
60
60
60
60
60
60
60
60
60
60
60
60
This is most certainly a pattern
I am going to change the values in the 0x4D04 collumn to have 0x10 extra:
No noticable changes
Adding 0x100 instead
Looking for changes:
Noticed a placebo effect. Blue ness's shadow on his legs behind him(The smaller shadow) is bigger than default costume ness. Probably in original game (really weird)
Adding 0x1000:
Looking for changes:
No noticable changes
Adding 0x11000:
Looking for changes:
No noticable changes
Zeroing out the entire 0xFCFC-4E9F
Looking for changes:
No noticable changes
Placebo change: Doesn't blink as much.
Full original 0x4CFC-4E9F:
0000201C 00002028 00002034 00002040 0000204C 00002058 00002064 00002070 0000207C 00002088 00002094 000020A0 000020AC 000020B8 000020C4 000020D0 000020DC 000020E8 000020F4 00002100 0000210C 00002118 00002124 00002130 0000213C 00002148 00002154 00002160 0000216C 00002178 00002184 00002190 0000219C 000021A8 000021B4 000021C0 000021CC 000021D8 000021E4 000021F0 000021FC 00002208 00002214 00002220 0000222C 00002238 00002244 00002250 0000225C 00002268 00002274 00002280 0000228C 00002298 000022A4 000022B0 000022BC 000022C8 000022D4 000022E0 000022EC 000022F8 00002304 00002310 0000231C 00002328 00002334 00002340 0000234C 00002358 00002364 00002370 0000237C 00002388 00002394 000023A0 000023AC 000023B8 000023C4 000023D0 000023DC 000023E8 000023F4 00002400 0000240C 00002418 00002424 00002430 0000243C 00002448 00002454 00002460 0000246C 00002478 00002484 00002490 0000249C 000024A8 000024B4 000024C0 000024CC 000024D8 000024E4 000024F0 000024FC
No Clue what this does, I am absolutely certain that I found a pattern though.
 

Yaruzu

Smash Cadet
Joined
May 30, 2015
Messages
27
Location
Ontario, Canada
Alright, so I'm trying to change the transformation pictures for Pokemon Stadium, but there is some problem with it being an "indexed texture" (I don't know what this means) and when I get in game it changes the picture to have really odd colours like orange pixels all over the place. How do I bypass this?
 

nebula_benula

Smash Cadet
Joined
Sep 3, 2015
Messages
26
Location
Oviedo, Florida
'kay, here it is. My first attempt at automating the hacking process.
I made a program, called tpl_insert, that reads the offset data from TXT files. This can get cumbersome, I found, so in the future, I plan to hard-code the values into the program once I get all the offset data from S.
http://www.megaupload.com/?d=1WZLO69E

Read the README. please. it should explain a lot.
Requires command prompt knowledge to be able to use well. It's meant to be used with S.'s texture dumps, so go download them. I've only tested it with a few of them, so try them out, see what happens.

This can
-replace TPLs in a specified DAT by offset and # of file (reads info from the TXT file)
-replace palette data if there is any (but only 32 lines, no less)
-replace MAGENTA in a palette (FC 1F) with 00 00 if it comes up
-run texconv, if you have it
among other things

however, if the palette has fewer lines in the DAT file, I can't find out using the program. It assumes that every palette has 32 lines in the DAT. Furthermore, it cannot perform subtraction on the TPL data for _9 textures that have smaller palettes because, well, it can't tell what a smaller palette is. So, it can't replace the wireframe textures, since they have only two lines of palette data per texture, for example.

****
This is experimental. A debugging process. So download it, test it out, and tell me what works and what doesn't so I can fix it later.

9/12 - Updated the link for v0.93
This program looks very interesting, but in case you didn't know, the website you have for download (megaupload) is completely down, could you consider maybe a media fire or Dropbox link? Thanks!
 
Last edited:

Doq

Smash Lord
Joined
Dec 28, 2012
Messages
1,037
Location
The Lab, Sweet Home, OR
This program looks very interesting, but in case you didn't know, the website you have for download (megaupload) is completely down, could you consider maybe a media fire or Dropbox link? Thanks!
This program is from 2009. You'll have better luck with newer programs, such as DAT Texture Wizard.
 

nebula_benula

Smash Cadet
Joined
Sep 3, 2015
Messages
26
Location
Oviedo, Florida




Full Game Mods:

20XX Tournament Edition - created by Dan Salvato - This is a really awesome hack that not only allows you to augment your Melee experience with lots of cool and convenient features (such as stage-striking, all default tournament settings, replay saving, the Taunt Battle game mode, and more), but it allows you to do so with any unmodified console using nothing but a memory card and a special save file! Amazing! You'll want to just go watch the trailer now. Please note that this and achilles' 20XX Training Hack Pack below are actually separate projects. (So while they may use some features based on the same code, they don't officially provide support for or tie-in to one another.) Watch the trailer and learn more here.

The 20XX Melee Training Hack Pack - created by achilles - Experience the Melee hacking sensation that has the whole world burning for more! Ok, maybe I’m exaggerating a little bit, but not by much. This thing really is pretty amazing. And although it says “Training Hack Pack”, it’s not actually just for training; it’s got a ton of great new stuff to play with: modified and new stages, character costumes, game controls, custom music playlist control, new game modes, and more. The benefit of this mod over 20XXTE is that it has more content, however the downside is that it is only playable on hacked consoles. Besides normal, unmodified characters, it also has the SD Remix cast built-in, as well as PAL variations. Check out the feature list in the OP to see all the stuff you don’t know how you lived without.

Melee: SD Remix - created by VietGreek, Ripple, & standardtoaster - This is a carefully thought-out mod that aims to balance the cast through only conservative character buffs. In fact, this means that the higher-tier characters are barely, if at all, touched. As stated in the OP, SD Remix intends to improve the weaker characters to viable levels by: addressing their crippling weaknesses; providing them stronger offensive and defensive options in line with the stronger cast members; maintaining each character's archetype and niche. The mod does a great job to add in a bit of balance without changing the mechanics, feel, or flow of Melee. Full changelists are available.

Melee Netplay Community Build (MNCB) - organized by Myougi - This is a build specifically geared towards playing Melee online. Useful since it provides a shared standard, meaning that online games will be the same and don't desync, while addressing some of the remaining Netplay issues and adding some nice extra content.

Tata Hack Pack - created by tatatat0 - This is a full game mod that changes characters, game mechanics, UI, stages, and more. Characters are balanced through buffs, but with much more aggressive changes than in SD Remix. And the game has been modified to be faster, with new advanced techniques and drastically remastered character archetypes. It even has new moves and abilities. Try it out for a fresh twist!

The Falcon Ditto - created by CaptainJazz - Do you like Falcon? Good. Have some more! And...then, even more. (Especially recommended if you also like saxophones and smooth customers.)

Guides:

How-To: Gamecube Games on Your Wii U (or newer Wii) - written by Doqtor Kirby - Title says it all.

SSB: Melee TAS. Getting Started - written by Nakamaru - Perfect DK vs. Perfect Samus? Who would win!? Find out here! Er, at least, find out how to make a match along those lines. Or whatever else your imagination can cook up.

Burning a Texture Hacked Copy of Melee - written by MuraRengan - Most people play their hacked copy of smash via SD card or external hard drive and a hacked console rather than disc (so you don't have to re-burn your disc after making one small change). But if you'd like to create a new disc instead, for example to play on an unmodified console, then this is the guide for you.

The Definitive Guide to Exploring File Formats (TDGTEFF) - written by Watto and Mike Zuurman - An extensive resource that covers the basic fundamentals of hex editing, and then goes deep into how game archive formats are created and how to reverse-engineer them.

Research & Resources:

The Crazy Mod and wParam's SSBM Website - created by wParam - This, ladies and gentlemen, is the future of Melee hacking. It's actually ancient technology, before the Dolphin Age, that was recently found and just begun to be realized. It has the potential to encapsulate all hacks to the humble GameCube memory card, and, using an exploit in Melee's custom nametag feature, allows them to be loaded and injected into the game. This has huge implications, such as being able to use and share hacks to completely unmodified consoles! You could then even copy the hacks to another memory card by using the GC or Wii's standard memory card manager. Amazing!

YAGCD, "Yet Another GameCube Discussion" - Contains a ton of very in-depth GameCube hardware & software specs and documentation: available RAM, CPU instruction set, boot instructions, file format descriptions, and much more.

Melee dat format… - created by revel8n - DAT files are the primary type of data file that Melee uses to store stages, characters, trophies, menus, images, fonts, and more. This thread walks you through the hierarchy of how they're made up. Needless to say, this is for advanced hacking purposes.

HAL DAT Format (Mario Kart Wiki page) - written primarily by Tcll - Another great resource on the make-up of .dat files. It's in a little different format from above, and there isn't as much description here as you go, but still very useful. And you might find additional info with this one, especially considering that this page is still actively developed.

Post by GodFed on Relocation Tables - Relocation Tables are a specific data structure within .dat files. revel8n talks about these in his thread above, but reading this too can give you another valuable point of view, which may help connect the dots.

Programs:

The Melee Toolbox - created by DoctorKirby - This is a pack that contains a vast majority of all of the other programs for Melee modding found on these forums. Useful as a quick one-stop download, plus it has a menu system that can be used to open the programs within. Also, there is it's sister project, Project Neko. It is foretold that at some point these two projects will merge into one, presumably by fusion dance.

Dolphin - The great emulator used to run GameCube and Wii games on PC. It also has a ton of built-in features useful to game hacking. Even if you have this already, you may want to visit their download page anyway, considering how often new, improved versions are released. Check out this September progress report on performance boosts covering just a two-month span.

DebugFast Dolphin - compiled by Dan Salvato - This is a special version of Dolphin, useful for reverse-engineering ASM code and functions from RAM. What's found can then be used to create new, advanced codes. In particular, this build allows you to break (pause) the game when specific points in RAM are read or written to. Usefulness level: Invaluable.

GCRebuilder - Used to export/import files from a game disc ISO (including importing files of a slightly different size). .Net Framework 3.5 or higher is required for it run; you can find that free from Microsoft here. It can also extract all files at once from the disc image (image menu -> open -> right-click on "root" folder -> export).

GIMP - A free alternative to Photoshop. It can do most, if not all, that Photoshop can, although it works a little bit differently and usage may seem peculiar in some ways to newcomers. It can also do some things that Photoshop cannot, including easy alpha layer manipulation, easy plug-in creation, and even the ability to work from command line (Hello, Automation!). You can use pretty much any image editor (as long as it can work with palettes if you’re doing a paletted texture) to create/edit your textures though (but I’d still recommend something better than Paint).

HxD - There are many hex editors out there, offering the same basic functionality. So choosing one of these is typically personal preference, usually based on the extra features that make certain tasks quicker & easier. (Comparisons of a few.) HxD is a good, free hex editor that many of us use to open up .dat, .usd, or other files for manual editing or searching. It's very useful, but you may not need this depending on what you're doing. Another one you may want to consider is 010 Editor. Although the latter is not free, it does have the additional feature of templates and bookmarks, which can highlight different areas of the file as you're viewing it, to make them easier to read. A template for some of Melee's files was created by revel8n, and can be found here.

HexEdit - I haven't played with this yet, but it looks like it has some good features. It also supports templates (for automatic highlighting of certain sections). Tcll offers a template you can try here.

SSBM: Version Converter/Patcher - created by chain-ace - This allows you to convert an ISO of one version of Melee to another (e.g. v1.00 to 1.02). Quite useful if you cannot find the other version, but the program sometimes doesn't work on some systems. See here for how to check your [unmodified] game version using an MD5 hash.

Other useful posts:

Melee Files and their Purpose - Open an ISO and what do you find? The files explained in this sheet.

List of regional version differences - There are several different release versions of SSBM, with some slight differences in menus, character weights, some attacks, game mechanics, glitches, and more. See here for how to check your [unmodified] game version using an MD5 hash.

The Cutting Room Floor on SSBM - Lots of tidbits of unused or unfinished pieces of the game. An interesting browse, and maybe even be a little insightful in how the game does a few things.



Discussions and Guides:

The Complete Music (and Sound) Compendium - created by DoctorKirby - A help, support, and sharing thread to talk about audio hacking, or publish any cool new SSM hacks. The posts directly following the OP also contain a ton of songs and other audio hacks you can download, ready to go right into your ISO!

Brawl Custom Music (.com) - "What?? Brawl in my Melee?!" Uhh, well, not quite. It's not actually a guide either, but this is a great resource for lots of music (in the form of HPS files) that you can add directly into your [Melee] game. Just choose "Melee" in the "Download for" dropdown.

Audio Melee Hacks - Music and Sound Requests - created by Tichinde925 - If the guides below are too much, you can make your requests here. Or even better, create some new hacks that others have made requests for! There are also more songs and other audio hacks in the OP for download.

How to Create Custom HPS Music Files Using MeleeHPS (Includes BRSTM File Conversion Guide!) - written by achilles - HPS files are what contain the music in SSBM. This guide shows you how to create looped HPS files for your game.

Custom Music Guide that Makes Sense - created by lanabo - If you're a visual learner, this is the guide for you, since it's a video guide. Although, it may just be the guide for you anyway, because it's pretty good. It aims to be less technical and easier to follow than the other guides.

SSM Audio Hacking Guide - written by GodFed - SSM files are the audio files that hold the short audio clips in the game. The character voices, the announcer voice, all the blips, clicks, and clangs, etc. are in the SSM files. This guide goes over how to change these.

DSP Visual Tutorial - written by Tichinde925 - A picture's worth a thousand words. So, by definition, this visual guide is worth 15,000 words of tutorial, or something. Tichinde uses HxD, the free hex editor, to demonstrate how to manually hex SSM files. Check it out.

HPS Audio Hacking Guide - written by GodFed - HPS files hold longer audio clips, such as background music. They are somewhat confusing. This guide explains HPS file structure and how they work, as well as how to change the music.

SIMPLE Step-By-Step Music Hacking Guide for the Masses! - written by GSUB - For those of you who don't want all the technical details behind HPS hacks, check this guide out. Very nicely done.

SleepyK's Youtube Tutorials - Rather old guides; everything you need may already be covered in the guides above.

Programs:

WinAmp with the in_cube plugin - Used as a high quality player for .hps music files. Useful to test how your audio will sound in-game before adding it to your ISO.

Audacity - Used for audio editing. Allows for adjusting sample rates, both left and right channels, and much more.

SSBM Audio Tools - A download pack containing several audio tools, including:
- hps_insert v1.1 (and dependencies) - created by GodFed - Creates HPSs out of WAV files, almost perfectly. (Source code for hps_insert available here.)
- ssmex.exe - created by hcs - Extracts all of the DSPs from an SSM file.
- SuperSSMExt - created by bilbaggins - Batch file to extract and organize DSPs from SSMs.​

HPSAuto - created by SheiktheOgre and Goatlink - HPSAuto is a patching program that takes WAVE music files, inserts them into an HPS file (Thanks GSUB), loops (if selected), and renders the file usable in modified melee ISOs.

MeleeHps and MeleeSsm - created by GenesisFan64 - Used for music files and SFX packs, respectively. Rumor has it MeleeHps is far superior to hps_insert. Full results and write-ups are still being worked out in the lab.

vgmstream - created by hcs - converts HPS and DSP to WAV.

Halley's Comet Software - Used for working with many video game audio formats.

Other useful posts:

A post on normalizing and amplifying music volume - by Myougi - Useful so your music doesn't crackle, pop, or drown out the game's other sounds.

HPS info dumps: Part 1 and Part 2 - written by Eternal Yoshi - A whole bunch of info on Melee's looping songs, including for each song: sample rate, channels, loop start & end, total stream samples, encoding, metadata, layout, samples to play, offset info, loop points in song, total audio blocks, and total time.


Discussions and Guides:

Melee Syntax and Guide. Let's make super characters! - created by Itaru - This is an interesting thread that talks about editing special effects, hitbox/attack commands, and how they're placed in .DAT file data structures. If nothing else, at least check out the amazing, insane video found there.

Cosmetic Hitbox Element Guide - written by Lanceinthepants - You can do some cool stuff with this guide, such as change moves to have electric, darkness, fire, or other effects.

Changing Color Effects in Melee! - created by Lanceinthepants - Many texture types are standard images which include their own colors. But some (types _0 through _3) are actually given their color by other code in the game as they’re rendered. This guide explains how to change the hex that defines these colors, for various effects throughout the game. Look through the thread and you can find the offsets (locations in files) to tons of things.

Programs:

Effect Changer - created by CeLL - A simple program built to help you change the colors of different effects. And if you need it, here's a 32 bit version.

Laser Changer - created by CeLL - Program specifically made to easily change the colors of Fox and Falco’s lasers.

Other useful posts:

Side-B phantom hacks - written by nube - How to change the color of Falco and Fox's Side B.

Texture Hacking Effects - written by DRGN - Some examples of what you can do with hacking effects. There's also a spreadsheet that gives offsets and descriptions to findings in EfCoData.dat (Effects Common Data), a file that contains effects common to the cast. Neat effects pack (Onomatopoeia hack) included in the second post.


Discussions and Guides:

Melee Gecko Codes + Guide and Discussion - created by Dan Salvato, now updated by achilles - Gecko is a codehandler that can inject custom code into the game. It can translate ASM (assembly) instructions to hex, and even has its own set of instructions that would normally take many more lines of ASM to do. This thread shows you how to apply Gecko codes, and supplies them as well. There are tons of cool codes you can implement into your game; from having everything unlocked with standard tournament settings applied by default, or stage-striking functionality a la PM, to for-fun codes like Mewtwo's 'Always full Shadow Ball' or infinite float for Peach. Great place to discuss/share new codes of course, too.

The DOL mod topic - created by SypherPheonix - DOL mods are essentially Gecko codes written in ASM (assembly), turned into hex, and then put into the game's Start.dol file (a.k.a. main.dol), which is then included into the ISO. This basically makes the ISO a stand-alone hack.

Intro to Wii Game Modding (Twitch vid) - created by the legen, I mean, Dan Salvato - This is THE definitive intro for all Melee coding and Debug Dolphin use. It's a long and detailed video tutorial on how the hacking process works and how you can go about figuring out new hacks. More than just a good watch, this is basically required homework, and you'll be just about immediately directed to this if you start posting questions on creating code. It's that good.

Let's learn assembly - created by Hylian - A thread dedicated to learning assembly code (ASM), which can then be converted to hex (using the converter found in this section's Programs list) to create Gecko codes or DOL mods. There are a lot of great resources to be found in this thread; just start reading through.

New Melee Syntax school (Writing Character Commands) - written by Itaru - This explains the format for character commands (things like graphics, sound effects, hitboxes, and more, relating to characters' moves) and how to write them. Check out the promotional video in the OP for some examples of what can be done.

Animation/Subaction Swapping - written by phish-it - Talks about swapping an animation from one move to another. Bowser dair turned into item-throw animation? Good stuff.

Physics, Input, etc Display in Develop Mode - created by Magus - Codes to display various character and controller data in real time in Debug Mode. Very useful for analyzing mechanics and other RnD work.

How to Change the Default Character Names that Appear on the Character Select Portraits - written by achilles - Super long, descriptive title is descriptive (and super long). Notably, it also contains NametagHackGuide.xlsx, which is a useful spreadsheet to look up the hex codes that pertain to letters and numbers. This allows you to search for, and change, the strings of text found in the game. So this actually serves as a guide for changing more than what the title says. Perfect for finishing off your new game mechanics hack: text display to the player so they know what's going on.

Animation Hacking Documentation - written by Itaru - This is really along a subject that should have it's own section, if only we knew more things to put in such a section.... Hopefully this thread can serve as a base to some people who want to help figure animations out.

Resources:

SSBM RAM Addresses (v1.02) - created by Dan Salvato, achilles, Massive, and more - As the name says, this spreadsheet describes the data in RAM as the game runs. A short description such as this can’t even begin to explain how to use this, how useful this is, or its potential for writing game code, so you’ll have some reading to do before you can really sink your teeth into this. But don’t worry, I’ll just keep it for you here until you come back.

Melee Mechanics by Kadano - This is a YouTube channel full of very well-done, highly in-depth explanations of Melee’s internal mechanics. Admittedly, not directly hacking-related, but I think it’s useful to learn more about how exactly the mechanics of the game work in order to figure out how to reverse-engineer and change them.

wParam's notes - written by wParam - A very old, yet recent find. Some of the notes are fragmented and a bit hard to decipher. As SinsOfApathy said, it's sort of the 'Book of Shadows' in Melee spellcraft. Basically, it's more offsets and notes on the game's RAM and the creation of The Crazy Mod, and is therefore similar in its usefulness as the RAM addresses spreadsheet above this, but with additional info.

SSBM Hitboxes (NTSC v1.00).xlsx - created by ? - This is a huge spreadsheet containing information on every hitbox in the game. Some say it must have been made programmatically (by going through the dat files), others say some legend crafted it with his bare hands.... There's also Stratocaster's mirror of it here, which is viewable without having to download it.

Character Attributes - created by ? - A table on each character's various physical attributes and stats: jump height, landing lag, weight, friction, running speed, and more. This data is found in each of the characters' Pl**.dat file. The point in the file where the data begins varies by character, but you can find where the data starts for each character here.

Melee Character Files - created by ? - Here are the many .dat files for each character for every version of the game, nicely organized into subfolders for moveset, textures, effect, and DViWait files. Great for a program database. Have fun not having to extract all of this yourself.

Programs:

DRGN's DOL Manager - Easily Add Codes to Your Game! - created by DRGN - This is a great way for anyone to start off with (or continue!) hacking their Melee. It provides a very easy way to add mods to your game, manage what you have enabled or disabled, and even change the game's default settings!

Crazy Hand - created by Ampers, darkside, and Tater - This is a character editing program to allow you to edit things such as character attributes, hitboxes, subactions, and more. This is homage to the predecessor program Master Hand, which was an early RnD tool for the development of Project M, to read (but only read) Melee's character and move properties. Crazy Hand can already do a lot, and is still in development, with new features continually being added. You can also find a ton of information on how the game stores and reads hitboxes, subactions, action events, and more within the first couple of pages of the thread.

Tata's Interrupt changer - created by tatatat0 - This is a program to manipulate the mechanics of non-character specific subactions, which was once only possible by wizards. You can do anything from making dash-attack teleport, or DACUS, to changing all kinds of move physics.

ASM <> WiiRd Converter (Gecko.NET download) - This is used to convert Gecko codes to ASM, or ASM to Gecko. Conveniently, this particular download actually comes with the required components (how nice!).

IEEE 754 Converter - Many things in Melee are stored as floating-point numbers, as hex, when you really just want to know the decimal version. This tool converts between floating-point, hex, and decimal.

Other useful posts:

Perfect 16:9 Widescreen Support (with a nice little demo vid) - code created by Dan Salvato - Title says it all.

Fixed Toggleable Alternate Character Textures - written by zankyou - This is a code that allows you to double the number of alternate costumes you can have in your game for each character!

On hitboxes - written by Magus - How hitboxes are described in Melee's game files; how data such as damage, angle, and knockback is stored and how to find it.

On throw commands - written by Magus - Basically the same as above, but with throws.

On special subactions - written by Magus - A short note on special moves' subactions, and the currently known commands.

On shieldstun/hitstun - written by Magus - Some short notes.


Discussions and Research:

Stage Hacking: NEW Research + Discussion - created by Milun - Read through this thread and you'll find tons of info on stage model hacking. Learn how to edit camera movement ranges, blastzones, stage objects (models & collisions), platform positions & properties, ledges, and more! This thread and the one below are basically required reading for stage hacking.

Melee Stage Hacking Documentation (WARNING: Not User-Friendly) - created by Dan Salvato - As the disclaimer in the OP says, this is meant for experienced hackers. But it doesn’t take much before you start realizing that this is some great documentation here. It basically explains how the data structures are organized in stage .DAT files, and how the game (or we) can follow the hierarchy to different levels and objects.

SSBM Protocole stage.dat - created by Yax - A Google Docs spreadsheet that, like above, goes over what a typical stage .DAT file looks like and how its data structures are organized. It’s organized into easy-to-read sections, with some added notes to give you another perspective to accompany the one you gain from Dan’s docs.

Removing Parts of a Model - written by Milun - This guide does just what it says on the box, showing you how to remove parts of both character and stage models. It also goes on to talk about the Material Structure in DAT files, and how they affect the shininess, darkness, and other properties of textures. Very useful!

Resources:

Official Texture Hack Thread - created by Veggies - Although this is mostly character skin (texture) related hacks, there are lot of custom stages included here as well if you’re looking for those.

Hacked Stage Catalog (spreadsheet repository) - created by Pac-Man Vs. - A spreadsheet containing a list of hacked stages, including links for downloads, different tweaks of different stages, and video demos. It's a little outdated, but still includes variations of stage hacks that aren’t included in the thread above.

Programs:

VertConvert - created by Milun - Converts model objects to hex, which you can then paste into the proper places in your dat. Still requires some knowledge and legwork to use, but gives you some nice power.

Universal Model Converter - created by Tcll - This is still a work-in-progress, which Tcll has been quite hard at work at. It aims to be able to convert a 3D model of any format to any other format. Eventually he even plans to work out animations too. I believe so far it does work for Trophies.

SSBM Ty Model Converter - created by jahra!n - One of the first recorded attempts at creating a model viewer. It's incomplete, and I believe only [partially] works on trophies. Read through the thread a bit and you'll find a few more scripts that may help with the use of this program.

Other useful posts:

Tcll's 1st emutalk model viewer thread - Old and no longer used, but may contain information useful to those trying to get a better understanding of certain aspects of models.

Tcll's 2nd emutalk model viewer thread - Same as above.


Discussions & Resources:

Official Texture Hack Thread - created by Veggies - The OP is a massive repository for all existing character and stage skins (as well as a few other miscellaneous texture hacks). This is the place to post new designs as well. If you find a broken link in there or don't find what you're looking for, leave a post!

The Old Melee Texture Hacks Thread - created by D1 - The old version of above. Ideally all the textures found here should be in the above thread, but until that's confirmed I'll leave this here in case you'd like to look through it. (If you find some skins in here that aren't in the Official Texture Hack Thread, lets get them moved over. Or let me know if that's already happened and I'll remove this.)

SSBM: HQ (texture) - created by Steelia - As a side project, Steelia decided to upgrade the Melee cast's textures. The results are quite an improvement! (You can see his video showcases here.)For most characters this is only for their default color, but for a few he has redone their original alternate costumes too. He also has a couple stages upgraded and some original alternate costumes near the bottom of the OP (including a Wolf texture complete with model-hacked eyepatch!). Steelia also has these and more of his uploaded here, though you should already be able to find all of those either in Steelia's SSBM HQ thread or the Official Texture Hack Thread.

The Complete CSP Compendium - written by Doqtor Kirby - Character Select Portraits (CSPs) are the character portraits that show up along the bottom of the Character Select Screen (CSS) after you've chosen your character and color. These aren't linked to the character models or the model's textures in any way; they're just images, which means that if you want your CSPs to reflect the hacked character costumes you have, you'll need to replace these as well. There are currently waaay more character skins than CSPs, mostly because not everyone knows how to make them, but you can find a lot here.

Some Custom CSPs - created by ChinesePanda - And by 'some' it means a lot. Hopefully will eventually will be merged with the thread above.

Guides & Research:

The Guide to Hack Any Texture - written by DRGN - A complete guide that covers the full process of opening up your GCN/ISO game image, editing your chosen texture (of any texture/image type), and putting it back into the game. Should be easy to follow for even complete beginners; it basically contains everything you need to know as well as lots of good resources. Also includes advanced hacking techniques at the end of the guide. This is a good place to post questions or ask for help on the process.

Creating Melee Character Textures using the Melee Toolkit! It's Seriously So Easy.... - written by achilles - A guide explaining how to use Dan Salvato's Melee Toolkit program (for editing/creating character costumes). You seriously won't believe how easy it is....

Changing Color Effects in Melee! - created by Lanceinthepants - Many texture types are standard images which include their own colors. But some (types _0 through _3) are actually given their color by other code in the game as they’re rendered. This guide explains how to change the hex that defines these colors, for various effects throughout the game. Look through the thread and you can find the offsets (locations in files) to tons of things.

Changing Menu Text - written by Jorgasms - A lot of the text in the game is actually done using images/textures, but some of it you can change by simple hex editing. Jorgasms shows you how it's done.

Explanations of the TPL file format:
Infographics by DRGN - A basic visual for a rough overview (useful if new to hex layouts).
TPL File Format (Mario Kart Wiki) - An in-depth description.​

Programs:

DAT Texture Wizard (DTW) - created by DRGN - This is used to take your new/edited textures and write them into your DAT or USD files. Accepts both TPLs and PNGs of any texture type, converting the PNGs automagically, and performing all of the hex editing for all of the textures in just a couple of mouse clicks. Usage of this program is covered in the Guide to Hack Any Texture, linked to above.

Melee Toolkit - created by Dan Salvato - A tool for working on texture hacks for characters. It allows for easy replacement and extraction of textures, directly all the way to the ISO, and supports PNG as well as TPL images. It handles a lot of the processes of texture hacking for you and makes things very simple and easy. The downside is that it can’t be used for all textures.

PNG to-from TPL - created by DRGN - This is for converting textures between PNG and TPL file formats, in either direction. This is a fairly new script that’s not only faster and easier for a single texture than the old methods, but can easily do large batches of images all at once. You might not need this though since DAT Texture Wizard can convert textures as well, but there are still a few good uses for having a TPL copy of your texture. Note that if you open it in a text editor, you’ll find a few options in the beginning of the file that you can change.

Texture Finder - created by CeLL - Used to search for textures in DAT/USD files. You can even tell it to search for multiple images among multiple different dat files. Though seek times can add up, so you may want to limit your searches to a few at a time. Currently supports texture types _0 through _9.

KirbyTool - created by libertyernie - Another tool for automatically writing textures into DAT/USD files. Support is limited to only a few characters however. Full instructions are available in the download.

Other useful posts:

Fixed Toggleable Alternate Character Textures - written by zankyou - This is a code that allows you to double the number of alternate costumes you can have in your game for each character!

Character Texture Files - written by Steelia - Handy post that tells you the file names for each character's alternate costumes.

Texture previews (Steelia's YouTube) - If you're new to the concept of texture hacking, you can check out what some of the textures and stage hacks really look like live, in-game. Most of the videos here are really quite old though, so I wouldn't look to the guides you might find there to learn how to do stuff, since there are better methods nowadays (look around in this post for up-to-date guides). You can find the textures for download in the threads listed under Discussions and Resources above.

Old texture hacking methods: CMPR Texture Hacking (for _14 type textures), written by GodFed, and a guide on CI4/CI8 Texture Hacking (types _8 and _9, which are textures with palettes), written by Steelia. Though these are provided here kinda just-in-case and shouldn't be needed anymore. For converting textures between TPL and PNG, it is much easier to use the 'PNG to-from TPL' script listed with the programs above.


Primary Discussions and Guides:

MTH Video Hacking Guide - written by GodFed - MTH files are generic video files. The opening video falls into this category. This guide goes over the theory behind hacking them.

Opening Movie Hacking For Dummies - written by Cobalt - This explains how to hack the opening video (the video that plays automatically when you start the game). It's well organized and clear and awesome, so go check it out!

Programs:

thpplay.exe - by Thakis - Player for THP and MTH files.

mth_make.exe - created by GodFed - Makes MTH files from JPG sequences.

Other useful posts:

Example Opening Movie - created by SleepyK - Just an example. No download link (though if someone has this I could add it here).

1-frame MTH video file - Use this to replace all those long video files in your ISO, which can free up a lot of space and allow you to fit in more custom content!


- - -​


That's all for now. ^_^ Please let me know if you think a resource on here doesn't need to be here because it's redundant or outdated, or if you think there's something useful that you don't see here.
I'm not sure where else I should post this, so here goes...
When I was looking through textures with your program Dat Texture Wizard, I specifically was looking for the ball of fire that appears in Mario's fsmash. I looked in all of his files but could only find his skin data, and in the shared texture file was only a fireball animation? I realized it may be simply a special effect (like an explosion or something) but do you know where i could find that file, or even better the texture?
 

tatatat0

Smash Journeyman
Joined
Jan 28, 2015
Messages
412
Random notes:
Falco dash-attack 0x47D8: Pointer: 0x7D10. Name ..PlyFalco5K_Share_ACTION_CatchDash_figatree.???? Weird
0x3BDCF0: in ftCollisionSetHitStatus illegal parts!
VERY IMPORTANT: 0x3BD9E0
0x3BD5E0: Fighter procMap pos error Ram address: 0x803C05E0 Pointer: 3BD5C0
0x3BC460 groundCollVtx
0x3BA140
0xD2E1BB0(VMelee.iso): Repeated use of 11803C05 found throughout entire iso
0xD34E254 & D3BE454(VMelee.iso): Use of 803C05FD Which is a ram address probably near/in the error handling part of the start.dol
0x3F6E6DB4(VMelee.iso): 0x803C0531 VERY Close to error handling region if not in it.
0x531AB5B4(VMelee.iso): 0x803C0505 Same as above. Looked around here, found potential RAM offsets near text stating the loading of PlCo.dat fighter data.
Going to check out the offsets.
Potential offsets: 80067498 800674AC 800674D4 800674FC 80067514 80067540 8006756C 8006759C 800675B4 80067938 80067938 800677B4 800677E0 800677FC 80067818 8006785C 800678B8 800678E4
Gone through:
0x80067498|0x64078 Nothing signficant in viewable text. Found potential pattern which appears. 387F0000.
Potential pattern with my own bias on where the pattern starts/ends.
38|xx|00|yy
xx = flags_1
yy = flags_2
4CC63182 is also repeated a lot.
I guess I'll try zeroing out a bunch of stuff and see the results.
Zeroing 64058-6441F:
80BE000C 41810158 3C60803C 386304E8 5480103A 7C03002E 7C0903A6 4E800420 387F0000 4CC63182 389D0000 4BFF8939 48000150 38650000 38A1004C 38800000 4BFA3D15 387F0000 4CC63182 389D0000 38A1004C 4BFF8911 48000128 38650000 389E0010 38A10040 4BFA3CED 387F0000 4CC63182 389D0000 38A10040 4BFF88E9 48000100 387F0000 4CC63182 389D0000 38DE0010 4BFF88D1 480000E8 38650000 38A10034 38800000 4BFA3CAD 387F0000 4CC63182 389D0000 38A10034 38DE0010 4BFF88A5 480000BC 38650000 389E0010 38A10028 4BFA3C81 387F0000 4CC63182 389D0000 38A10028 38DE001C 4BFF8879 48000090 38650000 389E0010 38A1001C 4BFA3C55 387F0000 4CC63182 389D0000 38A1001C 38DE001C 38FE0020 4BFF8849 48000060 387F0000 4CC63182 389D0000 38DE0010 4BFF8831 48000048 38650000 389E0010 38A10010 4BFA3C0D 387F0000 38810010 4BFC9879 48000028 3C60803C 4CC63182 386304C0 482DE0C9 3C60803C 386304DC 3880007C 38AD8358 48320C2D 3C608046 38638FA0 389E0000 4831371D 8001006C 83E10064 83C10060 83A1005C 38210068 7C0803A6 4E800020 7C0802A6 90010004 9421FFE0 93E1001C 93C10018 7C9E2378 93A10014 7C7D1B78 80840000 48000014 83E40000 7FA3EB78 4BFFFDF9 7FE4FB78 28040000 4082FFEC 38000000 901E0000 80010024 83E1001C 83C10018 83A10014 38210020 7C0803A6 4E800020 7C0802A6 90010004 9421FFE0 93E1001C 93C10018 93A10014 3BA30000 3C608046 809D0000 3BE38FA0 48000014 83C40000 7FE3FB78 48313665 7FC4F378 28040000 4082FFEC 38000000 901D0000 80010024 83E1001C 83C10018 83A10014 38210020 7C0803A6 4E800020 7C0802A6 90010004 9421FF50 BF210094 40860024 D8210028 D8410030 D8610038 D8810040 D8A10048 D8C10050 D8E10058 D9010060 90610008 3C000500 3BA30000 9081000C 3BC40000 3B250000 90A10010 3B660000 3B470000 90C10014 3B810080 90E10018 9101001C 3D008046 91210020 39210008 91410024 90010080 380100B8 90010084 38088FA0 7C030378 91210088 48313449 9B230004 28190008 7C7F1B78 93630008 9343000C 41810178 3C60803C 3863050C 5720103A 7C03002E 7C0903A6 4E800420 387C0000 38800001 482BAE65 80830000 80640000 80040004 907F0010 901F0014 80040008 901F0018 4800015C 387C0000 38800001 482BAE39 80630000 C0030000 D01F0010 48000140 387C0000 38800001 482BAE1D 80630000 C0030000 D01F0010 48000124 387C0000 38800001 482BAE01 83630000 387C0000 38800001 482BADF1 80830000 807B0000 801B0004
Results: "Crashed" upon loading Final Destination:
Unknown instruction at 0x80067688 last_PC = 81200CF0 LR=800686BF
I don't know much about dolphin's error handling but I can assume the following.
It "crashed" at 0x80067688 meaning that is where it was loaded from.
When I hold enter to speed through error messages it is actually an infinite loop (repeats same offsets)
meaning that this function is either being 'polled' all the time or is 'polled' until it responds.
This means this is a pretty essential game function.
Going to do something less obstrusive
changing 0x64078-0x6407B: 387F0000 -> 389D0000
Results: Nothing noticable
Noticed a potential RAM address near it at 0x641E8: 0x8001006C. Dol Offset: 0xCC4C
Checking that out
Immediately noticed patterns.
common types of pattern
408x00yy
4800002x
3800xxxx
38, 48, and 38 pattern is common
Going to zero out just 0xCC4C: 4800000C
Results: No noticable changes.
Will do more stuff later.
 

SinsOfApathy

Smash Journeyman
Joined
Feb 24, 2015
Messages
474
NNID
Psion312
You do realize that whole region you zero'd is ASM, right? tatatat0 tatatat0

You're reading the Start.dol, which is why your addresses are slightly off what they are in memory.

Code:
lwz r5,12(r30)
bgt- 0x158
lis r3,-32708
addi r3,r3,1256
rlwinm r0,r4,2,0,29
lwzx r0,r3,r0
mtctr r0
bctr
addi r3,r31,0
crclr 6,6
addi r4,r29,0
bl 0xFFFF8938
b 0x150
addi r3,r5,0
addi r5,r1,76
li r4,0
bl 0xFFFA3D14
addi r3,r31,0
crclr 6,6
addi r4,r29,0
addi r5,r1,76
bl 0xFFFF8910
b 0x128
addi r3,r5,0
addi r4,r30,16
addi r5,r1,64
bl 0xFFFA3CEC
addi r3,r31,0
crclr 6,6
addi r4,r29,0
addi r5,r1,64
bl 0xFFFF88E8
b 0x100
addi r3,r31,0
crclr 6,6
addi r4,r29,0
addi r6,r30,16
bl 0xFFFF88D0
b 0xE8
addi r3,r5,0
addi r5,r1,52
li r4,0
bl 0xFFFA3CAC
addi r3,r31,0
crclr 6,6
addi r4,r29,0
addi r5,r1,52
addi r6,r30,16
bl 0xFFFF88A4
b 0xBC
addi r3,r5,0
addi r4,r30,16
addi r5,r1,40
bl 0xFFFA3C80
addi r3,r31,0
crclr 6,6
addi r4,r29,0
addi r5,r1,40
addi r6,r30,28
bl 0xFFFF8878
b 0x90
addi r3,r5,0
addi r4,r30,16
addi r5,r1,28
bl 0xFFFA3C54
addi r3,r31,0
crclr 6,6
addi r4,r29,0
addi r5,r1,28
addi r6,r30,28
addi r7,r30,32
bl 0xFFFF8848
b 0x60
addi r3,r31,0
crclr 6,6
addi r4,r29,0
addi r6,r30,16
bl 0xFFFF8830
b 0x48
addi r3,r5,0
addi r4,r30,16
addi r5,r1,16
bl 0xFFFA3C0C
addi r3,r31,0
addi r4,r1,16
bl 0xFFFC9878
b 0x28
lis r3,-32708
crclr 6,6
addi r3,r3,1216
bl 0x2DE0C8
lis r3,-32708
addi r3,r3,1244
li r4,124
subi r5,r13,31912
bl 0x320C2C
lis r3,-32698
subi r3,r3,28768
addi r4,r30,0
bl 0x31371C
lwz r0,108(r1)
lwz r31,100(r1)
lwz r30,96(r1)
lwz r29,92(r1)
addi r1,r1,104
mtlr r0
blr
mflr r0
stw r0,4(r1)
stwu r1,-32(r1)
stw r31,28(r1)
stw r30,24(r1)
mr r30,r4
stw r29,20(r1)
mr r29,r3
lwz r4,0(r4)
b 0x14
lwz r31,0(r4)
mr r3,r29
bl 0xFFFFFDF8
mr r4,r31
cmplwi r4,0
bne+ 0xFFFFFFEC
li r0,0
stw r0,0(r30)
lwz r0,36(r1)
lwz r31,28(r1)
lwz r30,24(r1)
lwz r29,20(r1)
addi r1,r1,32
mtlr r0
blr
mflr r0
stw r0,4(r1)
stwu r1,-32(r1)
stw r31,28(r1)
stw r30,24(r1)
stw r29,20(r1)
addi r29,r3,0
lis r3,-32698
lwz r4,0(r29)
subi r31,r3,28768
b 0x14
lwz r30,0(r4)
mr r3,r31
bl 0x313664
mr r4,r30
cmplwi r4,0
bne+ 0xFFFFFFEC
li r0,0
stw r0,0(r29)
lwz r0,36(r1)
lwz r31,28(r1)
lwz r30,24(r1)
lwz r29,20(r1)
addi r1,r1,32
mtlr r0
blr
mflr r0
stw r0,4(r1)
stwu r1,-176(r1)
stmw r25,148(r1)
bne- cr1,0x800033ac
stfd f1,40(r1)
stfd f2,48(r1)
stfd f3,56(r1)
stfd f4,64(r1)
stfd f5,72(r1)
stfd f6,80(r1)
stfd f7,88(r1)
stfd f8,96(r1)
stw r3,8(r1)
lis r0,1280
addi r29,r3,0
stw r4,12(r1)
addi r30,r4,0
addi r25,r5,0
stw r5,16(r1)
addi r27,r6,0
addi r26,r7,0
stw r6,20(r1)
addi r28,r1,128
stw r7,24(r1)
stw r8,28(r1)
lis r8,-32698
stw r9,32(r1)
addi r9,r1,8
stw r10,36(r1)
stw r0,128(r1)
addi r0,r1,184
stw r0,132(r1)
subi r0,r8,28768
mr r3,r0
stw r9,136(r1)
bl 0x313448
stb r25,4(r3)
cmplwi r25,8
mr r31,r3
stw r27,8(r3)
stw r26,12(r3)
bgt- 0x178
lis r3,-32708
addi r3,r3,1292
rlwinm r0,r25,2,0,29
lwzx r0,r3,r0
mtctr r0
bctr
addi r3,r28,0
li r4,1
bl 0x2BAE64
lwz r4,0(r3)
lwz r3,0(r4)
lwz r0,4(r4)
stw r3,16(r31)
stw r0,20(r31)
lwz r0,8(r4)
stw r0,24(r31)
b 0x15C
addi r3,r28,0
li r4,1
bl 0x2BAE38
lwz r3,0(r3)
lfs f0,0(r3)
stfs f0,16(r31)
b 0x140
addi r3,r28,0
li r4,1
bl 0x2BAE1C
lwz r3,0(r3)
lfs f0,0(r3)
stfs f0,16(r31)
b 0x124
addi r3,r28,0
li r4,1
bl 0x2BAE00
lwz r27,0(r3)
addi r3,r28,0
li r4,1
bl 0x2BADF0
lwz r4,0(r3)
lwz r3,0(r27)

top kek
 
Last edited:

tatatat0

Smash Journeyman
Joined
Jan 28, 2015
Messages
412
You do realize that whole region you zero'd is ASM, right? tatatat0 tatatat0

You're reading the Start.dol, which is why your addresses are slightly off what they are in memory.

Code:
lwz r5,12(r30)
bgt- 0x158
lis r3,-32708
addi r3,r3,1256
rlwinm r0,r4,2,0,29
lwzx r0,r3,r0
mtctr r0
bctr
addi r3,r31,0
crclr 6,6
addi r4,r29,0
bl 0xFFFF8938
b 0x150
addi r3,r5,0
addi r5,r1,76
li r4,0
bl 0xFFFA3D14
addi r3,r31,0
crclr 6,6
addi r4,r29,0
addi r5,r1,76
bl 0xFFFF8910
b 0x128
addi r3,r5,0
addi r4,r30,16
addi r5,r1,64
bl 0xFFFA3CEC
addi r3,r31,0
crclr 6,6
addi r4,r29,0
addi r5,r1,64
bl 0xFFFF88E8
b 0x100
addi r3,r31,0
crclr 6,6
addi r4,r29,0
addi r6,r30,16
bl 0xFFFF88D0
b 0xE8
addi r3,r5,0
addi r5,r1,52
li r4,0
bl 0xFFFA3CAC
addi r3,r31,0
crclr 6,6
addi r4,r29,0
addi r5,r1,52
addi r6,r30,16
bl 0xFFFF88A4
b 0xBC
addi r3,r5,0
addi r4,r30,16
addi r5,r1,40
bl 0xFFFA3C80
addi r3,r31,0
crclr 6,6
addi r4,r29,0
addi r5,r1,40
addi r6,r30,28
bl 0xFFFF8878
b 0x90
addi r3,r5,0
addi r4,r30,16
addi r5,r1,28
bl 0xFFFA3C54
addi r3,r31,0
crclr 6,6
addi r4,r29,0
addi r5,r1,28
addi r6,r30,28
addi r7,r30,32
bl 0xFFFF8848
b 0x60
addi r3,r31,0
crclr 6,6
addi r4,r29,0
addi r6,r30,16
bl 0xFFFF8830
b 0x48
addi r3,r5,0
addi r4,r30,16
addi r5,r1,16
bl 0xFFFA3C0C
addi r3,r31,0
addi r4,r1,16
bl 0xFFFC9878
b 0x28
lis r3,-32708
crclr 6,6
addi r3,r3,1216
bl 0x2DE0C8
lis r3,-32708
addi r3,r3,1244
li r4,124
subi r5,r13,31912
bl 0x320C2C
lis r3,-32698
subi r3,r3,28768
addi r4,r30,0
bl 0x31371C
lwz r0,108(r1)
lwz r31,100(r1)
lwz r30,96(r1)
lwz r29,92(r1)
addi r1,r1,104
mtlr r0
blr
mflr r0
stw r0,4(r1)
stwu r1,-32(r1)
stw r31,28(r1)
stw r30,24(r1)
mr r30,r4
stw r29,20(r1)
mr r29,r3
lwz r4,0(r4)
b 0x14
lwz r31,0(r4)
mr r3,r29
bl 0xFFFFFDF8
mr r4,r31
cmplwi r4,0
bne+ 0xFFFFFFEC
li r0,0
stw r0,0(r30)
lwz r0,36(r1)
lwz r31,28(r1)
lwz r30,24(r1)
lwz r29,20(r1)
addi r1,r1,32
mtlr r0
blr
mflr r0
stw r0,4(r1)
stwu r1,-32(r1)
stw r31,28(r1)
stw r30,24(r1)
stw r29,20(r1)
addi r29,r3,0
lis r3,-32698
lwz r4,0(r29)
subi r31,r3,28768
b 0x14
lwz r30,0(r4)
mr r3,r31
bl 0x313664
mr r4,r30
cmplwi r4,0
bne+ 0xFFFFFFEC
li r0,0
stw r0,0(r29)
lwz r0,36(r1)
lwz r31,28(r1)
lwz r30,24(r1)
lwz r29,20(r1)
addi r1,r1,32
mtlr r0
blr
mflr r0
stw r0,4(r1)
stwu r1,-176(r1)
stmw r25,148(r1)
bne- cr1,0x800033ac
stfd f1,40(r1)
stfd f2,48(r1)
stfd f3,56(r1)
stfd f4,64(r1)
stfd f5,72(r1)
stfd f6,80(r1)
stfd f7,88(r1)
stfd f8,96(r1)
stw r3,8(r1)
lis r0,1280
addi r29,r3,0
stw r4,12(r1)
addi r30,r4,0
addi r25,r5,0
stw r5,16(r1)
addi r27,r6,0
addi r26,r7,0
stw r6,20(r1)
addi r28,r1,128
stw r7,24(r1)
stw r8,28(r1)
lis r8,-32698
stw r9,32(r1)
addi r9,r1,8
stw r10,36(r1)
stw r0,128(r1)
addi r0,r1,184
stw r0,132(r1)
subi r0,r8,28768
mr r3,r0
stw r9,136(r1)
bl 0x313448
stb r25,4(r3)
cmplwi r25,8
mr r31,r3
stw r27,8(r3)
stw r26,12(r3)
bgt- 0x178
lis r3,-32708
addi r3,r3,1292
rlwinm r0,r25,2,0,29
lwzx r0,r3,r0
mtctr r0
bctr
addi r3,r28,0
li r4,1
bl 0x2BAE64
lwz r4,0(r3)
lwz r3,0(r4)
lwz r0,4(r4)
stw r3,16(r31)
stw r0,20(r31)
lwz r0,8(r4)
stw r0,24(r31)
b 0x15C
addi r3,r28,0
li r4,1
bl 0x2BAE38
lwz r3,0(r3)
lfs f0,0(r3)
stfs f0,16(r31)
b 0x140
addi r3,r28,0
li r4,1
bl 0x2BAE1C
lwz r3,0(r3)
lfs f0,0(r3)
stfs f0,16(r31)
b 0x124
addi r3,r28,0
li r4,1
bl 0x2BAE00
lwz r27,0(r3)
addi r3,r28,0
li r4,1
bl 0x2BADF0
lwz r4,0(r3)
lwz r3,0(r27)

top kek
(I thought of converting it to ASM late at night after I wrote this up but knowing what the ASM was didn't matter to me at the moment because I would have nothing to do with it anyways.). I'm just writing down what I experience in hopes of helping others :p .
TL;DR: Random notes are random notes.
 
Last edited:

SinsOfApathy

Smash Journeyman
Joined
Feb 24, 2015
Messages
474
NNID
Psion312
In the process of reorganizing parts of the datasheet again.

Primarily the Global Addresses having "P1 Nametag" etc, which is all part of the Static Player Block, which we already have in the Char Data Offsets. Also added some of the missing values in the static block.

There were a number of things like 0x8D that didn't have information, yet they had a line. Not readding those till someone confirms what they are.


Edit:
Also, to whomever is writing questions in the datasheet and "possibly missing," please don't. The datasheet is for what we've found. This thread is for asking questions, etc..

I do not know what Joystick "smash" count means. That was originally part of the global addresses, which I ported over to the static character block. I'd imagine it's the number of times you used non-C-Stick/Charged Smash. Nope, it's the number of times the stick goes from neutral.

And it's probably best not to write whomever found something on it. I get that you want credit, but a new thread is probably the best place for it, if it's not blatantly obvious (IE. X/Y coordinates, various stage data unrelated to how bones are mapped, etc..) Otherwise the datasheet will become cluttered with names, some of which would be constantly recurring.

Given that this thread is becoming so damn bloated, I suggest A. Creating a new "findings" subforum, so that old threads can be moved to it. B. Designating that forum as a "Questions, comments directed only at the thread subject" forum. That way, the primary forum is used for publishing your mods, asking general questions (How do I install whatever), etc..


Edit 2:

Just added a **** ton of Character data to the documentation, like Nana % and such. Moved the Stale Move Table into the Static Player Block where it belongs and reworded the explanations.

Also, Nana's HP doesn't reset on a new stock until she's hit. So yeah, Nana goes from smart to stupid in 1 hit.
 
Last edited:

Myougi

My posts are gluten free.
Joined
Mar 14, 2014
Messages
484
Location
WEST COAST BEST COAST
Edit 2:

Just added a **** ton of Character data to the documentation, like Nana % and such. Moved the Stale Move Table into the Static Player Block where it belongs and reworded the explanations.

Also, Nana's HP doesn't reset on a new stock until she's hit. So yeah, Nana goes from smart to stupid in 1 hit.
I'd really love to see all the documentation you've done on Nana. A deeper understanding of Nana could be game changing for ICs players.

Random somewhat irrelevant thing I noticed in the past that you might be interested in:
Whenever Nana dies, she seems to respawn for less than a frame (...or something?). If you have a good eye you can see a player indicator above where she would spawn. Do you have any guess why it's there or anything? If Nana actually respawns or something, is there anything we could do with that?

I might be overthinking this and being to hopeful. Maybe it's just a glitch with no real significance? I've only really seen it happen after Nana dies, but I've noticed it every now and then (in my own matches as well as others) since I'm aware of it.

Match where this can be seen: https://youtu.be/YWLtL9x_7wQ?t=4m49s
Timestamp: Around 4:49



EDIT: It might be worth noting that I've only seen this happen in the NTSC - where name tags and player indicators are delayed by one frame (this was fixed in PAL). I've yet to see this in PAL, but I've never really ever looked for it. That player indicator could very well still be visible where she 'respawns' in PAL.
 
Last edited:

Geranimo

Smash Cadet
Joined
Dec 25, 2013
Messages
60
Location
Montréal
I want to calculate melee trajectories based on all characters attributes, knockback, DI, etc. Is there another method than collecting data and using regression?
 

SinsOfApathy

Smash Journeyman
Joined
Feb 24, 2015
Messages
474
NNID
Psion312
I'd hazard a guess that because death, collision, etc. happen in a frame think JUST before contact, the player state is updated to dead. As a result, when the player think loop hits Nana directly after, her position is updated to the platform respawn location. So, no real use.
 

Cmanorange

Smash Rookie
Joined
Apr 15, 2015
Messages
3
Lmao, when opening HxD, you can see the recent files opened. Doqtor Kirby's version is in it and I found this

( ͡° ͜ʖ ͡°)
EDIT: The image might not be loading, it's HuniePop
 
Last edited:

SinsOfApathy

Smash Journeyman
Joined
Feb 24, 2015
Messages
474
NNID
Psion312
Someone please explain why there's a function that checks for when Mr. Saturn hits another Mr. Saturn?
80283588 __sins_Item_MrSaturn_SaturnOnSaturnCollision

I almost couldn't resist naming it "SaturnOnSaturnViolence"

Do note that this doesn't occur when objects other than Mr. Saturns collide with each other. Like, what the hell? lmfao
 
Last edited:
Top Bottom