Game Boy Interface

Release threads for homebrew & utilities only
User avatar
Extrems
Posts: 1312
Joined: Tue Aug 17, 2010 10:40 pm
Location: Québec, Canada
Contact:

Re: Game Boy Interface

Post by Extrems » Wed Mar 28, 2018 2:25 pm

http://problemkaputt.de/gbatek.htm#bios ... glegamepak

This would be the GBA BIOS/ROM/Save dumper, if you haven't replaced or misplaced it.
claywilson95
Posts: 47
Joined: Tue Aug 29, 2017 5:54 am

Re: Game Boy Interface

Post by claywilson95 » Wed Mar 28, 2018 9:29 pm

Extrems wrote:http://problemkaputt.de/gbatek.htm#bios ... glegamepak

This would be the GBA BIOS/ROM/Save dumper, if you haven't replaced or misplaced it.
Let me add an additional question to that lol. Is there any way you could fix this no rumble/framerate drop for users of burning GBI alone to a disc? I only want to use GBI as a standalone without Swiss or anything else, but don't want to have to resort to using the Gameboy Player disc just for playing games that have rumble, and to avoid the sluggish framerate.
User avatar
Extrems
Posts: 1312
Joined: Tue Aug 17, 2010 10:40 pm
Location: Québec, Canada
Contact:

Re: Game Boy Interface

Post by Extrems » Wed Mar 28, 2018 9:45 pm

I have no idea what's going on. I don't even have the game.
claywilson95
Posts: 47
Joined: Tue Aug 29, 2017 5:54 am

Re: Game Boy Interface

Post by claywilson95 » Thu Mar 29, 2018 2:11 am

Extrems wrote:I have no idea what's going on. I don't even have the game.
Do you have any suggestions for what to do to fix the issue?
User avatar
Extrems
Posts: 1312
Joined: Tue Aug 17, 2010 10:40 pm
Location: Québec, Canada
Contact:

Re: Game Boy Interface

Post by Extrems » Thu Mar 29, 2018 2:15 am

You can disable Game Boy Player enhancements to prevent the frame drops.
Stremon
Posts: 23
Joined: Wed Feb 14, 2018 3:18 pm

Re: Game Boy Interface

Post by Stremon » Thu Mar 29, 2018 5:47 am

Extrems wrote:http://problemkaputt.de/gbatek.htm#bios ... glegamepak

This would be the GBA BIOS/ROM/Save dumper, if you haven't replaced or misplaced it.
So if I understand correctly, the multiboot is a function of the GBA bios that's managing the link between the GBA and GC or other devices, and allow among other things to boot up the GBA in slave mode and launch applications on it, so it's obviously used when the GBA is connected to the GC for rumble and gamepad functions.
But what I don't understand is what you mean by GBA BIOS/ROM/Save dumper? I know what a dumper is of course (either hardware or software), but what kind of application are we talking about here? A GC dol application? A bios file for the GBA that contain the multiboot function?
And how is it supposed to interact with GBI?
Also because it's focused on communication between the GBA and other devices, it won't change the support for rumble on the GC controller, am I right?

A last question I already asked once but only had a sarcastic answer :P
How is GBI managing the rumble on a software/hardware level? Is the software looking for a specific byte in the header of the game to activate the function or is it enabled directly in every single games no matter if they support it or not?
Or maybe there is a white list of all supported games coded inside gbi?
Once this is done, how is the software detecting the rumble instructions sent by the game and translate it to real rumble on GC gamepad or GBA+a rumble cartridge game?

I'm not asking just for fun, I am really interested to know how this piece of game hardware and your great program work ;)
And possibly solve this lack of rumble that few people seems to have :D

On my side after all the test I have done, it seems that every single function beside rumble seems to work perfectly, no matter the version of GBI and the way to launch it (and the GBP enhanced games detect the GBP correctly). Even the GBA works nice as a gamepad without the rumble function.
User avatar
Extrems
Posts: 1312
Joined: Tue Aug 17, 2010 10:40 pm
Location: Québec, Canada
Contact:

Re: Game Boy Interface

Post by Extrems » Thu Mar 29, 2018 2:32 pm

Stremon wrote:But what I don't understand is what you mean by GBA BIOS/ROM/Save dumper? I know what a dumper is of course (either hardware or software), but what kind of application are we talking about here? A GC dol application? A bios file for the GBA that contain the multiboot function?
And how is it supposed to interact with GBI?
It's the "gbi/default.mb.gz" file. It's a multibootable GBA ROM.
Image
Stremon wrote:A last question I already asked once but only had a sarcastic answer :P
What? This is seriously how it works:
Extrems wrote:By looking at the screen for the Game Boy Player logo, inputting a button pattern while it's visible, and then doing a handshake and polling for rumble over a serial link.
http://problemkaputt.de/gbatek.htm#gbagameboyplayer
Stremon
Posts: 23
Joined: Wed Feb 14, 2018 3:18 pm

Re: Game Boy Interface

Post by Stremon » Thu Mar 29, 2018 4:16 pm

Extrems wrote: It's the "gbi/default.mb.gz" file. It's a multibootable GBA ROM.
Oh ok I will try that, thank you :D
Extrems wrote: What? This is seriously how it works:
Extrems wrote:By looking at the screen for the Game Boy Player logo, inputting a button pattern while it's visible, and then doing a handshake and polling for rumble over a serial link.
http://problemkaputt.de/gbatek.htm#gbagameboyplayer
Oh wait... wow ok that totally makes sense now, sorry I was thinking you were joking :lol:
Sorry for the confusion, I feel really stupid now :roll:
I had no idea Nintendo had implemented it like that, it's a very interesting little trick they used here.
But it's actually not very surprising when you see how the hardware of the GBP is made.

So are you using the same function as Nintendo for the detection or are you simulating it on a software level?
Could it be that GBI doesn't detect the Game Boy Player logo somehow?
When I start Drill Dozer, right after the Gameboy Advance logo, I have a health and safety warning screen (got the japanese original copy of the game, but the screen is also present in other versions I believe), I have to press a button to skip it, and then I got the Game Boy Player logo screen.
I don't know if other games with rumble does have the same screen at boot before the Game Boy Player logo, but could it be this screen messing up with the detection?
Like if the detection frames are only right after the GameBoy Advance logo, or the gamepad input confirmation for the health and safety warning screen is preventing the button pattern do be detected correctly?
Is there a way to force the activation of the rumble function manually?

Edit: I tried the multiboot ROM by launching GBI without game inserted (is that the correct way to boot it?). I got the menu with the different dump and save options, but when I insert my game, it boots the game right away without allowing me to do any dump. And still no rumble :?
Last edited by Stremon on Thu Mar 29, 2018 4:50 pm, edited 1 time in total.
User avatar
Extrems
Posts: 1312
Joined: Tue Aug 17, 2010 10:40 pm
Location: Québec, Canada
Contact:

Re: Game Boy Interface

Post by Extrems » Thu Mar 29, 2018 4:41 pm

If the cartridge's built-in rumble isn't working, then the detection is working just fine.
Stremon
Posts: 23
Joined: Wed Feb 14, 2018 3:18 pm

Re: Game Boy Interface

Post by Stremon » Thu Mar 29, 2018 5:27 pm

Extrems wrote:If the cartridge's built-in rumble isn't working, then the detection is working just fine.
Indeed the built-in rumble isn't triggered, and in Mario and Luigi superstar saga through my EZ4, the rumble function can be enabled in settings menu (which isn't the case in normal GBA mode), but still no rumble. So the problem obviously isn't in this detection function...
Still no luck with multiboot too, and I can't even dump any game or save strangely :?

I will try the homebrews listed has compatible with the rumble, to see how they behave.
User avatar
Extrems
Posts: 1312
Joined: Tue Aug 17, 2010 10:40 pm
Location: Québec, Canada
Contact:

Re: Game Boy Interface

Post by Extrems » Thu Mar 29, 2018 5:31 pm

Hold Start + Select on the Game Boy logo with the cartridge inserted.
Stremon
Posts: 23
Joined: Wed Feb 14, 2018 3:18 pm

