Hey everyone,
I've been working on a full disassembly of Harvest Moon GBC. It's a pretty big endeavor and it takes a long time, but I've slowly been chipping away at it. It's still pretty early in development, so I don't have all the data reverse engineered (like graphics and text).
If anyone wants to know something about the code or has something I should investigate in the code, just let me know.
Here is the link: Harvest Moon GBC Disassembly
Harvest Moon GBC Disassembly
-
fizzly
- New Seedling

- Posts: 19
- Joined: Apr 16, 2010 9:13 am
Wow, this is so nice! So hyper about this
What exactly does the "disassembly" mean? You write game from the beginning or you just somehow "hack" the game so we can edit some things? I'm curious will there be an option to add some stuff for the current game, or not? Can I help somehow? I can't into programming, though
I checked the "price" file, and I think it's something like this:
I bet there's no animal selling prices there, just can't figure out why there's so many "500" and what can be sold for 100 and 300?
What exactly does the "disassembly" mean? You write game from the beginning or you just somehow "hack" the game so we can edit some things? I'm curious will there be an option to add some stuff for the current game, or not? Can I help somehow? I can't into programming, though
I checked the "price" file, and I think it's something like this:
Code: Select all
; This tells how much each shipment item sells for.
; Need to identify which is which.
ShipmentSellingPrice:: ; 1d4e
REPT 26
dw $0000
ENDR
dw 150 //corn
dw 120 //tomato
dw $0000
dw $0000
dw $0000
dw 60 //turnip
dw $0000
dw 80 //potato
dw $0000
dw 350 //large milk
dw $0000
dw 250 //medium milk
dw $0000
dw 150 //small milk
dw $0000
dw 70 //egg
REPT 18
dw $0000
ENDR
dw 100
dw $0000
dw $0000
dw $0000
dw 300
dw 300
REPT 31
dw $0000
ENDR
dw 500 //butter or cheese?
dw 500 //butter or cheese?
dw 500 //butter or cheese?
dw 500 //butter or cheese?
dw 500 //butter or cheese?
dw 500 //butter or cheese?
dw $0000
dw $0000
dw 150 //carrot or broccoli
dw 60 //eggplant
dw 80 //peanut
dw 150 //carrot or broccoli
dw $0000
dw $0000
dw $0000
dw $0000-
Xillicis2
- Anonymous Fish
Thanks!
I forgot to include the "INSTALL.md" in the repository. But the basic premise is the same; depending on the operating system you're using you'll work through the steps to install all the required "stuff" and then you'll be able to run the `make` command which will compile the game. Aside from getting software installed and working, another essential topic is to understand decimal, hexadecimal, and binary number systems. Generally, all the numbers that appear in the code are typically in hexadecimal. It takes a lot of effort, but it's also pretty fun. Personally, I learned the assembly programming language from making a [b]Very Bad Thing™[/b] "hack" of Pokemon Red. I think it's a great way to get into the code, because you just take the code that's there and tweak it a little bit, so you can learn bit by bit.
Yeah, so the original code (and all Gameboy games) was written in the "Assembly" programming language, so "disassembly" is simple the reverse engineering process. I used a program called "MGBDIS" to disassemble the game, but the code it produces is very unreadable. So you have to take a lot of time to comb through the code and data and try to understand whats going on.What exactly does the "disassembly" mean?
The goal is to get a fully disassembled game with every memory addressed labeled. Essentially doing what the "pret" team has done with Pokemon Red, Blue, Yellow, etc... So, yes, we would be able to completely customize the game ourselves. Even now, you could modify that data file you pasted to change the money you'd get from the different items.I'm curious will there be an option to add some stuff for the current game, or not?
It's possible but it requires a bit of work and a lot of learning. If you are interested in learning about this stuff, I'd recommend checking out the install instructions for "pret/pokered" (Pokemon Red) which I'll link here: https://github.com/pret/pokered/blob/master/INSTALL.mdCan I help somehow?
I forgot to include the "INSTALL.md" in the repository. But the basic premise is the same; depending on the operating system you're using you'll work through the steps to install all the required "stuff" and then you'll be able to run the `make` command which will compile the game. Aside from getting software installed and working, another essential topic is to understand decimal, hexadecimal, and binary number systems. Generally, all the numbers that appear in the code are typically in hexadecimal. It takes a lot of effort, but it's also pretty fun. Personally, I learned the assembly programming language from making a [b]Very Bad Thing™[/b] "hack" of Pokemon Red. I think it's a great way to get into the code, because you just take the code that's there and tweak it a little bit, so you can learn bit by bit.
I think each of the 4 chickens you can have it's own 500 price. So you could change them to make them have different prices. But yeah, I'm not sure about all the other stuff (yet). There could even be unused items that never made it into the game.I bet there's no animal selling prices there, just can't figure out why there's so many "500" and what can be sold for 100 and 300?
-
Xillicis3
- Anonymous Fish
Also, I incorporated the selling price identifications you listed. Thanks for pointing out some of those things. If you don't want to get into all the technical stuff, just pointing out relevant information regarding data or names of things is always valuable. Personally, I loved Harvest Moon but I never really got very far when I was a kid. So I don't know many of the late game things
.
-
fizzly
- New Seedling

- Posts: 19
- Joined: Apr 16, 2010 9:13 am
Thank you for pointing everything out, so I can understand it a little more.
Yeah, I'm just not too good at those things, the peak of my abilities was a translation (to polish) of HM2 for GBC done in some hex editor, but it was soooo long ago I can't even remember how I did that
Anyway, yeah, I can post my finds or comments, because I will definitely follow your ambitious project!
I finished GB1, so I think I know it well.
Yeah, I'm just not too good at those things, the peak of my abilities was a translation (to polish) of HM2 for GBC done in some hex editor, but it was soooo long ago I can't even remember how I did that
Anyway, yeah, I can post my finds or comments, because I will definitely follow your ambitious project!
I finished GB1, so I think I know it well.