I am planning to get into game making and someone told me I should try rom hacking first before doing a fan game or original game. So thought I would give that a shot. Though since this my first time ever to get into game making not sure where to start and what programs be good for a beginner. But I do want to learn to do so to help achieve my goal of becoming a game dev. So need to figure out what programs be good for a beginner like me since I have never gotten into game making before even though I am a gamer at heart. I hope with due time with help from those programs I can show off my creative side. Cause I love what people come up with in the gaming world like rom hacks and fan games. So I am willing to give rom hacking a try first to help get my foot in the door of game creating. Wonder what programs be good to use as a beginner?
I will note that Sonic ROM hacking is extremely different from modern game development. Really I think the only thing that carries over is the very general concept behind problem solving with code logic and level design. I'm not saying it's an invalid approach to learning game dev, but you could easily learn game dev without ROM hacking too. Anyways Some general tools that will help with both ROM hacking and general programming: Visual Studio Code - My personal IDE choice, with user created plugins it can cover any language you may need it for, including 68k, I personally use Steven Tattersall's 68k plugin. HxD - Not much to say, just a solid hex editor for examining and modifying binary files. Now for Sonic ROM hacking specific Sonic Retro's Sonic 1 Disassembly - It's a good disassembly for beginners thanks to it's use of equates and macros, but it can be a pain navigating due to subroutines being unnecessarily split. SonLVL - The go-to level editor for the classic Sonic games. It also hosts a suite of other useful tools like special stage editors, sprite animation viewers, level comparison tools etc. Flex 2 - A sprite editor with a pretty friendly UI and features like rotating sprites for angled walking frames. Sound's difficult. By default, the disassembly I linked uses SMPS2ASM which transcribes the SMPS data into something human readable, however this requires you to write music and sound effects by hand. So there are tools like MID2SMPS that can convert MIDI files to SMPS or VGM2SMPS. So there's the tools you need to start. Here's some guides. MarkeyJester's 68k Tutorial - This a good resource on learning the basic instruction set of the 68k. I don't think it covers everything, but it's a good start. Plutiedev - This a great resource that's more specific to the Mega Drive and covers many topics from controller inputs to Z80 accessing. The Sonic Community Hacking Guide and Changes/Fixes For Sonic 1 Thread - These contain copy paste fixes, optimizations, and additions. They don't really teach you much as they just kind of hand you what you want on a silver platter, but it's nice to just have a quick way to catch your hack up to others (Although don't rely on them to build the content of your hack) And of course if you run into any problems you can ask over in the Basic Questions and Answers thread. But just make sure to put an effort into reading the error and solving it yourself!
Do you have a game idea or ROM modification in mind? Even if it's a simple idea. I think you need some sort of road map to achieve your ultimate goal, so having something specific in mind will help us tailor to your specific short-term needs. Kilo has given an extensive list, and it's a very good list to reference. But if you're starting out from the very beginning, I think just one or two tools would be enough. Give us something specific you would like to try to do, and we can point you to the one or two tools you need.
I'm gonna go against the grain. If you want you get started with modern game development, then I believe ROM hacking isn't a good way to start. With a modern game engine, you are very unlikely to be programming in assembly (the most commonly used language syntaxes are based off C and Python) and working off bare metal hardware, and you would be working with far less limitations and far better and easier to use tools than what Sonic hacking provides. Hell, I didn't even get my start from ROM hacking, I didn't start until after I had learned how the old Game Maker 8 worked. If you want to start off with working off of a Sonic engine still, then I actually would recommend something like Orbinaut Framework, which is an accurate recreation of the Genesis Sonic engine for Game Maker Studio 2. GMS2 had dumped its subscription model (outside of exporting to consoles, probably because of Nintendo, Sony, and Microsoft) and has a free version that exports to desktop, mobile, and web (not for commercial use, though). There's also Godot, which probably has its own extensive Sonic framework, too, and is completely free, even for commercial use. If you still want to make a ROM hack, then you can still use what others have provided, but also do understand that if you want to do code modifications, then you should at least still learn the fundamentals of programming logic alongside learning the 68000 assembly instruction set. I also agree with saxman. For any kind of game project, you should plan out how you will approach it, and definitely don't go into the deep end immediately.
Well I was thinking of making Emerald Hill for example have it look more emerald like in color rather then it just looking like another Green Hill with a different name. I also thought of an idea of a cave idea that can be accesses through Emerald Hill which is hidden. The cave would be called Crystal Cavern