Harvest Moon GBC Disassembly

Ask questions about the original Gameboy game from 1997 [ Game Guide ]
Xillicis
Anonymous Fish

Post  Posted:

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
fizzly
New Seedling
New Seedling
Posts: 19
Joined: Apr 16, 2010 9:13 am

Post  Posted:

Wow, this is so nice! So hyper about this :lol:
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
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?
Xillicis2
Anonymous Fish

Post  Posted:

Thanks!
What exactly does the "disassembly" mean?
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.
I'm curious will there be an option to add some stuff for the current game, or not?
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.
Can I help somehow?
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.md

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 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?
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.
Xillicis3
Anonymous Fish

Post  Posted:

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 :sleep:.
fizzly
New Seedling
New Seedling
Posts: 19
Joined: Apr 16, 2010 9:13 am

Post  Posted:

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 :shifty:

Anyway, yeah, I can post my finds or comments, because I will definitely follow your ambitious project! :lala:
I finished GB1, so I think I know it well.