Game Boy Interface

Release threads for homebrew & utilities only
Razorblade313
Posts: 1
Joined: Thu Apr 06, 2017 4:43 am

Re: Game Boy Interface

Post by Razorblade313 » Thu Apr 06, 2017 4:51 am

Hi Extrems

Quick question about this software.
Is there anyway to change game carts without turning off or resetting the GameCube?
Like on the official software?
bobrocks95
Posts: 161
Joined: Fri Jul 26, 2013 11:19 pm

Re: Game Boy Interface

Post by bobrocks95 » Thu Apr 06, 2017 12:32 pm

I don't know if there's a better way, but I just hold down the reset button and swap carts.
novenary
Posts: 1754
Joined: Mon Dec 30, 2013 7:50 am

Re: Game Boy Interface

Post by novenary » Thu Apr 06, 2017 3:13 pm

That's the intended way.
auron
Posts: 1
Joined: Fri Apr 07, 2017 12:50 am

Re: Game Boy Interface

Post by auron » Fri Apr 07, 2017 1:23 am

Extrems wrote:
  • Added temporal/spatial dithering.
  • Added color matrices by Pokefan531.
  • Added TPL overlay support to wiiload server.
  • Changed default color matrix to Pokefan531's.
  • Changed default gamma to 2.2.
  • Optimized NormalNx filter.
So these changes don't apply to the ULL version, do they? Because for most games, personally I don't care much about color correcting the GBA output, it just looks low contrast and washed out to me compared to raw output.
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 10, 2017 4:26 pm

  • Added component video DAC oversampling.
  • Added experimental 960i and 1152i video modes.
For low latency version:
  • Added component video DAC oversampling.
  • Added reset fade effect.
  • Added TPL overlay.
For ultra-low latency version:
  • Added component video DAC oversampling.
ImageImage
Like a Magic. This applies to SD video modes, and is probably not compatible with GCVideo HDMI.
Dr_Njitram
Posts: 2
Joined: Sat Apr 15, 2017 9:41 am

Re: Game Boy Interface

Post by Dr_Njitram » Sat Apr 15, 2017 9:44 am

I wondered if the gameboy interface is capable of using the gameboy printer?
Asking because i am going to play through Links Awakening DX soonish and have one laying around.
novenary
Posts: 1754
Joined: Mon Dec 30, 2013 7:50 am

Re: Game Boy Interface

Post by novenary » Sat Apr 15, 2017 9:53 am

If it works on the GBA, it will work with the GBP.
Dr_Njitram
Posts: 2
Joined: Sat Apr 15, 2017 9:41 am

Re: Game Boy Interface

Post by Dr_Njitram » Sat Apr 15, 2017 9:54 am

Streetwalker wrote:If it works on the GBA, it will work with the GBP.
Thanks!
User avatar
mantixero
Posts: 6
Joined: Tue Feb 28, 2017 2:26 pm

Re: Game Boy Interface

Post by mantixero » Sun Apr 16, 2017 2:57 pm

For those choosing a scan mode with a CLI file instead of selecting GBI boot options in Swiss, here's a chart to reference when choosing common modes. All commands should be given without carrot brackets and preceded by "--scan-mode=" in the CLI file. Thanks to Extrems for providing info in the Discord chat:
  • Target mode <command> [NTSC specs] (PAL specs) {custom specs}

    240p60 <non-interlace> [720x243p59.8261] (720x288p50.08) {720x243p59.728}
    240p60 oversampled <non-interlace,double-clock,oversample> [720(1440)x243p59.8261] (720(1440)x271p50.09) {720(1440)x243p59.7276}
    240p120 <non-interlace,double-clock> [720x243p119.6522] (720x288p100.16) {720x243p119.46}
    480i60 <interlace> [720x486i59.94] (720x576i50) {N/A}
    480i60 oversampled <interlace,double-clock,oversample> [720(1440)x486i59.94] (720(1440)x543i50) {N/A}
    480i120 <interlace,double-clock> [720x486i119.88] (?) {N/A}
    480sf30 <quasi-interlace> [720x486sf29.97] (720x576sf25) {N/A}
    480sf30 oversampled <quasi-interlace,double-clock,oversample> [720(1440)x486sf29.97] (720(1440)x543sf50) {N/A}
    480sf60 <quasi-interlace,double-clock> [720x486sf59.94] (?) {N/A}
    480p30 oversampled <progressive,oversample> [720(1440)x486p29.97] (720(1440)x576p25) {720(1440)x486p29.864}
    480p60 <progressive> [720x486p59.94] (720x576p50) {720x486p59.7276}
    960i60 <non-progressive> [720x972i59.94] (720x1152i50) {N/A}
For experimenting with scan modes not in this list, use <oversample> to double the sampled horizontal resolution while halving the framerate, use <double-clock> to double the framerate, and combine them (<double-clock,oversample>) to double the sampled horizontal resolution without affecting the framerate. Note that <progressive> and <non-progressive> run at <double-clock> by default, but can take the command <single-clock> if you somehow needed to halve the framerate.

For more information on segmented frames (sf) used in <quasi-interlace> mode, see: https://en.wikipedia.org/wiki/Progressi ... nted_frame
Last edited by mantixero on Mon Mar 12, 2018 7:12 am, edited 5 times in total.
Pokefan531
Posts: 3
Joined: Fri Mar 31, 2017 3:56 pm

Re: Game Boy Interface

Post by Pokefan531 » Sun Apr 30, 2017 3:48 am

I wanted to say thanks for adding my GBA color matrix profiles from libretro. Is the gbi using shaders or texture mapping? I plan to update my shaders since I use a lot of tools for color profile a little bit after my release from December. It would be around May.

You may know this or not, my forum post has a video explaining the color space, and mention a little about your implementation of color correction. Yours seems great and over time, the psp shader has changed so I want to implement your algorithm as a shader since it does color correction with minimal desaturation. Yours looks right on one game I tested, and it was Mermaid Melody Pichi Pichitto Live Start. The game has the blue colors darken in raw and compared with the anime. I don't have an SD card adapter for GC to capture the screen for comparison.

Last question is, does my shader profiles on your homebrew has the gamma retained? My GBA shader has a darken setting at 0.5, which has output gamma at 2.2 and the output gamma affects the color matrix as opposed to input, but 0.5 darken setting is a common standard on a great light on the GBA hardware.
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 » Sun Apr 30, 2017 4:22 pm

Pokefan531 wrote:I wanted to say thanks for adding my GBA color matrix profiles from libretro. Is the gbi using shaders or texture mapping? I plan to update my shaders since I use a lot of tools for color profile a little bit after my release from December. It would be around May.
Shaders, I made a point to (ab)use the GPU.
Pokefan531 wrote:You may know this or not, my forum post has a video explaining the color space, and mention a little about your implementation of color correction. Yours seems great and over time, the psp shader has changed so I want to implement your algorithm as a shader since it does color correction with minimal desaturation. Yours looks right on one game I tested, and it was Mermaid Melody Pichi Pichitto Live Start. The game has the blue colors darken in raw and compared with the anime. I don't have an SD card adapter for GC to capture the screen for comparison.

Code: Select all

/*
   Shader Modified: Extrems
   Color Mangler
   Author: hunterk
   License: Public domain
*/

// Shader that replicates the LCD dynamics from an Original Nintendo DS

#define display_gamma 2.2
#define target_gamma 1.961
#define sat 1.0
#define lum 1.0
#define contrast 1.0
#define blr 0.0
#define blg 0.0
#define blb 0.0
#define r 0.931954
#define g 0.763927
#define b 0.939047
#define rg 0.0473918
#define rb 0.0257754
#define gr 0.174893
#define gb 0.0351781
#define br -0.106848
#define bg 0.188681
#define overscan_percent_x 0.0
#define overscan_percent_y 0.0

struct input
{
  float2 video_size;
  float2 texture_size;
  float2 output_size;
  float  frame_count;
  float  frame_direction;
  float frame_rotation;
};

