In SMG games, it is a known fact that planets are objects. However, they aren't treated like the other objects.
Namely, it would be possible to create custom planets without modifying the game's code.
/ObjectData/PlanetMapDataTable.arc contains a BCSV file that holds information about all the planets in the game. The standard planets, that is. Some planets appear to be using their own class, like the rest of the objects, but for now we'll ignore those.
The BCSV file inside PlanetMapDataTable.arc (PlanetMapDataTable.bcsv) has the following fields:
* PlanetName: the name of the planet object
* LowFlag: flag indicating whether the planet has a low-res model
* MiddleFlag: flag indicating whether the planet has a 'Middle' model (mid-res?)
* BloomFlag: flag indicating whether the planet has a bloom model
* WaterFlag: flag indicating whether the planet has a water model
* IndirectFlag: flag indicating whether the planet has an 'Indirect' model (?)
* ForceLowScenarioName0 to ForceLowScenarioName7: seems to tell for which scenarios this planet will be forcefully rendered in low-res
So to make custom planets, one would make a model, convert it, pack it into a RARC, and add that RARC to the game's files. That's the tricky part, especially for adding the file. We need a replacement for Wiiscrubber. Wiiscrubber sucks.
Then they'd edit the PlanetMapDataTable. This can be done in Whitehole (BCSV editor, archive: /ObjectData/PlanetMapDataTable.arc, file: /PlanetMapDataTable/PlanetMapDataTable.bcsv). They'd add a new line, write their planet's name in PlanetName, and set all the flags to zero.
Now a little explanation on how planets are handled.
If the game finds an object whose name is listed in the PlanetMapDataTable, it'll be treated as a planet. The game renders /ObjectData/.arc where the object is.
Then there are several extra models possible: Low, Middle, Bloom, Water, Indirect. The game will use them if and only if they're present on the disc, totally ignoring the flags in PlanetMapDataTable.
Low (/ObjectData/Low.arc) will be used instead of the default model (and other extra models) when you're far away from the planet. The exact distance isn't known though (perhaps it depends on the object data).
Bloom (/ObjectData/Bloom.arc) apparently serves for bloom effects that are rendered along with the main model.
Water (/ObjectData/Water.arc) is for extra water graphics. I don't know what are the advantages of using this over having the water in the main model. Some planets use this, others have water in their main model. It is worth noting that Water models have no collision with them (the collision being part of the main model), however they have texture animations. But the main model can have texture animations too... idk.
The purpose of Middle and Indirect isn't known yet.
And guess what, this is already known. Thanks to the unorganized SMG2.5 community for totally not sharing their knowledge!
NSMBHD - Kafuka - Jul
melonDS the most fruity DS emulator there is