News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Author Topic: A guide for ROM hacking original Game Boy games?  (Read 798 times)

Kidbooo

  • Newbie
  • *
  • Posts: 1
    • View Profile
A guide for ROM hacking original Game Boy games?
« on: February 26, 2019, 02:10:49 am »
Hello everyone,,
I love the Game Boy, and I would eventually like to make my own games for it; but for now, I want to learn to how to ROM hack games. I only know how to program in Java and Python, but I want to know if there's a definitive place to learn how ROM hack games with a hex editor or something. Where should I start?


USC

  • Full Member
  • ***
  • Posts: 238
  • Obviously Outdated
    • View Profile
Re: A guide for ROM hacking original Game Boy games?
« Reply #1 on: February 26, 2019, 08:31:40 am »
Hey Kidbooo! There's a lot of resources for learning how to hack ROMs; here's some general links to get started:

The Newbie Package of REQUIRED Material

ROMHacking.net FAQ: You ask, we answer!
ROMHacking.net Getting Started Section: Newbies Go HERE!
ROMHacking.net Documents Section!
How to ask questions the smart way.
On the Essence of ROM Hacking
Talk with experienced people in our IRC chat and ask specific questions there.

One thing I would recommend learning about is pointers (which I'm not sure you're too familiar with if you've used Java and Python).

FAST6191

  • Hero Member
  • *****
  • Posts: 2490
    • View Profile
Re: A guide for ROM hacking original Game Boy games?
« Reply #2 on: February 26, 2019, 01:31:04 pm »
The primary hardware reference for most people would be the pandocs
http://bgb.bircd.org/pandocs.htm (other versions exist but are mostly the same as that).

I am not sure what the kids are using for a debugger these days (I always liked BGB debugger but there might be better options).

After that it is mostly the same as everything else -- tile editors, relative search, some very light compression possibly, sound formats can be custom but are not always, general approaches to level formats.

As mentioned pointers are a thing you will want to know as the languages you have already don't have or don't place any real emphasis on the concept (compared to C family stuff). Short version is they do much as they say and point the way to parts of the ROM (or section) or memory where things are located, if you change where something is located (or make it bigger or smaller, or want to and thus need to move to increase size available) then you need to change the pointer to reflect this.

There is nothing amazingly special about the GB/GBC that no other console saw or would see for years afterwards. Nothing that makes the GB/GBC harder or easier than anything else really. If you already know Java and Python then both of those do well at editing binary files (most ROM hackers are not fond of the java interpreter so maybe consider python if you want to share the end results).

Hex editors, as we often have to tell new hackers, are very blunt and stupid tools. While they are useful for a lot of things you don't really want to be spending too much time with one, and if you are then you have probably gone wrong somewhere. Small edits, copy pasting known data and quick observations are what they are, for want of a better term, ideally used for. I am not entirely sure where people get the impression they are some mystical and arcane skill that needs to be mastered to call yourself a ROM hacker.

4l3j4ndr0

  • Jr. Member
  • **
  • Posts: 27
  • Gameboy Color Rules!
    • View Profile
Re: A guide for ROM hacking original Game Boy games?
« Reply #3 on: February 26, 2019, 10:11:46 pm »
I would eventually like to make my own games for it
You need an idea for a game and the gameboy development kit. "GBDK"

Quote
I want to learn to how to ROM hack games.
I will quote to "MZ"

To romhack properly you need:

* Very advanced programming skills.
* Deep knowledge of the Gameboy architecture and each its elements.
* A good debugger and knowing how to use it.
* Advanced knowledge of the assembly language for the CPU, GPU, etc. of the system.
* Advanced knowledge of the Gameboy SDK.
* A game that can actually be hacked for this (for instance, with enough memory and CPU available for this new functionality).
* Most importantly, thousands of hours and a lot of patience and intelligence to learn and do all these things. You won't find any answer to the countless specific problems you'll find, so you need great problem-solving skills and at least some decent Googling skills.

Quote
Where should I start?
Gameboy games were programmed with ASM so start learning to program in assembly language.




Psyklax

  • Hero Member
  • *****
  • Posts: 958
    • View Profile
    • Psyklax Translations
Re: A guide for ROM hacking original Game Boy games?
« Reply #4 on: February 27, 2019, 12:34:12 am »
To romhack properly you need:

* Very advanced programming skills.
* Deep knowledge of the Gameboy architecture and each its elements.
* A good debugger and knowing how to use it.
* Advanced knowledge of the assembly language for the CPU, GPU, etc. of the system.
* Advanced knowledge of the Gameboy SDK.
* A game that can actually be hacked for this (for instance, with enough memory and CPU available for this new functionality).
* Most importantly, thousands of hours and a lot of patience and intelligence to learn and do all these things. You won't find any answer to the countless specific problems you'll find, so you need great problem-solving skills and at least some decent Googling skills.
Gameboy games were programmed with ASM so start learning to program in assembly language.

That's hardly going to encourage people to get into the hobby. I wouldn't say I have very advanced programming skills, but I've managed to do plenty of decent hacks. This kind of gatekeeping isn't helpful: the one thing you need to possess to be a good ROM hacker is an interest in ROM hacking, because if you have that, you'll be determined to learn all the necessary stuff.

I would agree that to do a GOOD hack, a knowledge of assembly is important, but 'a knowledge' simply means knowing how it works and being able to understand what a debugger is telling you. I wouldn't go off on a course, just pick it up as you go.

As for the Game Boy specifically, get BGB, it's a great debugging emulator. Look up Game Boy assembly (Z80) and learn how assembly works. But you'll want to have a specific idea in mind at first, as in a particular game and a particular goal, just to get you started.

FAST6191

  • Hero Member
  • *****
  • Posts: 2490
    • View Profile
Re: A guide for ROM hacking original Game Boy games?
« Reply #5 on: February 27, 2019, 08:54:50 am »
Yeah -1 to that.

I have seen plenty of people effect wide reaching changes with fairly basic skills. So many games get improved by altering a few drops, few enemy patterns in a level, tweaking some of said same level, playing with a few cheats, playing a bit with a tile editor, playing a bit with the wording of a script or even a few words within it.

Deep knowledge of hardware, assembly, general programming and all their attendant tools and techniques will certainly put you over the top and allow you to accomplish incredible things. It is not a prerequisite to accomplish a useful hack that people enjoy playing. Even then I would also want to mention that you can have some fairly basic assembly/programming skills and have it open up so many doors for you -- basic tracing and the ability to see a program flow to subtly change it (making a 2x damage mode maybe is trivial compared to hand optimising a decompression function, and the former could have some profound effects upon a game).

Gyroballer

  • Jr. Member
  • **
  • Posts: 27
    • View Profile
Re: A guide for ROM hacking original Game Boy games?
« Reply #6 on: February 27, 2019, 02:02:10 pm »
I have seen plenty of people effect wide reaching changes with fairly basic skills. So many games get improved by altering a few drops, few enemy patterns in a level, tweaking some of said same level, playing with a few cheats, playing a bit with a tile editor, playing a bit with the wording of a script or even a few words within it.

Yeah. Coming from a novice rom hacker, I was able to use the rom space available and some font ligatures to do a decent translation of a game people have been waiting over a decade for. I can see where improvements could be made, but it's fully playable and largely appealing compared to nothing.

Just messing with an experience table, I made a game that was otherwise pretty annoying a lot more tolerable.

SaveState

  • Jr. Member
  • **
  • Posts: 15
  • I hack GBA, NES, and sometimes GBC
    • View Profile
    • SaveState's ROM Hacking Site
Re: A guide for ROM hacking original Game Boy games?
« Reply #7 on: March 08, 2019, 08:03:12 am »
When I first started out with ROM hacking, I mostly just edited graphics. I was not very good with computers at ALL back then. I just had patience, and the desire to try and accomplish. Graphics editing can be easily done with yy-chr. It's very easy to do, and creates satisfying results with patience. For other things, there are many tools that allow editing without having to use assembly, such as Super Mario Land level editors.