Difference between revisions of "Game Boy Interface/Standard Edition"

From GC-Forever Wiki
Jump to navigation Jump to search
Line 670: Line 670:
 
**** Contrast: 128
 
**** Contrast: 128
 
*** Red
 
*** Red
**** Brightness: 158
+
**** Brightness: 159
**** Contrast: 158
+
**** Contrast: 159
 
*** Green
 
*** Green
 
**** Brightness: 178
 
**** Brightness: 178
**** Contrast: 178
+
**** Contrast: 160
 
*** Blue
 
*** Blue
 
**** Brightness: 152
 
**** Brightness: 152
**** Contrast: 152
+
**** Contrast: 144
  
 
==== Open Source Scan Converter ====
 
==== Open Source Scan Converter ====

Revision as of 17:15, 11 June 2019

Game Boy Interface
Information
Author(s) Extrems
Type Utility
Version Rolling release
Licence All rights reserved
Links
Download main package
Download extra package
Website
Discussion
Source
GBI.png

The author's original vision, Game Boy Interface Standard Edition (GBI) features an advanced video renderer exercising the GameCube hardware to its fullest. A port of mGBA for GameCube and Wii, dubbed Enhanced mGBA, is based upon it.

Controls

On-screen display

Nintendo GameCube Nintendo GameCube Controller Logitech Speed Force Action
A/B Buttons A/B Buttons Hide on-screen display
X Button X Button Toggle on-screen display
Y Button Y Button Revert offset/zoom
Z Button Z Button Take screenshot
Start/Pause
(Hold for 1 second)
Start/Pause
(Hold for 1 second)
Exit
+Control Pad +Control Pad Offset
L/R Buttons L/R Buttons Zoom
Reset Button X, Y and Start/Pause Buttons
(Hold for 1.5 seconds)
Recalibrate
Reset Button Save movie

In-game

Nintendo GameCube Nintendo GameCube Controller Logitech Speed Force Action
A/B Buttons A/B Buttons or Accelerator/Brake Pedals A/B Buttons
X Button X Button Toggle on-screen display
Y Button Y Button Turbo
Z Button Z Button Select
Start/Pause Start/Pause Start
+Control Pad or Control Stick +Control Pad or Steering Wheel +Control Pad
L/R Buttons L/R Buttons L/R Buttons
(Only for Game Boy Advance)
Reset Button B, X and Start/Pause Buttons B, X and Start/Pause Buttons Power Switch
Reset Button X, Y and Start/Pause Buttons
(Hold for 1.5 seconds)
Recalibrate
Z and Start/Pause Buttons Z and Start/Pause Buttons Multi-play boot
DK Bongos Controller Active Life Mat Controller Action
Bottom Right/Left Orange Up/Right A/B Buttons
Hand Clap - Button Select
Start/Pause + Button Start
Top Right Blue or Orange Square +Control Pad Right
Top Left Blue Left +Control Pad Left
Blue Up +Control Pad Up
Blue or Orange Down +Control Pad Down

Note: Select on a HORI Game Boy Player Controller acts as the Y Button.

Options

