Original Post

Hey everyone,

a while ago someone named Cpt. F. posted pictures of an 1995 prototype cartridge of Bound High. He dumped the ROM and sent it to me so I could check if there are differences.

Hello, I have attached the Bound High proto cart ROM. I wasnt sure what to label it to discern it from the other versions out there.

Do with it what you will. I suppose my work is now done.

Please share what differences you can discern. I suppose I have no problem with you sharing it with HorvatM, Krisse or Joergche as you mentioned. And then at some point I guess everyone!

The ROMs themselves are actually very different. It seems like they have been compiled with a different compiler or different optimization settings. You can see that it’s the same code in general but that it’s rearranged leading to jumps going to different positions, different registers being used and the like. You can also see that the code functions a little different here and there to eventually archive the same goal.

The area that stores the data like images is almost identical. The only difference is, that some 0x00 are actually 0xFF in the ROM I got. This is most likely just empty data that has been filled with a different default value.

I also compared data being loaded to the different memories when running the game. Again, charmem and bgmaps are identically from what I can say.

While looking through the ROM I found traces of an debug menu. Kri55e showed me the source code he compiled the ROM from. That version has it deactivated so that it is not compiled into the ROM (at least the code to access it). The ROM I received has the menu also deactivated. We didn’t manage to compile the game with the menu activated yet.

If you read through the thread from 2010 where Kri55e an other discuss the ways to compile the ROM you will learn that the ROM originally couldn’t be compiled without being glitchy. The code was actually changed by Kitaro to produce a glitch free version.

All of this leads me to the conclusion that the two ROMs indeed are the same game. However, the ROM I received has been compiled in a different way. This might lead to the game running smoother in certain places. However, content wise both should be the same.

I also think that the cartridge is indeed legit. In theory, someone could have received a copy of the sources Kri55e has, compiled them in a different way and flashed them onto a prototype card. However, I don’t see the point in doing this.

Since Cpt.F. allowed me to share the ROM with everyone I decided to attach it to this post.

Merry Christmas Everyone

10 Replies

I had a quick look at the ROM. The main debug menu function (which prints the “round select” string at 40140 by calling 2E2C) seems to be at FF6 (F20 in “Kitaro’s” ROM), but it is indeed not called from anywhere.

If you set the PC to 7000FF6 in Mednafen’s debugger, you will get there, but the text won’t be visible because the worlds/charsets are not set up. From there, you can press L or use the left D-pad to get to the round selection mode (which seems to be buggy), or A to go to some other menu (function AA4), which will play one sound and then freeze.

At 12AA is the sound test function. You can access it by first setting the PC to 7000FF6, then to 70012AA (but not directly or it will freeze). You can use the left D-pad and A to choose and play sounds. Again, nothing of use will be visible on the screen.

To summarize, the important addresses are:
5CC: vbReadPad equivalent, never called directly but only from 7F4
AA4: Function that references the “another stage” string
7F4: Wrapper for 5CC, also resets the game on L+R+B+A+Select+Start
8BE: Called from within FF6, indirectly calls 5CC
FF6: Main debug menu function, references the “round select” string
12AA: Sound test mode function, references the “sound test mode” string
2E2C: Text printing function?
40000: “another stage”
40140: “round select”
4014D: “sound test mode”

I don’t have the source code (what are the rules regarding its usage anyway?), so this is just a stab in the dark. You might already know all this.

Thanks to everyone involved in this! Even if it’s essentially the same version of the game it’s still cool to have something VB related like this surface.

Definitely a good Christmas present..Actually this and the GBA TS2 board waiting for me in the mail to pickup today, it’s a good Christmas this year 🙂

Merry Christmas everyone.

That’s definitely a cool Christmas gift. Thank you very much.

I am so excited to see this finally happen! What a Merry Christmas, indeed! Thank you to everyone involved in getting this dumped. To think this all started when a friend PM’d me about Cpt. F’s original FB post about his cart.

Merry Christmas and Happy VUE Year guys<3

Merry Christmas! Glad I was able to help and contribute!

Merry Christmas and thanks for the wonderful present! 🙂

HorvatM wrote:
I had a quick look at the ROM. The main debug menu function (which prints the “round select” string at 40140 by calling 2E2C) seems to be at FF6 (F20 in “Kitaro’s” ROM), but it is indeed not called from anywhere.

If you set the PC to 7000FF6 in Mednafen’s debugger, you will get there, but the text won’t be visible because the worlds/charsets are not set up. From there, you can press L or use the left D-pad to get to the round selection mode (which seems to be buggy), or A to go to some other menu (function AA4), which will play one sound and then freeze.

At 12AA is the sound test function. You can access it by first setting the PC to 7000FF6, then to 70012AA (but not directly or it will freeze). You can use the left D-pad and A to choose and play sounds. Again, nothing of use will be visible on the screen.

To summarize, the important addresses are:
5CC: vbReadPad equivalent, never called directly but only from 7F4
AA4: Function that references the “another stage” string
7F4: Wrapper for 5CC, also resets the game on L+R+B+A+Select+Start
8BE: Called from within FF6, indirectly calls 5CC
FF6: Main debug menu function, references the “round select” string
12AA: Sound test mode function, references the “sound test mode” string
2E2C: Text printing function?
40000: “another stage”
40140: “round select”
4014D: “sound test mode”

I don’t have the source code (what are the rules regarding its usage anyway?), so this is just a stab in the dark. You might already know all this.

The “round select” and “sound test” methods are still in the code. That’s most likely what you found at FF6 and 12AA. They do exactly what their name implies. There is another one checking for certain button combinations.

There is some code that is excluded by a define statement. This code calls the above methods. It can select the round, do the sound test, enable auto move, change the rank and activate something called nishume. The last one I’m not sure about what it does.

Cpt. F. wrote:
Merry Christmas! Glad I was able to help and contribute!

Thank you again for being kind enough to share and let it be dumped. I think I can speak for all of us by saying you made us VB lovers quite happy 🙂

I think I have a Bound High rom already, but if this is the “bestest” version then I probably don’t have this one!

This is a newly found, more official build of the game. It should be basically the same in every way, but it’s cool to have the official dump from a proper cart.

 

Write a reply

You must be logged in to reply to this topic.