Game Boy Interface/High-Fidelity Edition

From GC-Forever Wiki
Revision as of 17:12, 9 June 2019 by Extrems (talk | contribs)
Jump to navigation Jump to search
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
GBIHF.png

A spiritual successor of the ultra-low latency version, Game Boy Interface High-Fidelity Edition (GBIHF) aims to provide the best source quality for further processing or archival.

Controls

Type A (two-handed)

Nintendo GameCube Nintendo GameCube Controller Logitech Speed Force Action
A/B Buttons A/B Buttons or Accelerator/Brake Pedals A/B Buttons
Y/Z Buttons Y/Z Buttons Select
X Button or Start/Pause X Button or Start/Pause Start
+Control Pad or Control Stick +Control Pad or Steering Wheel +Control Pad
L/R Buttons L/R Buttons L/R Buttons
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
X, Y and Start/Pause Buttons
(Hold for 3 seconds)
Swap controls
(Only with SNES Controller)
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

Type B (one-handed)

Nintendo GameCube Nintendo GameCube Controller Logitech Speed Force Action
A/B Buttons A/B Buttons or Accelerator/Brake Pedals A/B Buttons
L/Z Buttons Y/Z Buttons Select
R Button or Start/Pause X Button or Start/Pause Start
+Control Pad, Control Stick or C Stick +Control Pad or Steering Wheel +Control Pad
Y/X Buttons L/R Buttons L/R Buttons
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
X, Y and Start/Pause Buttons
(Hold for 3 seconds)
Swap controls
(Only with SNES Controller)
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
Blue or Orange Square +Control Pad Right
Blue Left +Control Pad Left
Blue Up +Control Pad Up
Blue or Orange Down +Control Pad Down
Top Left/Right L/R Buttons

Type C (Super Mario World: Super Mario Advance 2)

Nintendo GameCube Nintendo GameCube Controller Logitech Speed Force Action
B/Y or X Buttons A/B Buttons or Accelerator/Brake Pedals A/B Buttons
Z Button Y/Z Buttons Select
Start/Pause X Button or Start/Pause Start
+Control Pad or Control Stick +Control Pad or Steering Wheel +Control Pad
L/R or A Buttons L/R Buttons L/R Buttons
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
X, Y and Start/Pause Buttons
(Hold for 3 seconds)
Swap controls
(Only with SNES Controller)

Type D (The Legend of Zelda: A Link to the Past)

Nintendo GameCube Nintendo GameCube Controller Logitech Speed Force Action
Y/B Buttons A/B Buttons or Accelerator/Brake Pedals A/B Buttons
R Button or Start/Pause Y/Z Buttons Select
L/Z Buttons X Button or Start/Pause Start
+Control Pad, Control Stick or C Stick +Control Pad or Steering Wheel +Control Pad
X/A Buttons L/R Buttons L/R Buttons
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
X, Y and Start/Pause Buttons
(Hold for 3 seconds)
Swap controls
(Only with SNES Controller)

Options

