Mania's Modding Ramifications

Discussion in 'Discussion & Q&A' started by Clownacy, May 15, 2018.

  1. EMK-20218

    EMK-20218 Eduardo Knuckles Member

    Aug 8, 2008
    Angel Island
    I'll wait more. There's nor two years since the game was released, so it can clearly be the explanation of tools not existing to advanced things to be a thing yet. As @Cinossu mentioned, this makes me remember the very past of the Sonic rom-hacking scene where tools were very limited in what it refers to the variation possibilities. Though I can't judge it for the present instance because it's still too early for this. It's obvious the Sonic Mania modding isn't a replacement for the rom-hacking and it doesn't seems to be a replacement for the rom-hacking in the future, but I'll wait because I know it could be a good alternative for the ones who doesn't want to deal with binary stuff. It's just a matter of the time for tools and stuff to be developed. Especially because creating a engine all from the scratch would be way harder than editing a existing one. All we have to do is to wait for the time to pass so we can study the game's engine for develop the proper tools.
  2. StephenUK

    StephenUK Working on a Quackshot disassembly Administrator

    Aug 5, 2007
    I wasn't going to join in with this little debate, but my post will finish with a question which I'm hoping someone a bit more informed than myself can shed some light on.

    First of all, I'll address the Clownacy debate. Personally, I don't see anything wrong with the question asked and don't see why it was blown out of proportion to start with. It's not unusual for someone to be curious about the current limitations of working with something new that they haven't experimented with. Asking how it compares to a ROM hack and if there are any benefits is hardly a crime. As a matter of fact, I've been curious about how things compare myself, but I've been busy with other things so I've not bothered asking or looking into it myself. One of my main concerns will become apparent when you see my question at the end, and it's that question that makes me wonder how big Mania modding can become, and whether it is truly worthwhile.

    Regardless of his personal feelings towards Mania modding as it stands, I think I know Clownacy well enough to know that his question was not an attack on the mod being presented, but an inquiry made to someone who has obviously worked with Mania and can shed some light on how the modding situation currently stands. Not much has been showed off around here regarding Mania modding, so it's not unnatural for someone to ask questions. The fact he reacted angrily to calls that he was slamming the mod should really highlight the fact that his words were misconstrued. If they weren't, any attacks about that opinion thrown at him would probably have been shrugged off.

    Now, onto my own concerns about modding Mania. While the main thing I love in Sonic hacks is art, and Mania opens up some great possibilities due to less restrictions and the ability to achieve things not possible with hacking (e.g. multiple scrolling layers for backgrounds), one of my main concerns goes back to the early days of hacking and has been touched upon by Cinossu. At the moment, Mania modding resembles the early days of hacking, and while things were nice back then, hacking only really became a technical marvel and extremely versatile when disassemblies became a thing. The availability of an open source allowed things to be programmed that were virtually impossible without them. So, the question, coming from someone uneducated in Mania modding...

    Without the availability of an open source engine, are extensive programming modifications in the future even going to be a possibility?

    If not, I can see where Clownacy is coming from when he says that ROM hacking or other open source fan game engines might be a more attractive option.
  3. MainMemory

    MainMemory Well-Known Member Member

    Mar 29, 2011
    The way Mania modding is being approached at present is the same way all the other PC games are, which is very different from the way that any of the Megadrive games were done. The idea of a full disassembly/decompilation of the game from which you can build an entirely new executable file is highly improbable. Instead, using IDA Pro, Cheat Engine, or what have you, you can reverse engineer parts of the game's code that you may want to modify, and create modified versions of that code to be patched into the game by the mod loader. In this way, Mania mods are more flexible than ROM hacks, as you don't have to distribute an entire copy of the game, and you can use multiple mods together, such as a custom level mod, and a mod that gives Sonic a new ability.

    As to whether "extensive programming modifications" will happen, the mod loader certainly allows for it to be possible, it's just a matter of whether people are going to put forth the effort to reverse engineer and modify the game's code. Presently, a major downside to Mania and a roadblock for large-scale code edits is the fact that the game is still being updated. Every time the game is updated, all the code and variables in the EXE are shifted, so they have to be found again, and the mods (and mod loader) need to be updated to account for the address shifts.

    If you look at the state of Mania modding today and don't think it can amount to anything, just remember the state of SADX modding back in 2009: all we could do was hex edit the vertices in models and the object placement in SET files, and replace textures and sounds. Now we can create entire new levels, new character abilities, and SonicFreak94 has ported the entire lighting engine from the Dreamcast version.
  4. sewer56lol

    sewer56lol Newcomer Member

    Aug 25, 2016
    United Kingdom
    If you want to take another perspective on the matter, take a look at what has been shown with Sonic Heroes during the last year's contest (despite a few very minor technical difficulties people had).

    A very small group of dedicated group of contributors and I, who had some kind of interest in Heroes founded a community known as the Heroes Hacking Central on Discord on the 6th of March 2017. The creation of this group of which in due time of about a month, amounted to a small set of highly active contributors, the size being 3-4 (including self), whom worked towards the cracking of the game.

    At that moment in time, we've had only the following:
    • Structure which declaring the visibility of individual chunks of geometry (literally a list of Min Max XYZ boxes).
    • A .ONE Archive packer/unpacker.
    • Texture tool inherited from the GTA community.
    • Some knowledge of the object layout format.
    • A GUI tool for voice file archives.
    The state of the overall game was more-less entirely equivalent to the state of SADX 2009-2010 in every regard, and yet... 7 months later... we've had shown off things like this:

    This kind of progress, I would like to point out, from near zero to even adding a hub world to a game without one was not done by hacking veterans, just a very determined set of people who wanted to push a game to new limits from the bottom of our hearts.

    Out of the 3-4 of us, here's a small figurative breakdown of the people who made this possible:
    • One started programming 4 months before the foundation of the group, having however ironically had more experience with reversing file formats.
    • Another knew nothing about programming but was very, very good with manipulating and finding stuff with Cheat Engine and had some backing of X86 assembly.
    • Another knew the game's filesystem, prototypes, early builds inside out and had some, but not enough programming experience (that was I).
    (Note: However this isn't to say, that it was a solo effort by the 3-4 people, just the main contributors in our case.)

    And yet, with enough determination, a group of complete amateurs when it came to pure hacking, learned, a lot, quickly through experiences and camaraderie, pushed through with our strengths and started to shred the game to pieces one by one.

    Do not think that dealing with Heroes is easy either. Under the hood, Heroes reuses plenty of the Sonic Adventure 2 codebase; the only practical difference between Adventure and Heroes in terms of difficulty is that we don't have to deal with as many embedded assets outside of the executable and that the old graphics SDK was swapped out with RenderWare Graphics, that's it.

    Heck, our work has even spit right onto Shadow The Hedgehog, which has now seen a fully custom level, character modifications, minor code injections via AR/Gecko among a few other various things, here's an example:


    I forgot to note. Even on the Mania front, It's all a matter of determination and will, it's not the end of the world if the game gets updates: There's always ways to work around something and one of the things we can for example do is borrow ideas from the security guys; we could reclaim functions by signature scanning their function prologues from there, also have our variables given we know how they are accessed, through making observations and/or partial disassembles of the functions in question - it just takes a bit of determination.

    There are already tools on the web to generate unique signatures, even IDA plugins. Signatures wouldn't change with 99.9% probability unless the devs modify the code block in question or change the compiler, and signature scanning in C++ code is fairly straight forward, I could even provide an example straight out of my C# Mod Loader if needs be.

    That said, there has been more progress happening on with Mania compared to what the OP suggests, and I myself, would happily say that the rate of development with both Mania and Forces have surpassed my own expectations.

    There are more projects in the work that are interesting but have not yet been disclosed or released, one of them for instance is a Netplay implementation, of which I myself do hold a private build of (although that's just down to knowing the author - I don't even own Mania). I have also seen some custom menus implemented fully themed in the style of the game linked with C++ code, Sonic Heroes style player switching among other code modifications here and there, it's just that not everyone knows where to look for those mods and communities around them since not everything centers around SSRG and/or Retro - GameBanana is a good place to start though.


    On SADX

    As for the state of Sonic Adventure DX, as it was mentioned earlier, in my opinion one of the large problems with SADX at large aside from the stated lack of documentation of more advanced stuff is that the barrier of entry into proper SADX modding is not low enough for most people.

    When people get stuck and are not in the right channel, very often they are either referred to one of the following places:

    • Not referred anywhere (RIP).
    • Referred to Retro (which, with the validation systems, isn't free real estate).
    • Referred to #x-hax, the true place where they should likely head (although there now does also exist "Lost Mania" as a viable alternative).

    Now with the last of the three, all is fine there except that not everyone is entirely familiar with IRC.

    Games starting with the adventure era are much more susceptible to be modded by younger people bound by nostalgia of playing those games in their childhood, but also due to the differences of technology are much less likely to have experienced the joys of IRC, basically making the communication method itself as a barrier of entry.

    Another barrier of entry would be the overall tooling available for SADX, that being SA Tools, but that's merely down to documentation as mentioned before - while some aspects of the tooling themselves could be improved, that isn't for me to properly judge as I haven't been connected enough with modern SADX modding outside of lurking presence.

    On my long term goals

    One of my own long term goals regarding the development of Heroes modding and to a greater extent, the sphere of the adventure console generation titles as a whole is to make modding accessible to the general public, and directly or indirectly, this is slowly becoming a reality:

    In terms of Heroes, while it may seem that we have not progressed that much beyond the hacking contest, this is mostly due to having spent the time since working on the tooling for the overall game. We want it to be quick and easy to use for people. Back in the hacking contest all we used were simple, disjoint and disconnected CLI tools. Pretty soon, with the advent of my new and rewritten, now universal soon to be released mod loader and a fully featured level editor, this should become quite a non-hassle in general.​

    In the SADX front, a good bunch of things are also changing to improve the accessibility front. #x-hax has just opened an official Discord bridge and not long ago PkR started working on a SADX Modding Series blog which aims to cover the details of SADX modding A-Z from the basics to the advanced. While I'm not currently involved reversing or playing around with either games as I have been working on my loader rewrite, I do and am actively doing my best to take part in trying to also make the overall SADX sphere better despite my disconnection with advanced SADX modding for a long while.​

    I'm not really sure if there's anything more I could say on this front, this is some of my insight on starting the cracking and development of a new Sonic game as one, and as two, the general state of one general era of games.
    Last edited: May 17, 2018
    EMK-20218, StephenUK and Spiritmaster like this.
  5. RaideinSlash

    RaideinSlash The fuck's a code Member

    May 10, 2013
    I might be totally wrong as I haven't explored either scene too deeply, but I still want to share my feelings -

    With Genesis hacking, for those that have learned it all they can - with time and effort - essentially just create another game out of Sonic's base engine. The only limits that are holding us back are the fact that it runs on a Genesis and not a computer.

    For those that want to get into this, there are several disassembles. Several different tools over the years. If you ask someone what to use when you're just starting, you're bound to get different answers and you'll be left confused. Sonic Retro has tutorials that only work for some disassembles, and some are outright broken I've found from my own experience. Dead links, missing instructions, etc.

    Genesis hacks aren't quite primitive, and I don't think they'll ever be. I don't want them to be, as every time I see a new impressive hack I can sit down and play with a friend on our Megadrive it gives me ol' nostalgia tingles. But the entrypoint is starting to become a harder goal with hacks filled with ASM becoming the norm and several different disassembles floating around. Don't even get me started on the whole hardware situation.

    Mania modding, however, is still fresh. There's maybe one or two level editors compared to many S1 has, guides with pictures are spread around, many people are able to help, all the tool developers are still active in the community, custom code is still rare making complete newbies to modding able to fit in easily... basically, it's much easier to begin. Even though the limits to what we can do are stricter so far, it's so much easier to get into it I think.

    I forgot. Mania also has support for much more colors and it's MUCH easier to edit animations and sprites. I remember when I tried to add my spritesheet to Sonic 1 - I got a few hours in, only replacing a few sprites because it was so tedious.
    Meanwhile in Mania you just copypaste your sprite onto the sheet. Maybe tweak it in the very easy to use and understand animation editor.
    Last edited: May 18, 2018
  6. Natsumi

    Natsumi Markey's Member

    Oct 7, 2011
    Otter's lap
    The main issue with Mega Drive hacking nowadays, is that you have all these skilled people with the knowledge, but not really much in terms of good tools, tutorials, open source code, etc. And sure, this stuff exists out there, but its not either well known, or well documented, or well maintained. While so much knowledge exists out there, its not in such way that its easy for a newbie to get hold of, or does not very well translate into easy to use tools and tutorials that new people can get a headstart with. None of this stuff in the end is so complicated, but lack of information makes it seem like way bigger difficulty than it needs to be. So the people who have the time and prior experience have a massive advantage, because they can research and learn this stuff by themselves, maybe make a few custom tools to help along, whatever else, meanwhile everyone else is stuck trying to deal with the terrible disassemblies, lackluster or difficult to use tools, or at best, neither. There are exceptions of course, such as SONLVL which is very easy to use after spending few hours with it, but the documentation is virtually nonexistent, and it lacks object definitions for all games, and sometimes has nearly none (Sonic3K). And since there is not much documentation, trying to create new ones with a bit of C# knowledge is not an easy task, and not something most people bother with in the end. Still though, SONLVL is much better at being newbie friendly than most other tools seen around, so big props for that.
    ProjectFM, Roxurface and EMK-20218 like this.
  7. MainMemory

    MainMemory Well-Known Member Member

    Mar 29, 2011
    Since you brought it up, I will mention that the object definitions for S3K are being worked on by Neo, and every object in S3K should have a definition within the next month or two.
    Roxurface, Pokepunch and Natsumi like this.