--aspect=<w:h>
Specify screen aspect ratio. The default is the Progressive Scan Mode system setting (4:3 or 16:9).
--offset=<x:y>
Set offset. The default is the Screen Position system setting (-32 to +32).
--zoom=<x:y>
Set zoom. The default is the Game Boy Player Start-up Disc's Screen Size setting (2.0 or 2.375).
--rotate=<0-359>
Set rotation (default: 0).
--poll=<0-11>
Set controller polling rate. Use if your third-party controller or controller adapter is malfunctioning.
0: VSync (most compatible)
1: 1000Hz (default)
2: 500Hz
3: 350Hz
4: 300Hz
5: 250Hz
6: 200Hz
7: 150Hz
8: 150Hz
9: 125Hz
10: 125Hz
11: 100Hz
--turbo=<on:off>
Set autofire interval (default: 3).
--movie=<path>, --no-movie
Play input log (default: no).
--movie-record, --no-movie-record
Record input log (default: no).
--overlay=<path>, --no-overlay
Load texture palette (default: frame.tpl.gz).
--overlay-id=<ID>
Set texture palette index. The default is the Game Boy Player Start-up Disc's Frame setting (0 to 19).
--overlay-scale=<x:y>
Set texture scale (default: auto).
--filter=<[none|blend|deflicker|accumulate|scale2x[ex|plus]|eagle2x|scan2x|normal2x][,prescale|no-prescale]>
Set image doubling or screen filter. The default is the Game Boy Player Start-up Disc's Screen Filter setting (none, blend, deflicker).
none
Also known as the Sharp screen filter.
blend[=<red[:green[:blue]]>]
Blend frames n and n-1 (default: 0.55).
Also known as the Soft screen filter.
deflicker[=<red[:green[:blue]]>]
Blend frames n and n-1 where n and n-2 are equal (default: 0.55).
Also known as the Normal screen filter.
accumulate[=<red[:green[:blue]]>]
Blend frames with accumulation buffer (default: 0.55).
As used by the Nintendo 3DS Ambassador games.
prescale, no-prescale
Enable prescaling filter (default: no).
Note: Any chosen filter will also apply to screenshots, but not to video streaming.
--dither=<none|threshold|bayer8x8|bayer4x4|bayer2x2|cluster8x8|cluster4x4>
Set dithering algorithm (default: threshold).
Applied during prescaling and temporal interpolation.
--scaler=<nearest|bilinear|area|box>
Set image scaling filter (default: area).
--matrix=<identity|gba|gbc|gbi|nds|palm|psp|vba>
Set color matrix (default: gbi).
This translates the RGB color primaries to the standard RGB color space.
identity: Identity matrix
gba: Game Boy Advance (by Pokefan531)
gbc: Game Boy Color (by Pokefan531)
gbi: Game Boy Interface
nds: Nintendo DS (by Pokefan531)
palm: Palm Treo 700p (by Pokefan531)
psp: PlayStation Portable (by Pokefan531)
vba: VisualBoyAdvance-M (by Pokefan531)
--input-gamma=<red[:green[:blue]]>
Set gamma (default: 2.2).
--output-gamma=<1.0|1.7|2.2>
Specify screen gamma (default: 2.2).
--contrast=<red[:green[:blue]]>
Set gain (default: 1.0).
--brightness=<red[:green[:blue]]>
Set lift (default: 0.0).
--volume=<left[:right]>
Set audio gain (default: 0.75).
Note: GCVideo-DVI v2.4b and earlier reduces volume down to a quarter.
--sound=<[mono|stereo][,digital|analog]>
Set sound mode. The default is the Sound Mode system setting (mono or stereo).
digital
Use PWM decoder.
analog[=<a0:a1:a2:b1:b2>]
Use 2MHz biquad filter (default). Defaults to a second-order low-pass filter with a cut-off of 10kHz and a quality factor of √2 if not specified.
--format=<ntsc|pal|pal-m|ntsc-50|pal-60|custom|custom-m|hd60|hd50|hd48|hdcustom>
Set video format. The default is the Video Mode and 60Hz Mode system setting (ntsc, pal or pal-60, pal-m).
Note: GCVideo-DVI is only designed to support NTSC, PAL and PAL-60.
--scan-mode=<[interlace|quasi-interlace|non-interlace|non-progressive|progressive][,clock2x|no-clock2x][,size2x|no-size2x]>
Set scan mode. The default is the Progressive Scan Mode system setting (interlace or progressive).
interlace: 15 or 18-22kHz interlaced
quasi-interlace: 15 or 18-22kHz segmented frame
non-interlace: 15 or 18-22kHz progressive
non-progressive: 31 or 27-33kHz interlaced
progressive: 31 or 27-33kHz progressive
clock2x, no-clock2x
Enable 27MHz pixel clock (default: auto). Enabling doubles the refresh rate for interlace modes. Disabling halves the refresh rate for progressive modes.
This only works with the Nintendo GameCube Component Video Cable.
size2x, no-size2x
Enable 2x video oversampling (default: auto). Enabling halves the refresh rate.
This only works with the Nintendo GameCube Component Video Cable.
--osd, --no-osd
Show on-screen display (default: yes).
--ipv4-address=<aaa.bbb.ccc.ddd>
Set static IPv4 address.
--ipv4-gateway=<aaa.bbb.ccc.ddd>
Set static IPv4 gateway.
--ipv4-netmask=<aaa.bbb.ccc.ddd>
Set static IPv4 netmask.
--network, --no-network
Enable Broadband Adapter features (default: yes).
--stream[=<aaa.bbb.ccc.ddd>], --no-stream
Stream video to IP address on UDP port 1234 (default: no). Defaults to 255.255.255.255 if not specified.
--enhance, --no-enhance
Enable Game Boy Player enhancements (default: yes).
Title Feature(s)
Drill Dozer Rumble
Game Boy Advance Video Series Not compatible
Mario & Luigi: Superstar Saga Rumble, reduced contrast
Pokémon Pinball: Ruby & Sapphire Rumble
Shikakui Atama o Maru Kusuru Advance: Kanji Keisanhen Rumble, restored contrast
Shikakui Atama o Maru Kusuru Advance: Kokugo Sansuu Shakai Rikahen Rumble, restored contrast
Super Mario Advance 4: Super Mario Bros. 3 Rumble, restored gamma
Note: Remove any accessory from the External Extension Connector, or the Rumble Feature will not work.
Note: If you're using an EverDrive-GBA, make sure to turn off Quick Boot in the options, or the enhancements may not work.
<path>
Load Game Boy Advance multi-bootable ROM.
Note: Remove any accessory from the External Extension Connector. Hold Start + Select in the Game Boy Player while the Game Boy logo is visible.

