Heroes Mod Loader

From Sonic Retro

This article/program is a work in progress.
The article, features and details may change completely and frequently until this notice is removed.

Heroes Mod Loader is a mod loader and mod management system combination written in C#.

Originally designed to load user mods for Sonic Heroes, the loader was entirely written and researched from scratch and is an experimental prototype of a universal mod loader which can also support various games out of the box without modification.

Currently the loader is in the process of heavy internal rework, a public prototype has been released at the Sonic Hacking Contest as part of Sonic Heroes' first ever Sonic Hacking Contest entry on the 20th of November 2017.

Port priority may be changed by manually modifying the Controller_ID field of each controller configuration under Mod-Loader-Config, all controllers are sorted by the Controller_ID field with lowest number taking the highest priority. Changing port order via the GUI is unsupported at the current time.

File Structure

Mod-Loader-Backup: Stores game files which have been replaced for this session. Restored when the game is exited/on each loader startup.

Mod-Loader-Libraries: Stores external libraries used by the loader & configurator. Non-statically compiled mods will also look in here.

Mod-Loader-Mods: Stores individual mods for the Mod-Loader. Currently all mods occupy a subdirectory of this directory.

There is no mechanism to switch between games at the current moment, to switch you should reset the paths.
Remove the Setup Flag by deleting Mod-Loader-Config/Setup_Complete and re-run the configurator to set new game paths.

Feature List

This list has been shortened down to a tl;dr format, the total feature set is more exhaustive but constantly changes:

Memory Reading/Writing: This one should have been obvious.

File Replacement/Addition: Also obvious.

Game Function Hooking: Including hooking in own ASM code, redirection to own C# code/methods. Support for Multi-Level hooking.

D2D Overlays: Currently based off of an external overlay. Limited to Windowed/Borderless, requires Windows Aero. Supports any API.