Why are there no fully fledged Sonic CD hacks?

Discussion in 'Discussion & Q&A' started by Gametoons, Apr 30, 2017.

Thread Status:
Not open for further replies.
  1. Gametoons

    Gametoons Newcomer Trialist

    Joined:
    May 2, 2016
    Messages:
    4
    I just finished the game and wanted to play some hacks of it until i realized that there are no hacks, except that character replacement with metal sonic. Is there a valid reason for this? Because i see that many people love to hack sonic games, but sonic cd is one of it's kind who hasn't got any hacks.
     
  2. Unlimited Trees

    Unlimited Trees Banned for being a fucking cockwomble Exiled

    Joined:
    Apr 2, 2016
    Messages:
    168
    Location:
    A tree field in the middle of nowhere
    Because there are no good/commented disassemblies, it's not as documented as the other games are, there's not a lot of tools for it, and it would take too much time and effort to hack it anyways.
     
    EMK-20218 and HackGame like this.
  3. Devon

    Devon Down you're going... down you're going... Member

    Joined:
    Aug 26, 2013
    Messages:
    1,372
    Location:
    your mom
    When it comes to hacking Sonic CD, the level files have a copy of the level engine with some differences between each level file. They also have a copy of the Sonic object that also has differences between each level file. The level files do not share common functions or objects. That means, if you wanted to change something that was in Sonic's object, only changing it for one level file won't apply to the rest. You would need to do it with EVERY SINGLE level file, and there's a LOT of them. There's over 70 files IIRC in Sonic CD.

    Disassembling Sonic CD would take a very long time, because you would need to disassemble every file and document them, and as I said, there's a lot of files. While a common level file can be made for the disassembly to make hacking easier, all the differences that are in each level file that are level and time zone specific (especially level drawing and level data) would need to be kept track of, especially if a bit perfect disassembly is aimed for.

    Why is it like this? Because, due to limitations, you can't fit all the level data, objects, and the engine in 1 file. Working with the CD hardware can be pretty different than working with just the regular Genesis. The code you work with is pretty much all loaded in some sort of RAM space. In Sonic CD, code is either loaded in the Genesis' Work RAM or this other area of RAM in the CD hardware called "Word RAM", which is 256 KB (at least in 2M mode, but I won't get into that), much shorter than the 4 MB space for a cartridge. You can't load files into ROM space, because, well, you can't write data to ROM space, because it's Read Only Memory, which means no writing.

    And that's why there's not yet a public disassembly of Sonic CD and why nobody really hacks it. I will say that Sonic CD is basically just Sonic 1 REV01's engine with new levels and gimmicks plus other crap, so documenting Sonic CD's level files wouldn't be as difficult as if no one knew how Sonic 1's engine worked. However, from what I've seen, the level files are the only thing that makes Sonic CD similar to Sonic 1 code-wise, so documenting the other stuff can be a hassle.
     
    Last edited: Apr 30, 2017
  4. LazloPsylus

    LazloPsylus The Railgun Member

    Joined:
    Nov 25, 2009
    Messages:
    Location:
    Academy City
    Sonic CD's engine is a pile of horse manure diced in a blender and then smeared with a paint brush. Not worth the work it would take to hack. You'd be better off building from scratch, and probably with some better design sensibilities. And yes, Ralakimus, you are correct in that there are 70 level files. 7 zones, four time periods, third act has only two time periods available. (4+4+2)*7=70. But even with those files, you're still lacking a lot of the other components that make Sonic CD tick. You have most of the MD-side meat, sure, but then there's the cobbled-together hackery of the MCD-side, and that's where the ball game changes rules completely on you and shit gets wacky. Really, Sonic CD is worth nothing more than a bit of education on bad ideas and meh implementations, and not worth the effort to hack. Public disasm would take way more work by people with expertise above and beyond standard MD reverse-engineering, and there is neither enough of those, nor do the ones with that expertise care enough to put the time necessary into it when they could instead put it into other, more enriching projects.

    And yes, I would be one of those with not enough care for Sonic CD's internals to disassemble it further than the partials I have, because I'm too busy researching other, better, bigger projects. Lunar: Eternal Blue is one such project I've mentioned several times. There's so much to do, and what I've been able to learn from that so far is far more enriching, and I'm nowhere near done on it. What little time I have these days for research is put toward the most rewarding projects, and Sonic CD ain't it. And there's many who would agree. Those who don't are either not versed well enough in the MCD yet, or are pretty well buried in the magnitude of it and the prospect of taking it on pretty much alone.

    So yeah, don't waste your time on it. There's so much more you can do and learn, and you can make something far more well-built than Sonic CD ever was.
     
  5. Devon

    Devon Down you're going... down you're going... Member

    Joined:
    Aug 26, 2013
    Messages:
    1,372
    Location:
    your mom
    Honestly, you would probably learn the CD hardware better by making your own engine that's smaller, easier, and overall better than try to see what the hell is going on in Sonic CD's engine. Sonic CD would be an awful base for homebrew projects and hacks.
     
    Gametoons likes this.
  6. PorridgeFan

    PorridgeFan Newcomer Trialist

    Joined:
    May 31, 2015
    Messages:
    3
    Location:
    ukay
    What about Sonic 3?
     
  7. Clownacy

    Clownacy Retired Staff lolololo Member

    Joined:
    Aug 15, 2014
    Messages:
    1,016
    Sonic 3 doesn't have a major disassembly, period. We just skipped to S&K.
     
  8. Gametoons

    Gametoons Newcomer Trialist

    Joined:
    May 2, 2016
    Messages:
    4
    What about the chrsitian whitehead sonic cd? Is it hard too to hack for it?
     
  9. MainMemory

    MainMemory Well-Known Member Member

    Joined:
    Mar 29, 2011
    Messages:
    922
    It's always the Mega CD or Taxman versions, nobody ever talks about the 1995 PC version.
     
  10. Clownacy

    Clownacy Retired Staff lolololo Member

    Joined:
    Aug 15, 2014
    Messages:
    1,016
    Chances are the TaxStealth versions use totally different file formats, so no level editors support it. Not to mention, the game's code is compiled, and derived from a totally different codebase, so code edits are far harder to do. It's practically a different game from what most hackers are used to.
     
  11. MainMemory

    MainMemory Well-Known Member Member

    Joined:
    Mar 29, 2011
    Messages:
    922
    Well if someone handed me a spec, I might be willing to make a fork of SonLVL...
     
  12. TheStoneBanana

    TheStoneBanana banana Member

    Joined:
    Nov 27, 2013
    Messages:
    602
    Location:
    The Milky Way Galaxy
    There's a level editor built specifically for Retro Engine.
    There is also a nice file unpacker/repacker for other stuff.
     
  13. LazloPsylus

    LazloPsylus The Railgun Member

    Joined:
    Nov 25, 2009
    Messages:
    Location:
    Academy City
    SonED provided at least partial support for the original PC versions of Sonic CD. Not that most people ever actually used it.
     
  14. MainMemory

    MainMemory Well-Known Member Member

    Joined:
    Mar 29, 2011
    Messages:
    922
    SonLVL provides full support for Sonic CD PC, assuming you can extract the data from the DLL files. SonED2+ROMulan can extract, edit, and insert the level data, but it alters the formats to be more like Sonic 1 for some reason.
     
Thread Status:
Not open for further replies.