Any file path can be relative or absolute. If relative, it is relative to /GBI. They can also explicitly specify the SD card to read from by prefixing an absolute path with carda: or cardb:

Comparisons

Video quality

Blackmagic Intensity Shuttle

Using ADV7180 and ADV7604.

This 10-bit YCBCR 4:2:2 capture device is most representative of what you might see on a digital television.

Note: GCVideo-DVI v2.4a and earlier has CB shifted left in the Green channel of RGB outputs.

Datapath VisionRGB

Using AD9887A.

This range of 8-bit RGB 4:4:4 capture cards is our reference.

Note: GCVideo-DVI v2.4a and earlier has CB shifted left in the Green channel of RGB outputs.

Hauppauge WinTV-HVR-1850

Using CX23888.

Sound emulation

Mega Man Zero 2

Pokémon Sapphire

Image doubling

Pokémon Sapphire

Color matrix

Golden Sun

Mario Kart: Super Circuit

Pokémon Sapphire

The Legend of Zelda: The Minish Cap

Wario Land 4

Examples

Color emulation

Game Boy Advance

GBI Game Boy Advance.png

Using a contrast ratio of 250:1.

--matrix=gba
--input-gamma=4.
--contrast=.74851331406341291833644689906823
--brightness=.25148668593658708166355310093177

Nintendo DS

GBI Nintendo DS.png

Using a contrast ratio of 600:1.

--matrix=nds
--input-gamma=2.2
--contrast=.94539857500845076575010909270066
--brightness=.05460142499154923424989090729934

Palm Treo 700p

GBI Palm Treo 700p.png

Using a contrast ratio of 75:1.

--matrix=palm
--input-gamma=2.2
--contrast=.85949252616415732890698972119636
--brightness=.14050747383584267109301027880364

PlayStation Portable

GBI PlayStation Portable.png

Using a contrast ratio of 750:1.

--matrix=psp
--input-gamma=2.2
--contrast=.95066513192721403818280764386444
--brightness=.04933486807278596181719235613556

Color restoration

Mario & Luigi: Superstar Saga

This game reduces contrast when played with Game Boy Player enhancements.

--contrast=1.1

Super Mario Bros. 3: Super Mario Advance 4

This game reduces gamma when played without Game Boy Player enhancements.

--input-gamma=2.8

The Legend of Zelda: Oracle of Ages/Seasons

This game reduces gamma when played on a Game Boy Advance. Due to Game Boy Color limitations, only shadows can be restored perfectly.

--input-gamma=4.

Mimicking

Game Boy Player Start-up Disc

Included as gbi.cli.example.

--aspect=4:3
--overlay=frame-srgb.tpl.gz
--dither=none
--matrix=identity
--input-gamma=1.
--output-gamma=1.
--contrast=.78125
--sound=analog=.000148021979839541018009185791015625:.00029604395967908203601837158203125:.000148021979839541018009185791015625:-1.965293407440185546875:.965885460376739501953125
--no-osd

Wii U Virtual Console

--aspect=16:9
--zoom=3
--no-overlay
--filter=none
--dither=none
--matrix=identity
--input-gamma=1.
--output-gamma=1.
--contrast=.75
--sound=digital
--no-osd
--no-enhance

Video optimization

Datapath VisionRGB

Nintendo GameCube Component Video Cable

The author's personal setup.

