thekugelmeister
Smash Rookie
- Joined
- May 24, 2016
- Messages
- 1
CSS Documentation
I can't explain why I decided to start here, but I chose to start my exploration of Melee development with the CSS. After a lot of scrubbing through forums searching for relevant information, I had compiled a good chunk of relevant information and had gotten a good start on describing things that I couldn't personally find information on somewhere else.
Then over the last few weeks, I began noticing people asking questions about the CSS and SSS in a number of different places (with varying degrees of having those questions answered). I know that I'm not going to be able to finish this project this week in particular, but since there seemed to be some interest I figured that I should post my compiled findings in case it helped anyone with their own work.
NOTES:
CSS Selection Regions
Credit to Achilles1515
The interactable areas for each icon on the CSS are loaded into memory from Start.dol. Changing the appropriate values here only changes where you can place your selection puck, not the placement of the icon itself. Doing both alterations in concert will most likely have the desired effect.
...Unless of course you are sadistic and want to see people cry in frustration as they try to pick Fox, only to be assigned Kirby. But you didn't get that idea from me...
CSS Bone Documentation
This is the meat of what I have accomplished. Thanks to Achilles' identification of this function and its role, I was able to construct a list of bones loaded for CSS display. Then I was able to spend a good while adjusting values in these bone structures and using the results to determine what each bone represented.
NOTE: This process is not in any way complete. There are some holes in my understanding which need filling, and therefore some of these bones have not yet been identified. Furthermore, I am only part of the way through this process. Specifically, I am currently working on identifying parts of the CSPs. Below are listed the fruits of my labor.
tatatat0's MnSlChr.dat Offsets
In the SSBM Data Sheet, there is a list of offsets into MnSlChr.dat compiled by tatatat0. I have yet to go through these offsets and figure out how they correlate with the information that I have found thus far. However, much of what is included there looks very promising and helpful!
Texture Initialization Calls
Credit to Punkline
These codes are cute and may prove a useful starting place for exploring texture initialization on the CSS (or otherwise...?)
I can't explain why I decided to start here, but I chose to start my exploration of Melee development with the CSS. After a lot of scrubbing through forums searching for relevant information, I had compiled a good chunk of relevant information and had gotten a good start on describing things that I couldn't personally find information on somewhere else.
Then over the last few weeks, I began noticing people asking questions about the CSS and SSS in a number of different places (with varying degrees of having those questions answered). I know that I'm not going to be able to finish this project this week in particular, but since there seemed to be some interest I figured that I should post my compiled findings in case it helped anyone with their own work.
NOTES:
- This is my first attempt at getting information out in a comprehensible manner for this forum. Let me know if I'm a) doing it wrong b) unclear c) wasting my time because someone else has done it already
- My work on characterizing the joint/bone structures is incomplete but underway. Hopefully I can continue working on this some time next week.
- Figure out what coordinate spaces each joint/bone is placed in; I don't want to have to go through by hand and figure out the limits on where I can place each individual icon just because I can't map between relevant spaces.
- Figure out what some of those unknown structures are (especially the ones which I think should be related to the CSPs).
- Given all information on the structure of the screen, write a script for modifying the appropriate files completely in a sane manner, such that someone could rebuild the CSS easily
CSS Selection Regions
Credit to Achilles1515
The interactable areas for each icon on the CSS are loaded into memory from Start.dol. Changing the appropriate values here only changes where you can place your selection puck, not the placement of the icon itself. Doing both alterations in concert will most likely have the desired effect.
...Unless of course you are sadistic and want to see people cry in frustration as they try to pick Fox, only to be assigned Kirby. But you didn't get that idea from me...
Code:
---------------------------------------------
---RAM Addresses for CSS selection regions---
---------------------------------------------
For each character, a region of 7 words controls the selectable region
for that character on the CSS.
Word Definitions (in order of increasing RAM address for a given region):
* Character Specification (Byes: AA BB CC DD)-
- AA = CSP to show
- BB = Character that is chosen upon selecting that icon
- CC = Selectability (00 --> not selectable, 02 --> selectable)
- DD = UNKNOWN
* UNKNOWN
* UNKNOWN
* X-min of selectable region (float)
* X-max of selectable region (float)
* Y-max of selectable region (float)
* Y-min of selectable region (float)
Start.dol offsets / RAM Addresses By Character (1st word in region):
+----------------+-----------------+----------------+
|Characters |Start.dol offsets|RAM Addresses |
|========== |=================|============= |
+----------------+-----------------+----------------+
|Dr. Mario |003edb30 |003f0b24 |
+----------------+-----------------+----------------+
|Mario |003edb4c |003f0b40 |
+----------------+-----------------+----------------+
|Luigi |003edb68 |003f0b5c |
+----------------+-----------------+----------------+
|Bowser |003edb84 |003f0b78 |
+----------------+-----------------+----------------+
|Peach |003edba0 |003f0b94 |
+----------------+-----------------+----------------+
|Yoshi |003edbbc |003f0bb0 |
+----------------+-----------------+----------------+
|DK |003edbd8 |003f0bcc |
+----------------+-----------------+----------------+
|C. Falcon |003edbf4 |003f0be8 |
+----------------+-----------------+----------------+
|Ganondorf |003edc10 |003f0c04 |
+----------------+-----------------+----------------+
|Falco |003edc2c |003f0c20 |
+----------------+-----------------+----------------+
|Fox |0033edc48 |003f0c3c |
+----------------+-----------------+----------------+
|Ness |003edc64 |003f0c58 |
+----------------+-----------------+----------------+
|Ice Climbers |003edc80 |003f0c74 |
+----------------+-----------------+----------------+
|Kirby |003edc9c |003f0c90 |
+----------------+-----------------+----------------+
|Samus |003edcb8 |003f0cac |
+----------------+-----------------+----------------+
|Zelda |003edcd4 |003f0cc8 |
+----------------+-----------------+----------------+
|Link |003edcf0 |003f0ce4 |
+----------------+-----------------+----------------+
|Young Link |003edd0c |003f0d00 |
+----------------+-----------------+----------------+
|Pichu |003edd28 |003f0d1c |
+----------------+-----------------+----------------+
|Pikachu |003edd44 |003f0d38 |
+----------------+-----------------+----------------+
|Jigglypuff |003edd60 |003f0d54 |
+----------------+-----------------+----------------+
|Mewtwo |003edd7c |003f0d70 |
+----------------+-----------------+----------------+
|Mr. Game & Watch|003edd98 |003f0d8c |
+----------------+-----------------+----------------+
|Marth |003eddb4 |003f0da8 |
+----------------+-----------------+----------------+
|Roy |003eddd0 |003f0dc4 |
+----------------+-----------------+----------------+
CSS Bone Documentation
This is the meat of what I have accomplished. Thanks to Achilles' identification of this function and its role, I was able to construct a list of bones loaded for CSS display. Then I was able to spend a good while adjusting values in these bone structures and using the results to determine what each bone represented.
NOTE: This process is not in any way complete. There are some holes in my understanding which need filling, and therefore some of these bones have not yet been identified. Furthermore, I am only part of the way through this process. Specifically, I am currently working on identifying parts of the CSPs. Below are listed the fruits of my labor.
Code:
*****These joints start at file offset 0x4688 in MnSlChr.dat
*****Therefore subtract 0x80bec720 from these offsets for file offsets
80bf0da8
80bf0de8
80bf0e28 first one @ z = -3893
80bf0e68
80bf0ea8
80bf0ee8 last one @ z = -3893
80bf0f28
80bf0f68 first one @ z = -4090
80bf0fa8
80bf0fe8
80bf1028 last one @ z = -4090
80bf1068
80bf10a8 first one @ z = -186
80bf10e8
80bf1128
80bf1168 last one @ z = -186
80bf11a8
80bf11e8 first one @ z = 287
80bf1228
80bf1268
80bf12a8 last one @ z = 287
80bf12e8
*****These joints start at file offset 0x358288 in MnSlChr.dat
*****Therefore subtract 0x80bec460 from these offsets for file offsets
****************************
80f446e8 The entire CSS (minus the "Survival" etc. message at the top)
80f44728 Underlay...? It's the grey stuff at the top and bottom, including "VS"
****************************
80f44768 The set of the 6 "extra" CSS icons
NOTE: These bone structures come in pairs, and editing different things in each of them affects the icon differently.
80f447a8 Dr. Mario
80f447e8 ????
80f44828 Ganondorf
80f44868 ????
80f448a8 Falco
80f448e8 ????
80f44928 Young Link
80f44968 ????
80f449a8 Pichu
80f449e8 ????
80f44a28 Roy
80f44a68 ????
****************************
80f44aa8 The set of the CSS icons in the main area
80f44ae8 Mario
80f44b28 Luigi
80f44b68 Bowser
80f44ba8 Peach
80f44be8 Yoshi
80f44c28 DK
80f44c68 C. Falcon
80f44ca8 Fox
80f44ce8 Ness
80f44d28 Ice Climbers
80f44d68 Kirby
80f44da8 Samus
80f44de8 Zelda
80f44e28 Link
80f44e68 Pikachu
80f44ea8 Jigglypuff
80f44ee8 Mewtwo
80f44f28 Mr. Game & Watch
80f44f68 Marth
****************************
80f44fa8 "MELEE" and the back button
80f44fe8 "MELEE"
80f45028 ????
80f45068 ????
80f450a8 "BACK" on back button
****************************
80f450e8 All CSP Borders
80f45128 P1 CSP Border
80f45168 P2 CSP Border
80f451a8 P3 CSP Border
80f451e8 P4 CSP Border
80f45228 All series icons in backgrounds of CSPs
80f45268 P1
80f452a8 P2
80f452e8 P3
80f45328 P4
80f45368 All CSPs
80f453a8 P1
80f453e8 P2
80f45428 P3
80f45468 P4
80f454a8 All Team Color Indicators
80f454e8 P1
80f45528 P2
80f45568 P3
80f455a8 P4
80f455e8 All Lower 3rd Backgrounds for CSPs (inc. CPU Level stuff)
80f45628 CPU Level Stuff for P1
80f45698 CPU Level Background for P1 (top section?)
80f456d8 CPU Level Slider for P1
80f45718 ????
80f45758 ...Also CPU Level Slider for P1...?
80f457c8 CPU Level Background for P1 (bottom section?)
80f45808 CPU Level Stuff for P2
80f45878 CPU Level Background for P2 (top section?)
80f458b8 CPU Level Slider for P2
80f458f8 ????
80f45938 ...Also CPU Level Slider for P2...?
80f459a8 CPU Level Background for P2 (bottom section?)
80f459e8 CPU Level Stuff for P3
80f45a58 CPU Level Background for P3 (top section?)
80f45a98 CPU Level Slider for P3
80f45ad8 ????
80f45b18 ...Also CPU Level Slider for P3...?
80f45b88 CPU Level Background for P3 (bottom section?)
80f45bc8 CPU Level Stuff for P4
80f45c38 CPU Level Background for P4 (top section?)
80f45c78 CPU Level Slider for P4
80f45cb8 ????
80f45cf8 ...Also CPU Level Slider for P4...?
80f45d68 CPU Level Background for P4 (bottom section?)
80f45da8 All Character Name Backgrounds on CSPs
80f45de8 ????
80f45e28 ????
80f45e68 ????
80f45ea8 ????
80f45ee8 ????
80f45f28 ????
80f45f68 ????
80f45fa8 ????
tatatat0's MnSlChr.dat Offsets
In the SSBM Data Sheet, there is a list of offsets into MnSlChr.dat compiled by tatatat0. I have yet to go through these offsets and figure out how they correlate with the information that I have found thus far. However, much of what is included there looks very promising and helpful!
Texture Initialization Calls
Credit to Punkline
These codes are cute and may prove a useful starting place for exploring texture initialization on the CSS (or otherwise...?)
Code:
----------------------------------
---Texture Initialization Calls---
----------------------------------
0x802644d8: CSS Background
0x8026459c: CSS Panel (?)
Making these nops prevents textures from loading in; black background,
no foreground (except CSPs...?)
Gecko Codes for doing these:
[Gecko]
+$Do not load CSS Background
042644d8 60000000
+$Do not load CSS Panel
0426459c 60000000
Last edited: