You can download it here. It works basically the same way as the SADX Mod Loader and SA2 Mod Loader, except this one only does file replacements right now. To make a mod, simply create a folder containing a "mod.ini" file like so: Code (Text): Name=Mod Name Here Author=Your Name Here Description=Describe mod here. Version=v11.q (optional) Then, create a "Data" folder in that folder, and place whichever files you want your mod to replace in their relative paths within that folder (ie Data\Sprites\Players\Sonic.bin). To use mods, extract it into the folder Sonic Mania is in, run ManiaModManager.exe, click the "Install Loader" button on the bottom, then check the mods you want to enable and hit "Save" or "Save and Play". The source code is available on Sonic Retro's GitHub.
Neato. I see a lot of potential use of this by talented modders, and perhaps more possibilities for the program in future (scripting etc.). May be able to contribute to the loader if needed as I see it's in C#.
Is the modloader under a licence of any kind? I want to adapt it to another (non-Sonic) game, but I can't see a licence file anywhere, so right now I can't (legally).
Oh, this is cool. Been playing around with it for a little bit doing little sprite edits and it's working like a charm.
I hate software licenses. Even if I just want to say "yeah I don't care what you do with any of this", it has to be some kind of legally binding document that gets applied to every project that uses so much as one line of code from my project. None of the tools I write are released under any kind of license. Some of them probably can't be licensed because they use copyrighted code or assets.
You should use the MIT license then, and state in your readmes that it only applies to the things you've made.
Does this modloader look for the Mania EXE in the C: drive? I have Mania installed onto a external HDD, and every time I try to use this it just fails to load. This is the error I get each time. Should I just reinstall the game onto my C: disk? Or is this a different error?
You should have the mod manager in the same folder as Mania. It shouldn't matter where that is, as long as everything's in the same place. Also, when reporting errors, it helps greatly to copy the text that appears when you click "Details", just that error message by itself hardly tells me anything.
New version of the mod loader, now it supports custom code by loading DLL files. To create a DLL, you'll need the files from the mod loader's include folder, and a C++ file that looks something like this: Code (Text): #include "ManiaModLoader.h" extern "C" { __declspec(dllexport) void Init(const char *path) { // code to run on init goes here } __declspec(dllexport) ModInfo ManiaModInfo = { ModLoaderVer, GameVer }; } You can also export lists of byte patches, jumps, calls, and pointers to be applied to the game, but I find it's generally simpler to just do that from Init. I don't currently have an example mod, but the system is basically identical to SADX mods, so maybe look at those, idk. Unfortunately, as Mania is very likely going to be updated in the future, the mod loader and all custom code mods will have to be rebuilt to account for the shifted addresses. I currently have a mechanism in place so the mod loader should detect if the game has been updated and refuse to do anything, and the GameVer setting will be able to detect mods built for other versions of the game as well, since I'll increment it every time I have to update the mod loader for a new version of the game.
Now the mod loader supports cheat codes, OnFrame hooks for mods, and options to start Mania with the console enabled, or at a specific scene. Cheat codes use the same format as the other mod loaders, so you can look at the Codes.xml files from the others for examples, or this document that lists all the code types. It comes with a few basic codes to start with, I may add more in the future, and contributions are certainly welcome.
I've updated the mod loader to be compatible with the newest version of the game. I will also be updating the cheat code list as soon as codenamegamma releases the updated cheat table, so look for that soon-ish. Unless they update the game again.
New update with more cheat codes taken from codenamegamma's cheat table, because he rushed out a new version even though I told him I was fine with waiting. Includes: disable super music, enable insta-shield and drop dash, enable super peel-out for all characters, force character selection for both players, mid-jump ability swapping, making super forms fly, always have shield abilities. Also, avoid using the dash move while flying with the ERZ moveset, it crashes the game. I'll see if I can fix it later.
Well, when I try the insta-shield and drop dash code, the game crashes when I try to use it (when I hit/hold down the button once in the air). Also, random side note, but the program title says SADX Mod Manager. :P How would you react if the game gets another update in like a week? I can imagine it being pretty annoying to keep this game updated for mod support, at least until development stops...
Ugh. Every time I look at that bit of code I find something else that makes me shocked it works for anyone at all. Try using this one instead: Code (Text): <Code name="Enable Insta-Shield and Drop Dash" patch="true"> <CodeLine> <Type>write16</Type> <Address>00483756</Address> <Value>5190</Value> <ValueType>hex</ValueType> </CodeLine> <CodeLine> <Type>write16</Type> <Address>004837B6</Address> <Value>9090</Value> <ValueType>hex</ValueType> </CodeLine> <CodeLine> <Type>write8</Type> <Address>004837B8</Address> <Value>59</Value> <ValueType>hex</ValueType> </CodeLine> </Code> As for the other things, I could just tell people that they should keep an old version around for mods/cheats if it gets to the point where I just can't be bothered to keep everything updated. Also yeah, I just copied the SADX Mod Manager's main form again when I added cheat code support and forgot to change the title and remove the icon. Speaking of which, I should figure out some kind of icon for the manager.