--aspect=4:3
--offset=0
--zoom=3
--filter=prescale
--dither=bayer2x2
--scaler=nearest
--format=hd60
--scan-mode=non-interlace,clock2x,size2x
  • Resolution and Refresh
    • Width: 960
    • Height: 360
    • Vertical Refresh: 60.00
  • Video Adjustments
    • Horizontal Position: 205
    • Horizontal Size: 1200
    • Phase: 31
    • Vertical Position: 13
    • Black Level: 8
  • Cropping
    • Top: 20
    • Left: 0
    • Width: 960
    • Height: 320
  • Color Adjustments
    • Brightness: 32
    • Contrast: 128
    • Colour Domain: YUV (601)
    • Colour Balance
      • All Colors
        • Brightness: 32
        • Contrast: 128
      • Red
        • Brightness: 159
        • Contrast: 159
      • Green
        • Brightness: 178
        • Contrast: 160
      • Blue
        • Brightness: 152
        • Contrast: 144

Open Source Scan Converter

--aspect=4:3
--offset=0
--zoom=3
--format=hd60
--scan-mode=non-interlace

High-definition televisions

Nintendo GameCube Component Video Cable

Change the Aspect Ratio on the television to Just Scan.

--aspect=1.8
--offset=0
--zoom=3.375
--format=hd60
--scan-mode=non-progressive
GCVideo-DVI v2.4d and earlier

Included as gbi-gchd.cli, gbi-gchd.dol+cli and gbi-gchd.gci.

Change the Aspect Ratio on the television to 16:9.

--aspect=16:9
--offset=+4:-2
--zoom=3
--format=ntsc
--scan-mode=non-progressive

To improve the picture further, in the GCVideo menu under "Other settings", try setting "Enhanced DVI mode" to Off. You will lose embedded digital audio.

Labeling the input on the television as a PC may also work.

Video capture devices (Game Boy Advance)

--aspect=3:2
--offset=0
--zoom=3
--filter=prescale
--dither=bayer2x2
--scaler=nearest
--format=ntsc

Video capture devices (Game Boy Color)

--aspect=5:4
--offset=0
--zoom=4
--filter=prescale
--dither=bayer2x2
--scaler=nearest
--format=pal

FAQs

How do I change Game Paks?

  1. Hold the Reset Button.
  2. Slide the Game Pak Ejector.
  3. Insert a Game Pak into the Game Pak Slot.
  4. Release the Reset Button.

Can I play Game Boy Advance Video?

Yes. You can do so by disabling Game Boy Player enhancements (--no-enhance), or holding a direction in the Game Boy Player while the Game Boy Player logo is visible.

Is this an emulator? Can I play ROMs?

No, but there's Enhanced mGBA if you're looking for one.

Is it possible to dump Game Boy Game Paks?

No, the pin assignment for the ARM7 CPU is different and prevents any such possibility. Using the SM83 CPU is impractical.

If you're interested in backing up Game Boy Camera photos, you can do so by taking a screenshot.

Why am I seeing a double split image?

Either progressive scan mode is enabled or, if using GCVideo-DVI, line doubling is by default.

Why is my picture cut or off-center?

This is GCVideo-DVI's blanking regeneration misbehaving with unsupported video modes.

If you have a GCDual or EON GCHD Mk-II, under "Other settings", set "Analog output" (Wii RGB Cable) or "Mode Select" (Wii Component Cable) to dYUV.

For standard video modes, you can disable video oversampling (--scan-mode=no-clock2x,no-size2x).

Why is my picture square or narrow?

By default, Game Boy Interface assume a widescreen aspect ratio when using progressive scan.

Ensure that the television's settings match the assumed aspect ratio written in the top right corner of the on-screen display.

Why is there motion blur? Can I turn it off?

It removes stuttering caused by mismatches between the Game Boy Advance and the display refresh rate. It cannot be turned off.

It can be reduced by using a 120Hz video mode, but it's most effective on a sample-and-hold display.

This can possibly be confused with the deflickering filters. These can be disabled (--filter=none).

Why are the colors washed out?

The screens used in the Game Boy family produced a smaller gamut of colors than found in the standard RGB color space on contemporary monitors.

Developers compensated for this to varying degree, resulting in odd-looking oversaturated colors when shown as-is.

By default, Game Boy Interface adapt these colors for the standard RGB color space, but only halfway as a compromise.

What happens when I exit Game Boy Interface?

The Game Boy Player keeps running and you're returned to autoexec.dol, or the Nintendo GameCube Main Menu.

Changelog

June, 2019

  • Improved video rendering.
  • Renamed oversample scaler to area.
  • Changed default scaler to area.

May, 2019

  • Added blend, deflicker and accumulate filters.
  • Added prescaling filter setting.
  • Added reset combo.

