SA2/SADX Mod Loader
I am the best at names

Would it be possible to get his animations in from Sa2? :V That's one thing that always bothered me, he pretty much copies Sonic's for everything. It just felt like a cheap reskin instead of an actual extra character in DX.

Would it be possible to get his animations in from Sa2? :V That's one thing that always bothered me, he pretty much copies Sonic's for everything. It just felt like a cheap reskin instead of an actual extra character in DX.

SA Tools now has a Struct Converter program which loads a data ini generated by the split tool and allows you to export various data as a mod loader compatible C file.
Currently some types of lists won't get entries in the pointers array because when I was still editing the exe directly I had the brilliant idea to update the list header that was already there, rather than appending a new list header to the end of the exe and changing the pointer, which doesn't work very well with this setup.
Additionally SAMDL and SALVL can now export C data files themselves.

The SADXModLoader.h and SA2ModLoader.h files were also updated because I was missing a few structs and enums.

I have a hopefully small request. For the SADX Mod Manager, would it be possible to add support for the custom resolution 1440x1080? I ask because the full 16:9 1920x1080 cuts off the top and bottom of the FOV, and 1440x1080 is the 4:3 resolution that uses the entire y-axis of a 1080p monitor.

Thank you for all the work you've put into the games.

This post has been edited by Hendricks 266: 22 September 2013 - 01:47 AM

The SADX mod loader doesn't support specific resolutions, it merely allows you to specify a resolution, which is passed directly to SADX. If the resolution you want doesn't work, there's really nothing I can do about it because I have no clue how SADX's renderer works.

I've updated both mod loaders with some new features accessible from mod.ini files:

An EXEFile entry can be used to specify an alternative executable file (must be in the same folder as the original exe). The mod manager will run the specified exe instead of the default one when "Save and Play" is clicked, and the mod loader dll will show a warning if you use the wrong exe.

An IgnoreFiles section. In this section, you may list one file per line, and any accesses to files appearing in this section will be redirected to "nullfile".

A ReplaceFiles section. In this section, you may list a file name, an equals sign, and the name of the file you want to be read instead of the first file. For example, system\\sounddata\\bgm\\wma\\title.wma=system\\sounddata\\bgm\\wma\\sonic.wma will cause "It Doesn't Matter" to play on the main menu.

A SwapFiles section. This section behaves similarly to ReplaceFiles, except that the replacement happens both ways. So if you put the previous example in this section, it would also cause Sonic's credits to play the main menu song.

A couple reminders about INIs:
Section header names are enclosed in square brackets (for example, [ReplaceFiles]).
My INI parser uses backslashes (\) for escape sequences. \n is a newline, \r is a carriage return, \\ is a backslash, and any other character following a backslash will be interpreted as a literal character. So if you want to put an = in a key or value, you must type \=.

I've uploaded a new version of the mod loaders that scan the mod folders for file replacements once on startup rather than every time a file is read. Should improve performance a little. Also the Init function in the ModInfo struct now has a const char *path parameter, which contains the mod's folder path.

I was going to try to add save file redirection like CPKREDIR, but I don't see a way to make that happen without completely rewriting the save file code.