Re: Game Boy Interface

Post by Stremon » Fri Mar 30, 2018 1:17 am

Extrems wrote:Hold Start + Select on the Game Boy logo with the cartridge inserted.
Ok that works :D
But still no rumble once I start my game from here.
After all those test and tries, it would look like my hardware is somehow not compatible with the GBI rumble function, but since you're telling me the hardware are supposed to all be the same... :|
Just out of curiosity, claywilson95 and other people did you manage to get the rumble working on any game?
Working or not working, which boot methods/hardware/game are you using for GBI?
User avatar
Extrems
Posts: 1312
Joined: Tue Aug 17, 2010 10:40 pm
Location: Québec, Canada
Contact:

Re: Game Boy Interface

Post by Extrems » Fri Mar 30, 2018 5:45 pm

  • Improved multiboot implementation.
  • Attempted fix for SD card compatibility.
For speedrunning edition:
  • Improved per-field filtering in single-buffered mode.
For high-fidelity edition:
  • Added RGB Sync-on-Green support.
  • Added xvYCC/BT.2020 support for auto-generated 3D LUT.
No, this has nothing to do with rumble.
User avatar
Extrems
Posts: 1312
Joined: Tue Aug 17, 2010 10:40 pm
Location: Québec, Canada
Contact:

Re: Game Boy Interface

Post by Extrems » Fri Mar 30, 2018 6:23 pm

Here are some pictures taken with the official component cables and a Datapath VisionRGB-E1, using the new RGsB hack.

Image
Image
Image
Stremon
Posts: 23
Joined: Wed Feb 14, 2018 3:18 pm

Re: Game Boy Interface

Post by Stremon » Sat Mar 31, 2018 8:09 am

Hi Extrems,

I did some more tests with the Rumblepong homebrew, and discovered something really interesting:
The rumble is working perfectly in Rumblepong, even with the default settings! (on both GC controller and GBA+Link Cable+Drill dozer cartridge)
I checked again the other games, I even tried switching between them and Rumblepong with a simple reset.
The rumble consistently works in Rumblepong, but still isn't working within the games.
And of course both work fine with the rumble on the official GBP Disk.

So more than a detection issue, it seems there is a communication issue between GBI and the way the normal games handle the rumble function I guess?
Just doing wild guessing of course, I don't know much about how it works beside what you told me, you are the specialist :D
gc4eva
Posts: 23
Joined: Sat Jan 23, 2016 11:14 pm

Re: Game Boy Interface

Post by gc4eva » Mon Apr 02, 2018 12:14 am

Hello, I admire the work that is being done. I have some questions.

I have GBI working and i was wondering with the 720x576i50 and 720x487i59.xxxxx does the speed of gameboy still being correct or is there any difrents ?

I found out with my capture card on the composite I have with the 720x576i50 correct color and with the 720x487i59.xxxxx a green issue color and have to use a hue shift to get the color red back. How can I resolve this ?? I make the question, because I thought 720x487i59.xxxxx make the gameboy run on the right clock speed of playing or is the 720x576i50 also the right clock speed for gameboy?

other question i see that there is ip thing in the left bottom corner. what can I do with that ? can it stream to obs ???
User avatar
Extrems
Posts: 1312
Joined: Tue Aug 17, 2010 10:40 pm
Location: Québec, Canada
Contact:

Re: Game Boy Interface

Post by Extrems » Mon Apr 02, 2018 12:39 am

gc4eva wrote:I have GBI working and i was wondering with the 720x576i50 and 720x487i59.xxxxx does the speed of gameboy still being correct or is there any difrents ?
The GameCube's video refresh rate has no effect on the Game Boy Player.
gc4eva wrote:other question i see that there is ip thing in the left bottom corner. what can I do with that ? can it stream to obs ???
See network features. And yes it can.
kuwanger
Posts: 11
Joined: Thu Dec 14, 2017 9:34 pm

Re: Game Boy Interface

Post by kuwanger » Mon Apr 02, 2018 3:58 am