April, 2019

  • Unified screen space for HD video modes.
  • Fixed some video rendering bugs.
  • Fixed a power issue.
  • Enabled USB Gecko standard output.

March, 2019

  • Updated color matrices by Pokefan531.
  • Replaced 720p with 540p.
  • Fixed 960i and 1152i.
  • Fixed NTSC 50 composite video.

December, 2018

  • Fixed 360p RGBcvS sync issue.

October, 2018

  • Added HD Custom video format.

August, 2018

  • Updated color matrices by Pokefan531.

July, 2018

  • Updated GBA-as-GC controller.

June, 2018

  • Added analog sound emulation.
  • Added Custom-M video format.
  • Added Custom interlaced video modes.
  • Changed default sound mode to analog.
  • Changed brightness/contrast controls to match BT.1886.
  • Fixed some audio bugs.
  • Enabled progressive scan in more cases to prevent display issues.

May, 2018

  • Added 360p, 720i, 720p and 1080i video modes.
  • Changed scan mode semantics.
  • Changed default aspect ratio for progressive scan to 16:9.
  • Fixed Game Boy Player advertisement.
  • Fixed rumble protocol handshake.

April, 2018

  • Added movie recording/playback.
  • Updated GBA-as-GC controller.

March, 2018

  • Improved multiboot implementation.
  • Improved Game Boy sound quality.
  • Improved audio rendering.
  • Reduced audio latency.
  • Changed default color matrix to GBI's original.
  • Fixed SD card compatibility.
  • Fixed multiboot to rumble protocol transition.

February, 2018

  • Added color matrix from Gambatte.
  • Added mono sound mode.
  • Fixed wiiload autoboot with tiny GBA multiboot ROMs.
  • Disabled machine checks.

January, 2018

  • Updated color matrices by Pokefan531.
  • Improved Game Boy Player driver.

September, 2017

  • Added overlay scale setting.
  • Added Logitech Speed Force support.
  • Added Active Life Mat support.
  • Improved Game Boy Player driver.
  • Changed wiiload server to accept oversized DOLs.
  • Fixed one random kernel crash.

August, 2017

  • Added DK Bongos support.
  • Updated color matrices by Pokefan531.
  • Improved Game Boy Player driver.

July, 2017

  • Added CLI append support.
  • Updated color matrices by Pokefan531.
  • Updated GBA-as-GC controller.

April, 2017

  • Added component video DAC oversampling.
  • Added experimental 960i and 1152i video modes.

March, 2017

  • 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.

February, 2017

  • Added volume control.
  • Added per-channel settings where possible.
  • Changed volume to 75% to mitigate clipping.
  • Fixed framebuffer clearing for 576i.

November, 2016

  • Updated GBA-as-GC controller.
  • Optimized Scale2xEx filter.

October, 2016

  • Added Scale2xEx and Scale2xPlus filters.
  • Added oversample and box scalers.
  • Added basic video streaming.
  • Added Remote RetroPad support.
  • Optimized video rendering.

September, 2016

  • Added polling rate setting.

May, 2016

  • Updated GBA-as-GC controller.
  • Improved Game Boy Player driver.
  • Fixed WaveBird Controllers.

April, 2016

  • Added GBA multiboot support to wiiload server.
  • Added Xboo Communicator.
  • Added BIOS/ROM dumper.
  • Replaced GBA-as-controller with GBA-as-GC controller.

March, 2016

  • Added GBA-as-controller support.
  • Recognized a half press of the analog triggers.

December, 2015

  • Expanded video options. Now includes 25, 30, 100 and 120 Hz modes.
  • Added gamma-encoded borders for special use.

November, 2015

  • Added (GZipped) TPL overlay support.
  • Added all 20 borders from the Game Boy Player Start-up Disc.

October, 2015

  • Added Scale2x, Eagle2x, Scan2x and Normal2x filters.

August, 2015

  • Added executable compression.
  • Added return to autoexec.dol.
  • Added memory card distribution files.
  • Added auto-cropping for Game Boy screenshots.
  • Optimized video rendering.
  • Reduced coil whine.

July, 2015

  • Added rumble.
  • Added hold to quit.
  • Added screenshot saving.
  • Added SNTP broadcast listener.
  • Changed default video mode to interlaced.
  • Fixed Game Boy Player detection.

May, 2015

  • Changed all 60 Hz modes to have 486 active lines.

March, 2015

  • Added digital PWM sound.
  • Added turbo button.
  • Fixed 288p.