This repository is considered obsolete now and should only be used for formats that aren't yet included in my KnuxLib repository!
A repository containing simple C# code that I hack together to either make some of the stuff I do easier or just to test some stuff. I also dump random reverse engineering stuff in various states of unfinished here too because why not?
I don't officially support any of the stuff in this repo. It's mostly here for my own archival and a potential reference point for other people's research. If you want to actually use any of this, you're on your own.
The stuff here heavily relies on Marathon, specifically my custom Ninja fork.
HedgeLib# is needed for a couple of the Sonic Unleashed Wii SET functions.
Prs.net is needed for the compression and decompression of Sonic and the Secret Rings/Sonic and the Black Knight ONE archives.
All three projects are included as GitHub Submodules now, so a proper clone will pull them down with it.
Also included is a modified version of the already modified importvcolorobj script from Heroes Power Plant that has been modified to pull in some additional data to badly emulate instancing to help with work for the Wrath of Cortex NuScene files. X and Y rotation is missing as Max is fucking stupid when it comes to most things, so that data is easier to input by hand, inputting the Y rotation then the X rotation manually seems to work every time.
- Basic SET file reading (was intended to be used for potential Sonic '06 mods).
-
Material Library reading, writing and MTL exporting.
-
SCO Model reading, writing and OBJ exporting.
- WAD archive reading and extracting, alongside inaccurate writing.
- FRB file reading and writing. Also contains a very very basic Bitmap importer that only makes the general outline of a board.
- Message Table reading and writing.
- Basic SET file reading.
- Basic SET file reading and writing.
- ArcInfo reading and writing.
-
Uncompressed ONE archive reading, writing, extracting and creating.
-
Basic SET file reading and writing, alongside a poorly cobbled together SonicGLVL exporter and importer.
-
Most basic implementation of Path reading.
- Functions for importing a model as an XNO, removing an XNO's vertex colours, converting an FBX file's animation to an XNM (either a single file or a directory of files), merging two XNMs together, changing an XNM's framerate, importing a model as a stage collision mesh, retargeting animations from one XNO to another and enabling translucency on an XNO (either a single material or every material in the XNO).
- AMB archive reading and extracting.
-
Bullet Instance reading and writing.
-
Unfinished Bullet Collision Mesh reading and writing, alongside very basic OBJ exporting.
-
Basic Bullet Skeleton reading and writing.
-
Broken gedit SET reading and writing, using HedgeEdit styled templates for object parameter information.
-
Gismo reading and writing.
-
EXTREMELY unfinished Path Spline reading.
-
EXTREMELY unfinished Physics Based Animation reading and writing.
-
Basic Visiblity Block reading and writing.
-
ONE archive reading, writing, extracting and creating.
-
Unfinished Path file reading and writing.
-
Uhu Ghost data reading and writing.
-
Basic Player Motion Table reading.
-
Basic SET file reading and writing.
-
SETItems reading and writing.
-
TXD texture archive reading, writing, extracting and creating (doesn't convert to or from Dolphin GVR textures).
- Message Table reading and writing.
-
Basic Crate Table reading and writing.
-
Entity Table reading and writing.
-
Incomplete GameCube NuScene reading and writing, alongside a very hacked up implementation of OBJ exporting that breaks a lot of the standard and really needs a custom MaxScript to import correctly.
-
Basic Visiblity Table reading.
-
Wumpa Fruit Table reading and writing. This format can also be written in little endian for the Xbox and PlayStation 2 versions of the game.
-
Function to display the position, rotation and scale of an instance in an NuScene. Mainly done for manually inputting X and Y rotation values into 3DS Max after an OBJ import.
- Function to take a string and run it through Google Translate a specified number of times. Used for my various Lost In Translation mod experiments. (Requires a valid Google Cloud API key to be provided)