SA2 Mod Loader is a tool for DLL-based mods in the PC version of Sonic Adventure 2 (2012). The loader dll requires the Microsoft Visual C++ 2010 runtime, and the mod manager program requires .NET Framework 3.5.
To install the loader, extract the 7z archive to the folder SA2 is installed in (usually C:\Program Files (x86)\Steam\steamapps\common\Sonic Adventure 2).
To install or uninstall the loader or to change the settings for the loader, run the SA2ModManager.exe program.
On the first page you'll find a list of available mods, with Up and Down arrows to change the order they're loaded in (if two mods change the same thing, the one on bottom will be used) and buttons to refresh the list and view the mod folder.
On the second page you'll find a list of available cheat codes from the Codes.xml file in the mods folder.
Below that you will find various options for the loader. Currently the options include:
- Debug Messages: These options allow debugging messages such as the loader's version and build date, the mods loaded, any file replacements performed, SA2's debug messages, and any messages that mods print.
- Console: Shows a console window alongside the game which will display messages.
- File: Writes messages to the file mods\SA2ModLoader.log in UTF-8.
The "Save and Play" button will save your settings, launch the game (must be named "sonic2app.exe") and exit the manager.
The "Save" button simply saves your settings and continues.
The "Install loader"/"Uninstall loader" button will install or uninstall the loader dll. The DLL is placed over Data_DLL.dll, with the original moved to Data_DLL_orig.dll.
To install mods, simply place each mod in its own subfolder of the "mods" folder and tick the checkbox next to their entry in the mod manager's list.
The mod loader allows mods access to the following features:
- Data Patching: mods can specify addresses to be patched and data to be written to those addresses.
- Jump Insertion: mods can specify addresses to be overwritten with jumps to code in your DLL or other code in SA2.
- Call Insertion: mods can specify addresses to be overwritten with calls to code in your DLL or other code in SA2.
- Pointer Overwriting: mods can specify addresses to be overwritten with a pointer to data or code.
- DLL Export Overriding: mods can specify names of exports to override from Data_DLL and the data to return instead.
- File Redirection: mods can have a "gd_PC" folder containing files which will be used instead of data in SA2's "resource\gd_PC" folder and subfolders. This does not require a DLL.