#18501 - mymateo - Sun Mar 28, 2004 1:54 am
Hi Everyone
For a while now, I have been looking for a way to record the internal memory of the GameBoy Advance. I have a Flash2Advance cart, and the cable that comes with it, but it does me no good. I can copy any cartridge I want, but what I would like is to have a collection of smaller programs on one cart.
My reason is this: It takes far too long to transfer programs from the GameCube to the GBA. For example, in Animal Crossing you can download a porgam to design patters for clothes/wallpaper/carpet. In FF: Crystal Chronicles you use the GBA as your radar and (in Multiplayer) your controller. It would be SO nice to just turn on the GBA, choose which program to run, and then be done with it.
For anyone who still doesn't understand my plight, I'll explain in a bit more painful detail. You hook up your GBA to your GameCube, and certain games will load a small program into your GBA's internal memory. No cartridge required. Turn your GBA off, the program is gone. When I use my F2A program (for ripping ROMS), it makes you turn your GBA off, then it loads a program into the internal memory. So even if I could keep the GBA on, I couldn't copy anything because it would erase it.
I have looked for programs that do not require their own software to be uploaded to the GBA, but have had no luck. I believe that it would be possible to write a ROM to load onto a blank cart that acts like the GBA's BIOS in ready mode, then will take the data from the GameCube, and will store it for retrieval.
Does ANYbody know of a program or a ROM that will accomplish this task?
#18506 - Miked0801 - Sun Mar 28, 2004 3:01 am
No offense, but this post feels very warez - like someone attempting to do illegal things with the GBA. You mention ripping ROMs which of course isn't quite legal and then ask about ways to rip stuff downloaded into RAM. I have a few ideas I could post, but you'll need to convince me that this is on the up and up - not illegal. Are you truely just attempting to circumvent the re-load time of the GC or are you up to something else?
#18507 - tepples - Sun Mar 28, 2004 3:39 am
How about a way to switch among multiple "multiboot extras" from purchased GameCube discs while away from the GameCube? The way mymateo wants to do this is by faking a multiboot session from the GameCube, writing .mb data to flash instead of executing it.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#18511 - MumblyJoe - Sun Mar 28, 2004 4:16 am
I have been thinking about this idea a bit recently too, but I think that it may break some games.
If you can fake a multiboot session and save it to the card for retreval later, thats all good, but what about the roms that have the loading screen when they get the rest of the data from the cube (or other gba), would this go bananas?
Fasinating idea, just not sure how practical...
_________________
www.hungrydeveloper.com
Version 2.0 now up - guaranteed at least 100% more pleasing!
#18515 - Miked0801 - Sun Mar 28, 2004 6:01 am
Since other people are posting - Modify the GC cable to hookup to a PC serial Port and grab the data that way.
#18518 - mymateo - Sun Mar 28, 2004 8:32 am
First of all, wow. I didn't expect so many replies so soon. Here goes.
Miked0801
I will not lie, I have tried ripping ROMs. So far, I have ripped Spyro Season of Ice and Season of Flame. That's all. My intent for this project is purely to save time (reduce annoyance) from games on the GameCube I already own. It would be very pointless to load, say, the Radar from Tom Clancy's Splinter Cell into my GBA and save it as a ROM for piracy. Who would need it? If you don't own the game, it's useless, and since you can't copy the GC disc, then obviously anyone who has use for the ripped ROM owns the game legally (or is borrowing it) and therefore only has one use for it: to save time. Also, this sparks my curiousity.
tepples
I'm afraid you've kinda lost me on that one. But if I'm reading it correctly, then I think you got the gist of what I was looking for.
MumblyJoe
It could break some games, then again, it may not. The most practical way to acheive this is to have the blank cart loaded with however many (you guys are calling them - ) "Multiboot" roms, select the one you want from a menu, and it'll load it into the internal memory as if the GameCube itself had put it there. And since the GBA can transfer memory to and from the cart and the ram much faster than the game link cable, it should still prove to be worth the effort. Do you think that way is practical, or is there still something else we should consider?
Miked0801 - Second reply
I don't know how I could hook my GC up to my PC, let alone figure out the software needed (if any exists) to trick the GC into thinking that my PC is a GBA waiting for data. If it doesn't see a GBA, it doesn't transfer the data, if I'm correct? Still, worth looking into.
Thanks everyone, I look forward to any more ideas. I'm still learning to program C++ for GBA (the ORIGINAL reason for buying a F2A cart... then FF:CC came along... he he he... Selkies rule) ahem... Sorry. Anyways, I was saying I'm going to see if I can eventually figure out how to access the serial port on the GBA and grab data, but I don't know if I can program it to save directly to the cart and not RAM.
Again, thanks a lot! And thanks to Miked0801 for trying to keep it real. And don't worry about Nintendo - - They've got my money.
#18520 - MumblyJoe - Sun Mar 28, 2004 12:08 pm
Dont worry too much about the legal side of it, I see no immediate issues if you are just using it to speed up playing games they are selling.
My advice:
-Find out what state the gba is in for recieving multiboot code.
-Emulate that.
-When on the card give the rom you write 256KB of memory ( ithink thats the maximum size multiboot can be).
-Make your rom write the data to the save space.
-Then depending upon your card extracting this data from the save file should be easy.
_________________
www.hungrydeveloper.com
Version 2.0 now up - guaranteed at least 100% more pleasing!
#18538 - Gopher - Sun Mar 28, 2004 6:50 pm
if you don't want f2a's boot loader, go into the config screen and change the loader to your file. Doesn't help with putting multiple things on there at once, though; to make that work will require that all the projects be multiboot, as has been described already in this thread.
_________________
"Only two things are infinite: the universe, and human stupidity. The first is debatable." -Albert Einstein
#18567 - mymateo - Mon Mar 29, 2004 1:00 am
Thanks guys/gals (probably guys, but you gotta be PC, right?)
MumblyJoe
Thanks, I never thought of using the save game space (I must have been doing drugs behind my back or something). That brings me one step closer, and it was one of my two main concerns. My biggest remaining concern is as you suggested - Finding out what mode the GBA is in and how to emulate it. I have never even dabbled in emulation (as far as programming goes, that is) and therefore I have no idea how to do it. I'll probably try to just enable the serial port to receive data and see what I get.
Any thought about whether that'll work or not are welcome!
Gopher
I would use F2A's boot loader (I like how easy it is to use!), however the problem comes in when I want to load the ROM into RAM and run it from there instead of off the cartridge. Theoretically, after I choose which ROM to run I should be able to take the cart out and still have everything run just fine.
Any thoughts on how this could be accomplished? I'm sure it's easy enough to just copy the data into memory (simple to do, as easy as drawing an image onto the screen I'd imagine!) but I still wouldn't know how to cause it to execute.
Again, many thanks to everyone posting replys! Special thanks this time to MumblyJoe who manged to point out the should-have-been-obvious. I swear, I don't know what I was thinking. Maybe I should stick to playing games instead of trying to understand them... DERP! But seriously, thanks.
#18577 - tepples - Mon Mar 29, 2004 4:13 am
If you want to learn how to receive a GBA multiboot program over the GameCube joy bus, do this:
- Read Martin Korth's GBATEK manual to learn how to communicate as a slave in normal, multiboot, and joy bus modes.
- Learn ARM assembly language inside and out.
- Dump your GBA's BIOS, either over the MBV2 or to your flash cart's SRAM. You can use the MidiKey2Freq() exploit for this.
- Disassemble the parts of BIOS related to the MultiBoot() syscall.
- Document the steps that a multiboot slave takes.
- Report those findings to the public.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#18590 - FluBBa - Mon Mar 29, 2004 10:11 am
Loopy has allready made a program that reads a multiboot file from the serial port on the GBA (and saves it to the SRAM of the flashcart?).
I only know of one place where to get it but it also contains MB roms... so no link, sorry.
And MB files can be used directly under Pogoshell.
_________________
I probably suck, my not is a programmer.
#18593 - tepples - Mon Mar 29, 2004 1:02 pm
FluBBa wrote: |
Loopy has allready made a program that reads a multiboot file from the serial port on the GBA |
Is it also forbidden to give the magic Google keywords?
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#18621 - dagamer34 - Mon Mar 29, 2004 11:48 pm
What DOESN'T Google find?
_________________
Little kids and Playstation 2's don't mix. :(
#18630 - mymateo - Tue Mar 30, 2004 6:36 am
Me again
FluBBa:
Is it possible to mail me the link (you said no _posting_ the link, correct?) and if not, at least tell me what the program is called so I can look for it? (I'm in agreeance with tepples' question). Thanks for letting me know such a creature already exists, though!
dagamer34:
Read the newest issue of MaximumPC. How does one million gigabytes to store all the keyword information sound?
#18654 - dagamer34 - Tue Mar 30, 2004 11:39 pm
Good &*^%. No wonder Google is #1.
_________________
Little kids and Playstation 2's don't mix. :(
#18665 - mymateo - Wed Mar 31, 2004 8:45 am
your_engine++ a lot to keep up with that :-)