void main_vertex
(
   float4 position : POSITION,
   out float4 oPosition : POSITION,
   uniform float4x4 modelViewProj,
   uniform input IN,

   float2 tex : TEXCOORD,
   out float2 oTex : TEXCOORD
)
{
   oPosition = mul(modelViewProj, position);
   float2 shift = 0.5 * IN.video_size / IN.texture_size;
   float2 overscan_coord = (tex - shift) * (1.0 - float2(overscan_percent_x / 100.0, overscan_percent_y / 100.0)) + shift;
   oTex = overscan_coord;
}

float4 main_fragment(float2 tex : TEXCOORD, uniform sampler2D s0 : TEXUNIT0) : COLOR
{
float4 screen = pow(tex2D(s0, tex), target_gamma).rgba; //sample image in linear colorspace
float4 avglum = float4(0.5);
screen = lerp(screen, avglum, (1.0 - contrast));

//				r   g    b   black
mat4x4 color = {r,  gr,  br, blr,  //red channel
			   rg,   g,  bg, blg,  //green channel
			   rb,  gb,   b, blb,  //blue channel
			  0.0, 0.0, 0.0,    1.0}; //alpha channel; these numbers do nothing for our purposes.
			  
mat4x4 adjust = {(1.0 - sat) * 0.3086 + sat, (1.0 - sat) * 0.6094,          (1.0 - sat) * 0.0820,          0.0,
			    (1.0 - sat) * 0.3086,          (1.0 - sat) * 0.6094 + sat, (1.0 - sat) * 0.0820,          0.0,
			    (1.0 - sat) * 0.3086,          (1.0 - sat) * 0.6094,          (1.0 - sat) * 0.0820 + sat, 0.0,
			     1.0, 1.0, 1.0, 1.0};

color = mul(color, adjust);
screen = saturate(screen * lum);
screen = mul(color, screen);
return pow(screen, 1.0 / display_gamma);
}
Pokefan531 wrote:Last question is, does my shader profiles on your homebrew has the gamma retained? My GBA shader has a darken setting at 0.5, which has output gamma at 2.2 and the output gamma affects the color matrix as opposed to input, but 0.5 darken setting is a common standard on a great light on the GBA hardware.
It has to be set separately, and there are limitations still.
Cameron1986
Posts: 5
Joined: Tue May 16, 2017 1:22 am

Re: Game Boy Interface

Post by Cameron1986 » Tue May 16, 2017 1:26 am

Guys I may just be a slow learner but I finally figured out how to get the best button mapping for the gameboy interface while using an snes controller through an adapter. (I use the raphnet snes to gc adapter) So the GBI has different button mappings built in but the mapping : Y=B, B=A, Start=Start, Select=Select, L=L, and R=R can only be selected when running the GBI through Swiss. This mapping is Type 3 and imo the most comfortable. Hope this helps others in search of an answer to this.
RetroRGB
Posts: 30
Joined: Sat Aug 10, 2013 8:52 pm

Re: Game Boy Interface

Post by RetroRGB » Tue May 23, 2017 9:25 pm

How exactly do you set the controller config? Sorry for the stupid question, but I'm just trying this for the first time.
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 May 23, 2017 9:37 pm

The easiest way is using Swiss with the .dcp file present.
RetroRGB
Posts: 30
Joined: Sat Aug 10, 2013 8:52 pm

Re: Game Boy Interface

Post by RetroRGB » Tue May 23, 2017 10:49 pm

This is the contents of my SD card. The file is there, but I'm not getting any options in Swiss. I'm sure I'm just making a stupid mistake. What else should I try?
Image
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 May 23, 2017 11:12 pm

I don't know, it should be working.
Cameron1986
Posts: 5
Joined: Tue May 16, 2017 1:22 am

Re: Game Boy Interface

Post by Cameron1986 » Wed May 24, 2017 1:46 pm

RetroRGB wrote:How exactly do you set the controller config? Sorry for the stupid question, but I'm just trying this for the first time.
The steps I took were boot into swiss then launch gbi. After that an options menu will come up before it boots to gbi where you can change the button mapping. Make sure you leave the box for the option you want to change checked. Anything not checked before you press start to launch will revert back to default. Ill post step by step pics when I get home tonight
bobrocks95
Posts: 161
Joined: Fri Jul 26, 2013 11:19 pm