--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
--control=<P1[:P2[:P3[:P4]]]>
Set control scheme. The default is the Game Boy Player Start-up Disc's Controller setting (0 or 1).
0: Type A (two-handed)
1: Type B (one-handed)
2: Type C (Super Mario World: Super Mario Advance 2)
3: Type D (The Legend of Zelda: A Link to the Past)
Note: A Game Boy Advance used as a controller is a Nintendo GameCube Controller.
--delay-reset=<N>
Set reset delay (default: 0).
--delay-video=<N>
Set video buffering (default: 1).
--movie=<path>, --no-movie
Play input log (default: no).
--movie-record, --no-movie-record
Record input log (default: no).
--palette=<xxxx-xxxx-xxxx>, --no-palette
Apply Super Game Boy color palette (default: no).
Note: Press Left + B while the Game Boy logo is visible for proper application on original Game Boy Game Paks.
--lut3d=<path>, --no-lut3d
Load 32x32x32 lookup table in PNG file format (default: no).
Overrides --matrix, --input-gamma, --contrast and --brightness.
--lut3d-order=<rgb|gbr|bgr>
Specify lookup table order (default: rgb).
--matrix=<identity|gba|gbc|gbi|nds|palm|psp|vba>
Set color matrix (default: identity).
This translates the RGB color primaries to the video 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=<value>
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 (default).
analog[=<a0:a1:a2:b1:b2>]
Use 2MHz biquad filter. Defaults to a second-order low-pass filter with a cut-off of 10kHz and a quality factor of √2 if not specified.
--colorspace=<ycc601|ycc709|ycc2020|rgb709|rgb2020>
Set video color space (default: ycc601).
This only works with the Nintendo GameCube Component Video Cable.
ycc601: IEC 61966-2-4 xvYCC601
ycc709: IEC 61966-2-4 xvYCC709
ycc2020: ITU-R BT.2020 Y’C’BC’R
rgb709: IEC 61966-2-1 sRGB
rgb2020: ITU-R BT.2020 R’G’B’
Note: GCVideo-Lite or GCVideo-DVI v2.4d and earlier will interpolate Red and Blue samples.
--format=<ntsc|pal|pal-m|ntsc-50|pal-60|custom|custom-m|hd60|hd50|hd48|hdcustom>
Set video format (default: custom).
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 (non-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.
--usb, --no-usb
Enable USB Gecko features (default: yes).
--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 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

3D lookup table

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.

Video optimization

Datapath VisionRGB

Nintendo GameCube Component Video Cable
--colorspace=rgb709
--scan-mode=non-interlace,clock2x,size2x
  • Resolution and Refresh
    • Width: 360
    • Height: 240
    • Vertical Refresh: 59.72
  • Video Adjustments
    • Horizontal Position: 65
    • Horizontal Size: 433
    • Phase: 27
    • Vertical Position: 18
    • Black Level: 8
  • Cropping
    • Top: 40
    • Left: 60
    • Width: 240
    • Height: 160
  • Color Adjustments
    • Brightness: 32
    • Contrast: 128
    • Colour Domain: RGB (601)
    • Colour Balance
      • All Colors
        • Brightness: 32
        • Contrast: 128
      • Red
        • Brightness: 156
        • Contrast: 156
      • Green
        • Brightness: 166
        • Contrast: 166
      • Blue
        • Brightness: 148
        • Contrast: 148
GCVideo-DVI v2.4b and later

Refer to RetroRGB for configuration.

Open Source Scan Converter

Included as gbihf-ossc.cli, gbihf-ossc.dol+cli and gbihf-ossc.gci. Requires firmware v0.82 or later.

In the OSSC menu under "Output opt.", set "384p proc" to Line2x 240x360 or Line3x 240x360.

--format=hd60
--scan-mode=non-interlace

In the OSSC menu under "Sampling opt." and "Adv. timing", set "H. samplerate" to 302.

--format=hdcustom
--scan-mode=non-interlace

XRGB-mini Framemeister

Included as gbihf-xrgb.cli, gbihf-xrgb.dol+cli and gbihf-xrgb.gci. Refer to FirebrandX for configuration.

--format=custom-m
--scan-mode=non-interlace

High-definition televisions

Nintendo GameCube Component Video Cable

Included as gbihf-cmpv.cli, gbihf-cmpv.dol+cli and gbihf-cmpv.gci.

Change the Aspect Ratio on the television to Just Scan.

--colorspace=ycc709
--format=hd60
--scan-mode=non-progressive
Wii Component Cable

Included as gbihf-cmpv.cli, gbihf-cmpv.dol+cli and gbihf-cmpv.gci. Requires a GCDual or EON GCHD Mk-II with firmware v2.4c.2.

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

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.

As a last resort, you can disable video oversampling (--scan-mode=no-clock2x,no-size2x). This will degrade video quality.

How do I calibrate for this?

Damian Yerrick has ported Artemio Urbina's 240p Test Suite to the Game Boy Color and Game Boy Advance.

The Game Boy Advance port can be multi-booted by Game Boy Interface, skipping the need for a flash cart.

Changelog

June, 2019

  • Added non-integer vertical scaling.
  • Changed 540p and 1080i to assume 16:9.

April, 2019

  • Fixed a power issue.
  • Enabled USB Gecko standard output.

March, 2019

  • Updated color matrices by Pokefan531.
  • Updated 3D LUTs by Pokefan531.
  • Replaced 720p with 540p.
  • Fixed 960i and 1152i.
  • Fixed Super Game Boy password order.
  • 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.
  • Updated 3D LUTs by Pokefan531.

July, 2018

  • Updated GBA-as-GC controller.

June, 2018

  • Added analog sound emulation.
  • Added video options.
  • Added component video DAC oversampling.
  • Changed brightness/contrast controls to match BT.1886.
  • Fixed some audio bugs.
  • Removed left/right chroma location support.

May, 2018

  • Added Super Game Boy color palette setting.
  • Changed default chroma location to center.
  • Fixed Game Boy Player advertisement.
  • Fixed rumble protocol handshake.

April, 2018

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

March, 2018

  • Added RGB Sync-on-Green support.
  • Added xvYCC/BT.2020 support for auto-generated 3D LUT.
  • Added control swapping for SNES Controllers.
  • Added center/right chroma location support.
  • Improved multiboot implementation.
  • Fixed SD card compatibility.
  • Fixed multiboot to rumble protocol transition.

Media