Extrems wrote:If the cartridge's built-in rumble isn't working, then the detection is working just fine.
Is there any chance you'd be willing to include a debug option to show an overlay icon the screen when rumble support is enabled in GBI? I'd think that'd make it a lot easier on our end to determine if/when rumble is being enabled in a clearly visible way. If it's too much bother, I understand.

Those RGsB hack images look really good. Makes me wish I had a component cable. :) I'm hoping the various Gamecube HDMI plug-ins come down in price, though. On the principle of it, I don't think I'd be willing to splurge on a $100+ cable/plug-in/mod.
Stremon
Posts: 23
Joined: Wed Feb 14, 2018 3:18 pm

Re: Game Boy Interface

Post by Stremon » Mon Apr 02, 2018 12:23 pm

kuwanger wrote:
Extrems wrote:If the cartridge's built-in rumble isn't working, then the detection is working just fine.
Is there any chance you'd be willing to include a debug option to show an overlay icon the screen when rumble support is enabled in GBI? I'd think that'd make it a lot easier on our end to determine if/when rumble is being enabled in a clearly visible way. If it's too much bother, I understand.
I agree with that, it would be really useful to have a way to see whenever the rumble is activated/triggered ;)
gc4eva
Posts: 23
Joined: Sat Jan 23, 2016 11:14 pm

Re: Game Boy Interface

Post by gc4eva » Mon Apr 02, 2018 4:30 pm

Extrems wrote:
gc4eva wrote:I have GBI working and i was wondering with the 720x576i50 and 720x487i59.xxxxx does the speed of gameboy still being correct or is there any difrents ?
The GameCube's video refresh rate has no effect on the Game Boy Player.
gc4eva wrote:other question i see that there is ip thing in the left bottom corner. what can I do with that ? can it stream to obs ???
See network features. And yes it can.

Oke. I check the Network features. what do i need to get it to work. I didn't find any info how to fix it to the OBS. search some info about PNG streaming server. but I did't know how to do it or am I searching in the wrong area ?
User avatar
Extrems
Posts: 1312
Joined: Tue Aug 17, 2010 10:40 pm
Location: Québec, Canada
Contact:

Re: Game Boy Interface

Post by Extrems » Mon Apr 02, 2018 4:54 pm

You can create a Media Source with "udp://<GC IP>:1234/" as input and "png_pipe" as input format.
However, FFmpeg assumes a frame rate of 25 by default, so it'll play slow.

I recommend you use mpv like so, and Game Capture it:

Code: Select all

mpv udp://<GC IP>:1234/ --demuxer-lavf-format=png_pipe --demuxer-lavf-o=framerate=59.7275 --scale=oversample
Of course, streaming has to be enabled first with "--stream=<PC IP>"
claywilson95
Posts: 47
Joined: Tue Aug 29, 2017 5:54 am

Re: Game Boy Interface

Post by claywilson95 » Tue Apr 03, 2018 5:05 am

Extrems wrote:You can disable Game Boy Player enhancements to prevent the frame drops.
If I disabled Game Boy Player enhancements, what effects would that have on the quality of my gameplay?
User avatar
Extrems
Posts: 1312
Joined: Tue Aug 17, 2010 10:40 pm
Location: Québec, Canada
Contact:

Re: Game Boy Interface

Post by Extrems » Tue Apr 03, 2018 5:13 am

When they're enabled, Super Mario Advance 4: Super Mario Bros. 3 has a palette matching SNES and Mario & Luigi: Superstar Saga gets darker.
Tzakiel
Posts: 7
Joined: Wed Oct 04, 2017 3:40 pm

Re: Game Boy Interface

Post by Tzakiel » Tue Apr 03, 2018 9:15 pm

Is there some way to export the overlay art files and edit them, and replace them?
User avatar
Extrems
Posts: 1312
Joined: Tue Aug 17, 2010 10:40 pm
Location: Québec, Canada
Contact:

Re: Game Boy Interface

Post by Extrems » Tue Apr 03, 2018 10:56 pm

Look for GameCube/Wii TPL tools.
Post Reply