Re: Game Boy Interface

Post by bobrocks95 » Wed May 24, 2017 10:44 pm

Make sure you have the most recent version of Swiss too.

EDIT: nvm, I see you have r387 which is the most up-to-date version right now.
Cameron1986
Posts: 5
Joined: Tue May 16, 2017 1:22 am

Re: Game Boy Interface

Post by Cameron1986 » Wed May 24, 2017 11:24 pm

RetroRGB wrote:How exactly do you set the controller config? Sorry for the stupid question, but I'm just trying this for the first time.
I figured a video would be the easiest way so here is a nice little walkthrough on how to change the button mapping
https://youtu.be/MbRbFY0MQNY
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 May 24, 2017 11:34 pm

Cameron1986 wrote:I figured a video would be the easiest way so here is a nice little walkthrough on how to change the button mapping
https://youtu.be/MbRbFY0MQNY
The default scheme you're describing was carried over from the Start-up Disc's settings and is Type B.

Setting 240p60 is pointless as it is the default, and will disable oversampling if using component video.

Also, that particular game has a palette specific to the Game Boy Player, so you should enable "rumble".
Cameron1986
Posts: 5
Joined: Tue May 16, 2017 1:22 am

Re: Game Boy Interface

Post by Cameron1986 » Thu May 25, 2017 1:52 am

Cool thanks for everything Extrems
RetroRGB
Posts: 30
Joined: Sat Aug 10, 2013 8:52 pm

Re: Game Boy Interface

Post by RetroRGB » Sun May 28, 2017 1:30 pm

I was able to try again last night and had some issues. First, I couldn't find the option in Swiss on GBi, only GBi_LL. Next, none of the controller modes worked with my controller adapter. To be clear, if I launched the game with all options checked, except the controller modes, my SNES controller would work fine. If I checked it off and selected A, B or C, my controller wouldn't work at all. I'm using the discontinued SNES to GC adapter from RetroUSB, so maybe that's the issue? I can order a Raphnet adapter and see if that fixes it.


Also, for anyone interested, I made an updated version of the boot disc, which boots to Swiss and has the latest GBi softwares on it: http://www.retrorgb.com/files/BootableS ... 170410.zip
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 » Sun May 28, 2017 1:35 pm

RetroRGB wrote:I was able to try again last night and had some issues. First, I couldn't find the option in Swiss on GBi, only GBi_LL.
It's only in GBI LL, as documented in the OP.
RetroRGB wrote:Next, none of the controller modes worked with my controller adapter. To be clear, if I launched the game with all options checked, except the controller modes, my SNES controller would work fine. If I checked it off and selected A, B or C, my controller wouldn't work at all. I'm using the discontinued SNES to GC adapter from RetroUSB, so maybe that's the issue? I can order a Raphnet adapter and see if that fixes it.
It's likely a polling issue, set the polling rate to VSync.
RetroRGB
Posts: 30
Joined: Sat Aug 10, 2013 8:52 pm

Re: Game Boy Interface

Post by RetroRGB » Wed May 31, 2017 2:27 pm

The issue seems to be with my controller adapter, which is the discontinued RetroUSB one, not the Raphnet. If I enable polling at all, it won't boot, it'll just freeze at the white GB boot screen. Randomly, the controller mode worked for me...then when I rebooted again, it didn't work. I showed a video of it on this week's podcast at about 15-min into it: https://youtu.be/1TUvru2nCzw?t=14m46s

So, it seems my controller adapter is probably the issue. I'll get a Raphnet one eventually and try again.
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 May 31, 2017 3:33 pm

RetroRGB wrote:If I enable polling at all, it won't boot, it'll just freeze at the white GB boot screen.
You didn't show this, but I'm guessing it's reporting all buttons are pressed, and Start + Select in the GBA BIOS cancels cart boot.
Can you see if it work any better in 480i/p?

I still don't get the Select thing, all control schemes have Select mapped to Z.
Post Reply