what I'll need to Hack Sonic 1?

Discussion in 'Discussion and Q&A Archive' started by alexanderthebat, Oct 11, 2015.

  1. alexanderthebat

    alexanderthebat Newcomer Trialist

    Joined:
    Oct 11, 2015
    Messages:
    6
    Location:
    Cleveland, Ohio
    Right now I'm gonna gather up an game idea to completely rewrite Sonic 1 using my own twist to it like rework the engine to making Sonic 1 my own game featuring two if possbile fan characters (one of mine and one of a friend) and a story to tie with it so what tools I'll need to completely rewrite sonic 1? (that is if I do make this happen I've doubt no one would like a fan character based game at all)

    I'll need a disassembly tool of course and an assembly tool

    some editors like level editors and so on.

    now if I wanted to do a sonic 2 level and put it in sonic 1 is that possible or not? I'm pretty sure it's not possible to take a level like Chemical Plant Zone and stuff it in Sonic 1.

    I'm also new to hacking Sonic 1 so if anyone is willing to collab with me that would be great!
     
  2. Clownacy

    Clownacy Retired Staff lolololo Member

    Joined:
    Aug 15, 2014
    Messages:
    1,020
    It's outdated, but this contains some good information.

    You generally don't want a disassembly tool like IDA, unless you feel like totally disassembling Sonic 1 yourself; rather, you'll want a pre-made disassembly. Unless you feel like using some old guides (since, at your level, you probably won't be able to port/adapt code for other disasms yet), I'd recommend the so-called Git(hub) Disasm, it has the code split into various files (which can be a good thing or a bad thing), and the code in general is more documented and thus easier to work with. On the inverse, if you want to follow old-fashioned guides like this, you'll need the Hivebrain 2005 disassembly (the link is for the asm68k version, which I recommend). You'll be giving up the 10 years of refinement the Git Disassembly's received, but you'll be using the same, unchanged disasm the people that wrote the guides used.

    So, yeah, maximum compatibility with guides vs. easiest to work alone with. Not to say all guides work with Hivebrain, heck, some only work with Git, like mine.

    As for assembler, there's two you can choose from: the disasms I linked you to use asm68k. Ancient little thing. It's got mistakes in it, and I think it can't tell the difference between a 68000 and a 68020, but it's fast, so you can test your hacks in no time. The other contender is AS. It's way slower, but it can detect some errors asm68k can't, and it can assemble Z80 code, which doesn't really mean much unless you want to start modifying sound drivers. It also has more advanced high level stuff, like functions, CHARSET, this all helps to make a disasm even more user-friendly. Put it this way: the Sonic 2 Git disasm makes a lot of use of AS-specific functions, you would not get that thing to run on asm68k if you tried. Not without stripping out a lot of useful stuff, at least. Personally, I recommend AS, but, eh, the only difference that'll probably matter to you right now is speed, so knock yourself out with asm68k (AS Git, AS Hivebrain, just in case). There's actually a third assembler, snasm68k. Don't use it, that's all.

    As for a level editor, there are two modern tools I can think of: SonED2 and SonLVL. I recommend SonLVL. Why? Because I've never really used SonED2. Just be sure to look at SonLVL's readme.txt: there's a quite a bit of vital stuff in there that isn't explained anywhere else. There's a guide on using SonLVL here. Keep in mind, the objects in SonLVL will only appear properly in the Git disasm, because of how I created a near-complete set of object definitions for it. These definitions do not exist for Hivebrain, so everything will appear as a '?'.

    Another tool worth lugging around is an art/mappings editor. I've used SonMapEd since day 1, but it's outdated, buggy, and doesn't work with S1 Git (though, to be fair, the Git disasm did some pretty stupid stuff to make that happen). Maybe Flex is a better alternative. Either way, you're gonna need this if you want to edit Sonic's art, or any art beside the level art, anyway. There's also stuff like PlaneEd for editing stuff like the title screen, but that thing's WAY too hard to work with, hell, I have a hard time with it. Just ignore it for now. Maybe SoniPlane is better.

    You'll also want a Mega Drive/Genesis emulator. You probably already have one by this point, but it doesn't hurt to go over it again. Generally you'll want an accurate emulator. Kega Fusion, Regen, Genesis Plus GX, Exodus, from lesser accurate to most accurate. That does come at the cost of resources, though: Exodus might lag, while Kega won't. Personally, I recommend Regen and above. Just don't use Gens: Gens/GS might be good but I never really got a chance to check it out, but plain Gens is the worst when it comes to accuracy. Many of my first hacks only worked on Gens because they were both so broken they were practically perfect for each other. A lot of people either play hacks on a real Mega Drive/Genesis, or on an accurate emulator, so keep that in mind. You want your audience to be happy, right?

    As for porting Chemical Plant Zone... anything's possible, I guess, but, no. It's way too involved for someone new. First up, the way levels are constructed in Sonic 1 has a major difference from how they are in Sonic 2: both games use 'jigsaw pieces' to make their levels, S1's are twice as large as S2's/S3K's. Now, there is a modified disassembly that changes S1 to use S2's size, Project Sonic 1: Two-Eight, but, even then, you'd need to port a LOT of code: the badniks, level events, background deformation, boss, it's not worth it, really.

    Now, this is all probably a little overwhelming, but a lot of it doesn't matter right now. It's a cruel thing to say, but you need to scale down your ideas, at least for the time being. Unless you have intricate knowledge of 68k assembly and the Sonic Engine, or at least a guide that does it for you, you won't be getting two characters in your hack any time soon. You're best off just modifying levels, and looking at guides to slowly start building up your ASM knowledge. ASM isn't required to make a simple hack, but anything intricate such as adding another character or porting an entire zone from another game is going to need it.

    But, yeah, that should be all you need to start hacking. Well, besides a text editor: Notepad++, Sublime, ConTEXT, take your pick. Anyway, good luck with whatever you're doing.
     
    Last edited by a moderator: Oct 11, 2015
  3. alexanderthebat

    alexanderthebat Newcomer Trialist

    Joined:
    Oct 11, 2015
    Messages:
    6
    Location:
    Cleveland, Ohio
    ​A lot of things for hacking sigh I guess this little project is dead....I was gonna use Cheimcal Plant Zone and rename it to Chemical Factory even without this I'll have to mess around with Sonic 2 more then Sonic 1 I may just create chiemical Plant Zone using ripped sprites and work from there to be in Sonic 1 and do that crap and rewrite the Sonic CD Time Travel in case I need the bad future timelines.

    This always have to be so hard to do NES/SNES are easier to hack just load up the rom in a tile editor and blam workable rom hack! As for Genesis and Sonic games too many tools.
     
  4. Misinko

    Misinko Oh SHIT it's the Biolizard! Member

    Joined:
    Apr 30, 2013
    Messages:
    722
    Location:
    Ohio
    So, let me get this straight. You want(ed) to:

    -Rework the game's engine 

    -Port a level from Sonic 2 into Sonic 1

    -Add additional characters

    -Change the name of the ported Sonic 2 level

    And you don't expect that to take a lot of tools?

    There is no all-in-one tool for Sonic Hacking. Heck, there's no all-in-one tool for hacking of any kind.  If you wanted to do this kind of stuff in a Mario World ROM, you'd need just as many tools, if not more. Really, you only need 5-6 tools for Sonic hacking:
     

    -A level editor (SonED2 or SonLVL)

    -A mappings editor (Flex or SonMapED)

    -A dissasembilly (GitHub or Hivebrain)

    -An emulator (Kega, Regen, or Exodus)

    -A text editor (Notepad ++)

    -(Optional) A music formatter (SMPS2Midi) 

    And a working knowledge of ASM 68K, but that's not really a tool. Really, when you boil down too it, you don't need a whole lot of things. Three of those things (level editor, dissisembilly, and emulator) are incredibly simple to set-up. 

    But really, you're gonna be working with a decent amount of tools for any project of this scale no matter the platform. Don't let the size of Clownacy's information-packed post overwhelm you. When you get down to it, Sonic Hacking isn't super hard to do.
     
  5. HackGame

    HackGame The ROM Hacker Member

    Joined:
    Jul 18, 2014
    Messages:
    142
    Location:
    Green Hill Zone
    Alexander, your thinking too fast here. Every Sonic ROM hackers always have a very short start. Also, just start something small. Small edits, simple art edits. You might actually learn ASM more if you found out how each subroutine works. Click this to start your ASM: http://info.sonicretro.org/SCHG_How-to:Work_with_Motorola_68000_assembly

    Save the major stuff like S3 Save Data or Multiple Characters in Sonic 1, it's too much to even make it yet. ASM takes time and patience to make the codes connect. Of course if you need to ask questions on errors, feel free to make a topic on Discussions and Q&A.
     
  6. alexanderthebat

    alexanderthebat Newcomer Trialist

    Joined:
    Oct 11, 2015
    Messages:
    6
    Location:
    Cleveland, Ohio
    ​I could start by knowing how to do Asm 68K by some tutorials or such but then again I can just use that Github based Disassmebly one which has the files already in hand I like to use Bbedit since that's my choice of a text editor, I'll see what it can do for me.

    I can just play around with some tools to get the feel of hacking Sonic 1, then goto the advanced stuff.
     
  7. LuigiXHero

    LuigiXHero Well-Known Member Member

    Joined:
    Mar 22, 2014
    Messages:
    280
    Github based disasm is exactly the same as the hivebrain one except the files are in different locations and more comments. So I don't get your logic.
     
  8. alexanderthebat

    alexanderthebat Newcomer Trialist

    Joined:
    Oct 11, 2015
    Messages:
    6
    Location:
    Cleveland, Ohio
    ​should I worry about some graphics in order to get the feel of doing Asm Coding? like moving the character to other stuff? I'll fiddle around with it until it's a workable game.

    ​never knew that I feel I'll use this instead of doing it old school of doing it myself. Learning Asm is gonna be hard but I may manage and get help for it.
     
  9. Clownacy

    Clownacy Retired Staff lolololo Member

    Joined:
    Aug 15, 2014
    Messages:
    1,020
    ​That'd be the best way to start off. Levels are the most important part of a hack, after all.
     
  10. AURORA☆FIELDS

    AURORA☆FIELDS so uh yes Exiled

    Joined:
    Oct 7, 2011
    Messages:
    759
    ​False! Github disasm changes many things, including but not limited to: Splits data and code to separate files, adds some macros, adds more functionality and switches, changes around a lot of lables, adds named variables, comments, local lables, etc. I am not fully familiar with Github disasm but it is really a lot different to Hivebrain 2005 one
     
  11. LuigiXHero

    LuigiXHero Well-Known Member Member

    Joined:
    Mar 22, 2014
    Messages:
    280
    Well they both build the same rom is what I am getting at. He made it sound like it has more features then stock S1.