gbadev.org forum archive

This is a read-only mirror of the content originally found on forum.gbadev.org (now offline), salvaged from Wayback machine copies. A new forum can be found here.

OffTopic > Multi-rom maker

#9994 - Mustis - Sun Aug 24, 2003 9:52 am

Does anyone know where I could find a Multi-rom maker for the GBA? Like a program that I could use to take many gba roms to one .gba file, with some kind of menu where I then could pick the game.

I need this because I have the Wise Box flash set, but the current software doesn't support multiple rom files.

Thanks a lot!
Mustis

#9998 - Lord Graga - Sun Aug 24, 2003 1:42 pm

Try Pogoshell.

#9999 - tepples - Sun Aug 24, 2003 2:29 pm

Pogoshell supports cards that use Visoly bankswitching (Visoly Flash Advance and Flash2Advance). It has preliminary (i.e. extremely buggy) support for EZ-Flash type bankswitching (EZ-Flash and XG Flash). There seems to be no known support for Wise Card memory, and if it turns out that the Wise Card can't bankswitch, there will be no way to add multiple ROMs.

That said, you can gather up a whole bunch of homebrew .mb files and turn them into one ROM with my .mb menu program.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.

#10009 - Mustis - Sun Aug 24, 2003 5:53 pm

tepples wrote:
There seems to be no known support for Wise Card memory, and if it turns out that the Wise Card can't bankswitch, there will be no way to add multiple ROMs.

...I don't really understand all of what you're saying, but you can put a pre-made multi-cart on the wise box card, but the software supports only one rom in the same cart...

#10013 - tepples - Sun Aug 24, 2003 7:04 pm

"Super Mario Bros. and Duck Hunt" was a pre-made multicart because it was programmed that way. "Super Mario All-Stars" was a pre-made multicart because it was programmed that way. So is "WarioWare Inc." So is the multiboot menu.

It's trivial to write a program that plays several different games. It's harder to modify several existing proprietary programs, each of which expects to fill a storage device, to share a storage device; this usually requires hardware or operating system support, and there's not much of an operating system to speak of on the GBA.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.

#10016 - Mustis - Sun Aug 24, 2003 7:13 pm

ok i understand. But the multi-cart that was flashed to the wisebox card was a chinese pirate multi-cart with Super Mario Cart Advance and 48 NES games (pocketnes.) So i tought that you can have many games on it, the program just doesn't support it...

#10017 - tepples - Sun Aug 24, 2003 7:36 pm

That Chinese cart had only one native GBA game, and it was stored at 0x08000000 just like any single ROM. The pirates probably just recompiled PocketNES to run from 0x08400000 (immediately after MKSC) and added PocketNES and the menu the same way the "GBA scene" ROM pirates add their gay little intros, by hijacking the jump instruction immediately before the logo data to point at their intro instead.

The point is that you can put only one proprietary GBA program on such a cart. All the rest have to be recompiled to run from particular addresses.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.

#10070 - Mustis - Tue Aug 26, 2003 2:18 pm

tepples wrote:
That Chinese cart had only one native GBA game

Yes i know, but with the pocketNes it was two roms, right? So the Wise Card supports at least two roms? I would be perfectly happy if i could put one gba game and one Pocketnes.gba file, that's actually what I would do if I could... A question to you who have some other kind of gba flash device, If you make a multi-cart and then take it back to the computer, is it then one .gba file or is it separate?

#10075 - tepples - Tue Aug 26, 2003 3:44 pm

The Wise Card supports one proprietary ROM and a number of homebrew ROMs limited only by size, provided you have the source code to each homebrew ROM. You may have to do a little link script hacking in order to compile a homebrew ROM such as PocketNES to run from 0x08400000 (i.e. the end of MKSC's binary) rather than 0x08000000, and you'll have to write and insert your own intro, but all that shouldn't be too hard, given that you have the source code to PocketNES. The result will be all one .gba file that you can copy to a cart or run in VisualBoyAdvance. No, there is no publicly distributed tool that will automate this.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.

#10083 - Mustis - Tue Aug 26, 2003 6:07 pm

OK, I'll try... The bad thing is that I know very little about programming (just the basics, or actually the Qbasics :), but hey, I have to learn sometime. I think I can change the 0x08000000 to 0x08400000 but then the thing with the intro, I'm all confused, I haven't got a single idea or way to do that... I do neither know how i'd make it one gba file. Is there some good info on the net that could use or anything? ...maybe I'll just stop bugging you and accept the fact that I'm an idiot.

#10085 - tepples - Tue Aug 26, 2003 6:23 pm

First of all, you will have to know how to program the GBA in assembly language and how to write a linker script. Those are very advanced topics, and if you're just coming off an interpreted BASIC language, you have a lot to learn, and even if I do explain in detail how to create such a ROM, you're probably not going to understand it.

The general structure of a ROM with homebrew added:

0 MB-4 MB: original proprietary game (in this case, Mario Kart Super Circuit) with header patched to point at the menu instead of the game
4 MB-7.9 MB: homebrew program(s), compiled for entry points other than 0x08000000 (the standard GBA entry point)
7.9 MB-8 MB: menu to select program
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.

#10087 - Mustis - Tue Aug 26, 2003 6:33 pm

OK, I guess I'll just stop bugging you with my stupid questions and give up... Oh yeah, thanks for your time!