Possible alternate dumps of multiboot games?

General No-Intro related discussions.
Post Reply
User avatar
Arctic Circle System
Datter
Posts: 64
Joined: 21 May 2020 04:43

Possible alternate dumps of multiboot games?

Post by Arctic Circle System »

We were trying to dump several multiboot games from Billy Hatcher and the Giant Egg (USA) (GCN) [GEZE8P] and decided to test two methods: Dumping and trimming the MRAM from Dolphin, and dumping and trimming the WRAM from mGBA. When dumping each of the five games this way, we noticed that the WRAM ones have three bytes changed near the top compared to the MRAM ones. We also noticed that "Chu Chu Rocket! Challenge (USA) (Billy Hatcher and the Giant Egg) (bad)" was dumped in a similar way, though its dump was cut off a bit earlier than Chu Chu Rocket! Challenge (World), though the last line in that dump was just zeroes IIRC. All of this raises a couple of questions for us. 1. What are these WRAM dumps? Why are those few bytes changed? 2. How are the sizes of each multiboot ROM determined? They're all rather unusual sizes, especially the Puyo Puyo ones.

I'll have to check if those byte changes are dependent on the BIOS or something else. So I'll test it with the debug and GBP BIOS. ~Nai

Edit: Had to change tag to "(bad)" because the actual tag makes half the post bold. ~Nai
relax
High Council
Posts: 940
Joined: 27 May 2008 17:52

Re: Possible alternate dumps of multiboot games?

Post by relax »

Not sure what's the correct RAM dump. It reminds me of that when I extracted the WarioWare multiboot files directly from the disk, and compared them to the Dolphin dumps, I discovered that multiple 00s at the end of the files are cut off. See my original post here:
viewtopic.php?p=26294#p26294

BTW, I moved another source of Billy Hatcher Hyper Shoot / Easy from the GBA dat to the GBA multiboot dat.
https://datomatic.no-intro.org/index.ph ... 137&n=0056
https://datomatic.no-intro.org/index.ph ... 137&n=0055
User avatar
Arctic Circle System
Datter
Posts: 64
Joined: 21 May 2020 04:43

Re: Possible alternate dumps of multiboot games?

Post by Arctic Circle System »

relax wrote: 21 Jan 2022 19:46 Not sure what's the correct RAM dump. It reminds me of that when I extracted the WarioWare multiboot files directly from the disk, and compared them to the Dolphin dumps, I discovered that multiple 00s at the end of the files are cut off. See my original post here:
viewtopic.php?p=26294#p26294

BTW, I moved another source of Billy Hatcher Hyper Shoot / Easy from the GBA dat to the GBA multiboot dat.
https://datomatic.no-intro.org/index.ph ... 137&n=0056
https://datomatic.no-intro.org/index.ph ... 137&n=0055
Well, considering the GBA WRAM dumps seem to each have the exact same changes made to them in comparison to their GC MRAM dumps, I would assume the GC MRAM dumps are the more "correct" dumps. Might be worthwhile to keep them in the DAT as alts, however. Assuming we get the multiboot size debacle resolved, that is. This problem plagues the GC MRAM dumps as well. ~Nai
User avatar
Arctic Circle System
Datter
Posts: 64
Joined: 21 May 2020 04:43

Re: Possible alternate dumps of multiboot games?

Post by Arctic Circle System »

So we ran some tests and I think we've solved our multiboot conundrum. We first extracted gbaUSA.bin from the US release of Harry Potter and the Chamber of Secrets (GHSE69), which had the following header: Image
We then booted up the game, opened up the GBA link menu, linked Dolphin to MGBA, and dumped the GameCube's MRAM and the GBA's WRAM and trimmed each dump. Here's the header of the multiboot ROM from the GC MRAM dump:
Image
And here's the header of the multiboot ROM from the GBA WRAM dump:
Image

As you can see, there are several differences between each header. However, those are the only differences between each ROM. If you were to replace each of the changed bytes in the MRAM and WRAM ROMs with the header of gbaUSA.bin, you would find that they have the same hash, indicating that they're the same ROM with a different header due to weird multiboot stuff. I am not sure why these changes happen. Maybe it's weird multiboot stuff, maybe it's an emulation issue, who knows? But what this tells us is that not only is dumping multiboot ROMs from the GBA's WRAM unreliable, but dumping them from the GameCube's MRAM is unreliable as well. The only method of dumping GC-to-GBA multiboot ROMs that is 100% reliable is extracting them directly from the disc image of any given GameCube game. The only problem with that while most games store their multiboot ROMs in .bin files, .srl files, or in .tgc files, some of them use undecoded proprietary formats, like Dakar 2 which seems to hide its multiboot ROMs in /res/GBA.DAT/RBB/GameCube/GBA.SBB. IIRC Billy Hatcher and the Giant Egg also uses some undecoded proprietary format to store its multiboot ROMs.

tl;dr If you can, the best way to dump GC-to-GBA multiboot ROMs is to extract them directly from a GameCube disc image. However, decoding proprietary formats is hard and requires a lot of specialized skills that most people don't have. So if you can't do that and a game's multiboot ROMs are stored in some file with a proprietary format rather than as .bin, .gba, or .srl files or in .tgc files, then dumping them from the GameCube's MRAM is okay so long as you mention that that's the thing you did, that information is put in the dat, and the dump is marked as potentially bad. Do not dump GC-to-GBA ROMs from the GBA's WRAM. By the time the multiboot ROMs get to the GBA's WRAM, they're modified even more from their original state than they are in the GameCube's MRAM. I don't know why it's like this, but it is. So please don't do it. Hopefully this helps. ~Cherri
KingMike
Posts: 696
Joined: 22 Sep 2012 16:36

Re: Possible alternate dumps of multiboot games?

Post by KingMike »

Is it because the GBA has the game loaded into WRAM, which it is possibly also using and altering as part of game execution?
User avatar
Arctic Circle System
Datter
Posts: 64
Joined: 21 May 2020 04:43

Re: Possible alternate dumps of multiboot games?

Post by Arctic Circle System »

KingMike wrote: 10 Feb 2022 17:45 Is it because the GBA has the game loaded into WRAM, which it is possibly also using and altering as part of game execution?
We have no idea! ~Nai
Post Reply