#23375 - stuartp - Sun Jul 11, 2004 7:13 am
i am looking for a working example that sends some multiboot code over a link cable.
i have found one example that works but when i use my code with it gameboy #2 freezes after the nintendo logo appears.
also if you think this could be caused by a buggy crt0.s please tell me where to find one that will work (im compiling with crt0.S v1.28 by Jeff Frohwein)
thanks in advance
#23383 - Cearn - Sun Jul 11, 2004 3:12 pm
Are you sure you have a valid header? A real GBA needs a 156 byte Magic Cookie for the code to work. If "GameBoy" shows up but the "nintendo" at the bottom is screwed up, you might have a bad header.
Something like the Xboo communicator even tells you whether the header might be bad.
You can use a program like gbafix to add a valid header. This tool is already included in devkitARM, but for devkit Advance you'll have to get is separately. (see the tools section on the main page).
All my demos should run over a multiboot cable. For some more info on running on hardware, try this thread.
#23388 - dagamer34 - Sun Jul 11, 2004 6:08 pm
This is what you are looking for:
http://www.devrs.com/gba/files/mbclient.txt[/url]
I've tested it, and it has worked for me before. Are you sure you defined the ROM you are sending over the link cable as multiboot? That might be the problem. Also, waiting for a VSync may make a difference.
_________________
Little kids and Playstation 2's don't mix. :(
#23400 - stuartp - Sun Jul 11, 2004 10:47 pm
i tried using the mbclient.txt program but gba #2 wouldnt even display the nintendo logo. do i have to change it at all to make it work (besides adding an AgbMain)?
#23405 - tepples - Mon Jul 12, 2004 3:43 am
Did you remember to properly align the arrays to a 4-byte boundary using an attribute? For example:
Code: |
const u8 Header[] __attribute__ ((aligned (4))) = {
/* mucha data */
}; |
A comparison of the code's hardcoded 0x7202 reply, compared with GBATEK's 0x720x where x is a bitfield representing the connected machines, suggests that it works only for 2 players, not for 3 or 4.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#23426 - dagamer34 - Mon Jul 12, 2004 4:59 pm
Are you using an official Nintendo link cable? Because that is what I tested it with. And make sure that the purple end is in the master GBA, and the grey end in the slave GBA.
_________________
Little kids and Playstation 2's don't mix. :(
#23453 - FluBBa - Tue Jul 13, 2004 9:18 am
I just found out that EZFA flashcards are bad for development purposes...
All my emulators send the original header (at 0x08000000) to the slaves but the EZFA bootloader/flashsoftware changes the header of the GBA rom, so I had to add a seperate copy of the header for it to work on EZFA cards (when bootmanager is enabled).
_________________
I probably suck, my not is a programmer.
#23465 - dagamer34 - Tue Jul 13, 2004 4:31 pm
FluBBa wrote: |
I just found out that EZFA flashcards are bad for development purposes...
All my emulators send the original header (at 0x08000000) to the slaves but the EZFA bootloader/flashsoftware changes the header of the GBA rom, so I had to add a seperate copy of the header for it to work on EZFA cards (when bootmanager is enabled). |
Umm... no. I have an EZFA and have sent a multiboot program WITH the boot menu. Did you actually make a valid multiboot header?
And are you self-replicating your program (sending it from EWRAM)? I was talking about building the slave rom, then using bin2h to get it in a header format, and then include it in another program.
_________________
Little kids and Playstation 2's don't mix. :(
#23502 - FluBBa - Wed Jul 14, 2004 9:28 am
Yes they are self replicating and I use the normal GBA header for booting the client, that didn't work on EZFA cards but on other cards (or EZFA with no bootmenu).
Just thought that might be good to know.
_________________
I probably suck, my not is a programmer.
#23529 - dagamer34 - Wed Jul 14, 2004 6:46 pm
FluBBa wrote: |
Yes they are self replicating and I use the normal GBA header for booting the client, that didn't work on EZFA cards but on other cards (or EZFA with no bootmenu).
Just thought that might be good to know. |
Yeah, I assumed as much.
_________________
Little kids and Playstation 2's don't mix. :(