Game Boy Interface/High-Fidelity Edition

From GC-Forever Wiki
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 Nintendo 64 Controller Action
A/B Buttons A/B Buttons or Accelerator/Brake Pedals A/B Buttons A/B Buttons
Y/Z Buttons Y/Z Buttons Z Button Select
X Button or Start/Pause X Button or Start/Pause Start Start
+Control Pad or Control Stick +Control Pad or Steering Wheel +Control Pad or Control Stick +Control Pad
L/R Buttons L/R Buttons L/R Buttons L/R Buttons
Reset Button B, X and Start/Pause Buttons B, X and Start/Pause Buttons Z, R, A, B and Start Buttons Power Switch
Reset Button X, Y and Start/Pause Buttons
(Hold for 1.5 seconds)
L, R and Start Buttons Recalibrate controller
X, Y and Start/Pause Buttons
(Hold for 3 seconds)
Swap controls
(Only with controller adapter)
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 Nintendo 64 Controller Action
A/B Buttons A/B Buttons or Accelerator/Brake Pedals A/B Buttons A/B Buttons
L/Z Buttons Y/Z Buttons L/Z Buttons Select
R Button or Start/Pause X Button or Start/Pause R Button or Start Start
+Control Pad, Control Stick or C Stick +Control Pad or Steering Wheel +Control Pad, Control Stick or C Buttons +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 Z, R, A, B and Start Buttons Power Switch
Reset Button X, Y and Start/Pause Buttons
(Hold for 1.5 seconds)
L, R and Start Buttons Recalibrate controller
X, Y and Start/Pause Buttons
(Hold for 3 seconds)
Swap controls
(Only with controller adapter)
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 Nintendo 64 Controller Action
B/Y or X Buttons A/B Buttons or Accelerator/Brake Pedals A/B Buttons A/B Buttons
Z Button Y/Z Buttons Z Button Select
Start/Pause X Button or Start/Pause Start Start
+Control Pad or Control Stick +Control Pad or Steering Wheel +Control Pad or Control Stick +Control Pad
L/R or A Buttons L/R Buttons L/R Buttons L/R Buttons
Reset Button B, X and Start/Pause Buttons B, X and Start/Pause Buttons Z, R, A, B and Start Buttons Power Switch
Reset Button X, Y and Start/Pause Buttons
(Hold for 1.5 seconds)
L, R and Start Buttons Recalibrate controller
X, Y and Start/Pause Buttons
(Hold for 3 seconds)
Swap controls
(Only with controller adapter)

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

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

Type E1 (swapped)

Nintendo GameCube Nintendo GameCube Controller Logitech Speed Force Nintendo 64 Controller Action
X or B/Y or A Buttons A/B Buttons or Accelerator/Brake Pedals A/B Buttons A/B Buttons
Z Button Y/Z Buttons Z Button Select
Start/Pause X Button or Start/Pause Start Start
+Control Pad or Control Stick +Control Pad or Steering Wheel +Control Pad or Control Stick +Control Pad
L/R Buttons L/R Buttons L/R Buttons L/R Buttons
Reset Button B, X and Start/Pause Buttons B, X and Start/Pause Buttons Z, R, A, B and Start Buttons Power Switch
Reset Button X, Y and Start/Pause Buttons
(Hold for 1.5 seconds)
L, R and Start Buttons Recalibrate controller
X, Y and Start/Pause Buttons
(Hold for 3 seconds)
Swap controls back
(Only with controller adapter)

Type E2 (swapped Super Mario World: Super Mario Advance 2)

Nintendo GameCube Nintendo GameCube Controller Logitech Speed Force Nintendo 64 Controller Action
A/B or Y Buttons A/B Buttons or Accelerator/Brake Pedals A/B Buttons A/B Buttons
Z Button Y/Z Buttons Z Button Select
Start/Pause X Button or Start/Pause Start Start
+Control Pad or Control Stick +Control Pad or Steering Wheel +Control Pad or Control Stick +Control Pad
L/R or X Buttons L/R Buttons L/R Buttons L/R Buttons
Reset Button B, X and Start/Pause Buttons B, X and Start/Pause Buttons Z, R, A, B and Start Buttons Power Switch
Reset Button X, Y and Start/Pause Buttons
(Hold for 1.5 seconds)
L, R and Start Buttons Recalibrate controller
X, Y and Start/Pause Buttons
(Hold for 3 seconds)
Swap controls back
(Only with controller adapter)

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

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

Options

--poll=<0-11>
Set controller polling rate. Use if your third-party controller or controller adapter is malfunctioning.
Not applicable to Nintendo 64 Controllers using a passive connector adapter.
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)
4: Type E1 (swapped)
6: Type E2 (swapped Super Mario World: Super Mario Advance 2)
7: Type E3 (swapped The Legend of Zelda: A Link to the Past)
  • --control=0:1:2:3 Set control type A, B, C, D on controller socket 1, 2, 3, 4.
  • --control=4 Set control type E1 on all controller sockets.
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). Setting this option to 0 is not recommended.
--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: gbr).
--matrix=<identity|gba|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)
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 of this value.
--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.
This is used to simulate the RLC circuit on the Game Boy Advance's Headphone Jack, providing a treble boost.
--colorspace=<ycc601|ycc709|ycc2020|rgb709|rgb2020>
Set video color space (default: ycc601).
This should only be changed when the output is analog Y’P’BP’R or digital Y’C’BC’R.
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-2 and earlier will interpolate C’R/R’ and C’B/B’ samples.
--chroma-location=<left|center|right>
Specify chroma sample location (default: center).
If non-center, this will interpolate Y’/G’ samples.
left: GCVideo-DVI
center: AVE N-DOL, AVE P-DOL, CMPV-DOL
right: GCVideo-Lite
--format=<[ntsc|pal|pal-m|ntsc-50|pal-60|custom|custom-m|hd60|hd50|hd48|hdcustom][,offset=<x:y>][,scaled-size=<w:h>][,border|no-border]>
Set video format (default: custom).
ntsc: NTSC-J
pal: PAL-B/G/D/K/I
pal-m: PAL-M
ntsc-50: NTSC-50
pal-60: PAL-60
hd60: HDTV (60Hz)
hd50: HDTV (50Hz)
hd48: HDTV (48Hz)
Note: GCVideo-DVI is only designed to support NTSC-J, PAL-B/G/D/K/I and PAL-60.
AVE N-DOL can only output CVBS or Y/C as NTSC-J, PAL-M or NTSC-50.
AVE P-DOL can only output CVBS as PAL-B/G/D/K/I or PAL-60.
border, no-border
Enable 4:3 border generation for GCVideo-DVI v3.0 and later (default: yes).
--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 (480i@60Hz; 576i@50Hz; 720i@48-60Hz)
quasi-interlace: 15 or 18-22kHz segmented frame (480sf@30Hz; 576sf@25Hz; 720sf@24-30Hz)
non-interlace: 15 or 18-22kHz progressive (240p@60Hz; 288p@50Hz; 360p@48-60Hz)
non-progressive: 31 or 27-33kHz interlaced (960i@60Hz; 1152i@50Hz; 1080i@48-60Hz)
progressive: 31 or 27-33kHz progressive (480p@60Hz; 576p@50Hz; 540p@48-60Hz)
clock2x, no-clock2x
Enable 27MHz pixel clock (default: auto). Enabling doubles the refresh rate for interlace scan modes. Disabling halves the refresh rate for progressive scan modes.
This depend on a compatible video encoder or transmitter not mangling its input.
size2x, no-size2x
Enable pixel doubling (default: auto). Enabling halves the refresh rate.
This depend on a compatible video encoder or transmitter not mangling its input.
--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.
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, or the program will not load.
The e-Reader need to be pulled out slightly from the Game Pak Slot for a program to be loaded and interact with the e-Reader.

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 (480i/p)

Using SSIMULACRA, DSSIM 3.1.0, and FFmpeg 4.4 for SSIM & PSNR, with this reference image.

The analog-to-digital conversion parameters were calibrated for each source and device pair.
This isn't representative of relative signal strength. Sorting by SSIMULACRA provide a fairly accurate ranking.

If you'd like to see additional data or more products tested, please support the author on Patreon.

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.
As chroma is shifted right on YPBPR in/out, this was corrected in post-processing. Video and S-Video in/out suffer from internal interference.

  1. 1.0 1.1 Generic S-Video Cable exhibits a checkerboard pattern when audio isn't connected.
  2. 2.0 2.1 2.2 2.3 2.4 2.5 Undesirable first-order hold on chroma samples.
  3. GCVideo-Lite has chroma shifted right.
  4. 4.0 4.1 EON GCHD Mk-II's analog output suffers from 54MHz and harmonic interference.
  5. GCVideo-DVI v2.4a and earlier has CB shifted left in the Green channel of RGB outputs.
Measurements in dB
Source SSIMULACRA L*a*b* DSSIM R’G’B’ SSIM R’G’B’ PSNR
Nintendo Stereo AV Cable (NTSC-J) -9.240295 -17.650904 9.113080 26.230614
Nintendo Stereo AV Cable (PAL-M) -9.201585 -17.635094 9.266401 26.258677
Generic S-Video Cable (NTSC-J) -10.333813 -21.305827 9.665270 28.114733
Generic S-Video Cable (PAL-M) -9.613201 -20.571086 8.940419 27.562406
HD Retrovision SNES Component Cable -10.994397 -24.119836 11.909565 30.240476
Bitfunx GameCube Component Cable -12.177094 -25.616478 11.833698 30.903891
EON GCHD Mk-II (480i) + Datel Wii HD Component Cable -11.129232 -23.353008 11.015005 29.622180
EON GCHD Mk-II (480i) + HD Retrovision Wii Component Cable -11.008637 -23.771504 10.756515 29.733275
EON GCHD Mk-II (480p) + Datel Wii HD Component Cable -10.924886 -22.486894 11.437944 28.814303
EON GCHD Mk-II (480p) + HD Retrovision Wii Component Cable -10.961547 -22.668726 11.709875 28.666443
EON GCHD Mk-II v2.4c.2 + Datel Wii HD Component Cable -11.745416 -24.960333 11.557802 30.870581
EON GCHD Mk-II v2.4c.2 + HD Retrovision Wii Component Cable -11.823827 -25.531449 11.666174 30.782310
GCVideo-DVI v3.0 and later + Portta HDMI to YPbPr Converter -11.529594 -25.421901 11.843748 31.035720
Insurrection Industries Carby Component Cable -10.900181 -22.505819 12.052110 28.699952
Nintendo GameCube Component Video Cable -11.918474 -24.802715 12.296097 30.858279
GCVideo-DVI v2.4a and earlier -11.295141 -24.125068 13.002043 30.700228
GCVideo-DVI v2.4b and later -12.061597 -25.892260 13.572411 30.754753
EON GCHD Mk-II v2.4c.2 + HDMI Cable -13.387504 -30.220674 14.019783 32.655669
GCVideo-DVI v3.0 and later -26.757543 -45.327662 24.748498 50.132255

"Can't Link"

Using MS2109.

Measurements in dB
Source SSIMULACRA L*a*b* DSSIM R’G’B’ SSIM R’G’B’ PSNR
GCVideo-DVI v3.0 and later (MJPG) -11.665900 -24.046911 11.041204 30.845894
GCVideo-DVI v3.0 and later (YUY2) -12.404198 -23.795062 11.683967 30.481554

Datapath VisionRGB

Using AD9887A.

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

  1. 1.0 1.1 1.2 1.3 1.4 1.5 EON GCHD Mk-II's analog output suffers from 54MHz and harmonic interference.
  2. 2.0 2.1 2.2 2.3 Undesirable first-order hold on chroma samples.
  3. GCVideo-DVI v2.4a and earlier has CB shifted left in the Green channel of RGB outputs.
Measurements in dB
Source SSIMULACRA L*a*b* DSSIM R’G’B’ SSIM R’G’B’ PSNR
HD Retrovision SNES Component Cable 4× Oversampling ADC -15.925540 -27.180932 15.806164 35.753032
EON GCHD Mk-II (480i) + Datel Wii HD Component Cable 2× Undersampling ADC -19.200614 -37.130312 13.860572 41.699780
EON GCHD Mk-II (480i) + HD Retrovision Wii Component Cable 2× Undersampling ADC -16.863238 -36.047663 10.659546 39.569547
EON GCHD Mk-II (480i) + Datel Wii HD Component Cable + RetroRGB Comp2DVI v2.1 2× Undersampling ADC -22.323556 -40.305977 17.362421 45.116109
EON GCHD Mk-II (480i) + HD Retrovision Wii Component Cable + RetroRGB Comp2DVI v2.1 2× Undersampling ADC -22.573935 -40.628929 17.737755 45.675859
EON GCHD Mk-II (480p) + Datel Wii HD Component Cable -14.075873 -28.146407 12.341793 31.634624
EON GCHD Mk-II (480p) + HD Retrovision Wii Component Cable -13.266014 -28.204209 9.916441 31.202246
EON GCHD Mk-II (480p) + Datel Wii HD Component Cable 4× Oversampling ADC -12.772003 -25.568945 14.994420 31.011696
EON GCHD Mk-II (480p) + HD Retrovision Wii Component Cable 4× Oversampling ADC -14.278214 -28.299856 14.727669 32.038702
EON GCHD Mk-II (480p) + Datel Wii HD Component Cable + RetroRGB Comp2DVI v2.1 -14.057546 -28.276383 14.787570 31.886085
EON GCHD Mk-II (480p) + HD Retrovision Wii Component Cable + RetroRGB Comp2DVI v2.1 -14.082391 -28.248147 14.845414 31.825589
EON GCHD Mk-II v2.4c.2 + Datel Wii HD Component Cable -23.165253 -38.387819 17.283093 46.437449
EON GCHD Mk-II v2.4c.2 + HD Retrovision Wii Component Cable -20.839709 -38.995401 13.715459 46.187558
EON GCHD Mk-II v2.4c.2 + Datel Wii HD Component Cable 4× Oversampling ADC -17.152884 -31.581862 13.897661 38.550358
EON GCHD Mk-II v2.4c.2 + HD Retrovision Wii Component Cable 4× Oversampling ADC -26.211797 -43.487925 15.353564 49.763166
EON GCHD Mk-II v2.4c.2 + Datel Wii HD Component Cable + RetroRGB Comp2DVI v2.1 -24.966661 -42.092098 17.089931 49.815191
EON GCHD Mk-II v2.4c.2 + HD Retrovision Wii Component Cable + RetroRGB Comp2DVI v2.1 -26.191378 -42.754356 17.619588 50.258804
Nintendo GameCube Component Video Cable -24.651652 -37.799705 16.608604 45.823305
Nintendo GameCube Component Video Cable + RetroRGB Comp2DVI v2.1 -24.742648 -39.022873 17.065324 46.608796
GCVideo-DVI v2.4a and earlier -11.669476 -24.439556 15.626441 31.413426
GCVideo-DVI v2.4b and later -13.446035 -26.536529 16.788036 31.747315
EON GCHD Mk-II v2.4c.2 + HDMI Cable -39.408684 -47.705310 33.474729 52.385668
GCVideo-DVI v3.0 and later -42.226940 -53.323374 51.065153 66.290202
GCVideo-DVI v3.0 and later 5-5-5 Bits -Infinity -Infinity Infinity Infinity

Hauppauge WinTV-HVR-1850

Using CX23888.

This 8-bit YCBCR 4:2:2 capture card show the advantages of 3D comb filtering.

Video quality (1080i)

Using SSIMULACRA, DSSIM 3.1.0, and FFmpeg 4.4 for SSIM & PSNR, with this reference image.

The analog-to-digital conversion parameters were calibrated for each source and device pair.
This isn't representative of relative signal strength. Sorting by SSIMULACRA provide a fairly accurate ranking.

If you'd like to see additional data or more products tested, please support the author on Patreon.

Blackmagic Intensity Shuttle

Using ADV7604.

This 10-bit YCBCR 4:2:2 capture device is most representative of what you might see on a digital television.
As chroma is shifted right on YPBPR in/out, this was corrected in post-processing.

  1. 1.0 1.1 1.2 1.3 Undesirable first-order hold on chroma samples.
  2. 2.0 2.1 2.2 2.3 2.4 2.5 Missing a reconstruction filter. If an anti-aliasing filter is also missing, pixel width will be uneven.
  3. GCVideo-Lite has CB shifted right and CR shifted left, then both shifted right.
  4. 4.0 4.1 4.2 4.3 EON GCHD Mk-II's analog output suffers from 54MHz and harmonic interference.
  5. 5.0 5.1 GCVideo-DVI v2.4c and earlier has CB shifted right and CR shifted left.
  6. 6.0 6.1 EON CUSTOM v2.4c.2 repeats the first pixel and loses the last.
  7. 7.0 7.1 Suffering from 54MHz interference visible as vertical bands.
Measurements in dB (Relaxed)
Source SSIMULACRA L*a*b* DSSIM R’G’B’ SSIM R’G’B’ PSNR
Bitfunx GameCube Component Cable -12.766442 -23.912045 12.002178 31.570151
Bitfunx GameCube Component Cable + RetroRGB Comp2DVI v2.1 -14.240195 -25.346381 11.946654 32.226028
EON GCHD Mk-II + Datel Wii HD Component Cable -11.218150 -20.294362 10.145642 27.976400
EON GCHD Mk-II + HD Retrovision Wii Component Cable -10.813577 -20.404723 9.404068 27.937689
EON GCHD Mk-II v2.4c.2 + Datel Wii HD Component Cable -14.146244 -28.136581 11.422367 34.616801
EON GCHD Mk-II v2.4c.2 + HD Retrovision Wii Component Cable -13.401739 -28.676316 10.047574 34.389782
EON GCHD Mk-II v2.4c.2 + Datel Wii HD Component Cable + RetroRGB Comp2DVI v2.1 -14.631272 -26.924198 12.307257 34.300344
EON GCHD Mk-II v2.4c.2 + HD Retrovision Wii Component Cable + RetroRGB Comp2DVI v2.1 -14.846140 -27.446046 12.342375 34.450169
Insurrection Industries Carby Component Cable -13.351651 -20.946216 11.747847 28.657726
Insurrection Industries Carby Component Cable + RetroRGB Comp2DVI v2.1 -12.614719 -19.572225 11.677416 27.557869
Nintendo GameCube Component Video Cable -12.589788 -24.745754 11.944957 32.255651
Nintendo GameCube Component Video Cable + RetroRGB Comp2DVI v2.1 -12.795929 -24.353736 12.085284 32.112010
Measurements in dB (Strict)
Source SSIMULACRA L*a*b* DSSIM R’G’B’ SSIM R’G’B’ PSNR
Bitfunx GameCube Component Cable -11.409886 -17.542315 11.149022 26.598855
Bitfunx GameCube Component Cable + RetroRGB Comp2DVI v2.1 -11.217207 -17.865553 11.066684 26.733891
EON GCHD Mk-II + Datel Wii HD Component Cable -11.218150 -20.294362 10.145642 27.976400
EON GCHD Mk-II + HD Retrovision Wii Component Cable -10.813577 -20.404723 9.404068 27.937689
EON GCHD Mk-II v2.4c.2 + Datel Wii HD Component Cable -10.061879 -18.943233 10.650207 26.127405
EON GCHD Mk-II v2.4c.2 + HD Retrovision Wii Component Cable -9.702461 -18.739124 9.453072 25.640686
EON GCHD Mk-II v2.4c.2 + Datel Wii HD Component Cable + RetroRGB Comp2DVI v2.1 -10.504041 -19.222887 11.462010 26.505730
EON GCHD Mk-II v2.4c.2 + HD Retrovision Wii Component Cable + RetroRGB Comp2DVI v2.1 -10.369509 -19.241636 11.463985 26.369512
Insurrection Industries Carby Component Cable -13.351651 -20.946216 11.747847 28.657726
Insurrection Industries Carby Component Cable + RetroRGB Comp2DVI v2.1 -12.614719 -19.572225 11.677416 27.557869
Nintendo GameCube Component Video Cable -12.589788 -24.745754 11.944957 32.255651
Nintendo GameCube Component Video Cable + RetroRGB Comp2DVI v2.1 -12.795929 -24.353736 12.085284 32.112010

Datapath VisionRGB

Using AD9887A.

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

  1. 1.0 1.1 1.2 1.3 1.4 Undesirable first-order hold on chroma samples.
  2. 2.0 2.1 2.2 2.3 Missing a reconstruction filter. If an anti-aliasing filter is also missing, pixel width will be uneven.
  3. 3.0 3.1 3.2 3.3 EON GCHD Mk-II's analog output suffers from 54MHz and harmonic interference.
  4. 4.0 4.1 4.2 4.3 GCVideo-DVI v2.4c and earlier has CB shifted right and CR shifted left.
  5. 5.0 5.1 5.2 EON CUSTOM v2.4c.2 repeats the first pixel and loses the last.
  6. Suffering from 54MHz interference visible as vertical bands.
  7. GCVideo-DVI v2.4a and earlier has CB shifted left in the Green channel of RGB outputs.
Measurements in dB (Relaxed)
Source SSIMULACRA L*a*b* DSSIM R’G’B’ SSIM R’G’B’ PSNR
EON GCHD Mk-II + Datel Wii HD Component Cable -11.329061 -20.171909 10.279903 27.990232
EON GCHD Mk-II + HD Retrovision Wii Component Cable -11.260468 -20.297793 9.352765 27.995439
EON GCHD Mk-II v2.4c.2 + Datel Wii HD Component Cable -16.452706 -30.646033 11.618009 37.371300
EON GCHD Mk-II v2.4c.2 + HD Retrovision Wii Component Cable -16.341529 -32.660397 9.958545 36.774390
EON GCHD Mk-II v2.4c.2 + Datel Wii HD Component Cable + RetroRGB Comp2DVI v2.1 -17.186507 -32.126545 14.702635 38.196510
EON GCHD Mk-II v2.4c.2 + HD Retrovision Wii Component Cable + RetroRGB Comp2DVI v2.1 -18.770180 -35.512602 15.088919 39.872670
Nintendo GameCube Component Video Cable -14.441559 -26.453529 14.616500 34.078794
Nintendo GameCube Component Video Cable + RetroRGB Comp2DVI v2.1 -14.466397 -26.042900 15.807630 33.786928
Insurrection Industries CARBY + Manhattan HDMI to VGA Converter -11.337228 -20.057998 13.981769 28.675147
Insurrection Industries CARBY v2.4c + Manhattan HDMI to VGA Converter -11.573836 -19.682595 13.696418 28.674923
EON GCHD Mk-II v2.4c.2 + Manhattan HDMI to VGA Converter -19.614513 -32.469447 17.092819 42.283870
Insurrection Industries CARBY v2.4d-2 + Manhattan HDMI to VGA Converter -15.191898 -24.366880 15.215643 32.477806
Measurements in dB (Strict)
Source SSIMULACRA L*a*b* DSSIM R’G’B’ SSIM R’G’B’ PSNR
EON GCHD Mk-II + Datel Wii HD Component Cable -11.329061 -20.171909 10.279903 27.990232
EON GCHD Mk-II + HD Retrovision Wii Component Cable -11.260468 -20.297793 9.352765 27.995439
EON GCHD Mk-II v2.4c.2 + Datel Wii HD Component Cable -9.628042 -18.263701 10.631144 25.247548
EON GCHD Mk-II v2.4c.2 + HD Retrovision Wii Component Cable -9.547417 -17.686642 9.264280 24.559405
EON GCHD Mk-II v2.4c.2 + Datel Wii HD Component Cable + RetroRGB Comp2DVI v2.1 -10.150039 -18.334755 12.760222 25.386722
EON GCHD Mk-II v2.4c.2 + HD Retrovision Wii Component Cable + RetroRGB Comp2DVI v2.1 -10.115572 -18.222667 12.850003 25.183900
Nintendo GameCube Component Video Cable -14.441559 -26.453529 14.616500 34.078794
Nintendo GameCube Component Video Cable + RetroRGB Comp2DVI v2.1 -14.466397 -26.042900 15.807630 33.786928
Insurrection Industries CARBY + Manhattan HDMI to VGA Converter -11.337228 -20.057998 13.981769 28.675147
Insurrection Industries CARBY v2.4c + Manhattan HDMI to VGA Converter -11.573836 -19.682595 13.696418 28.674923
EON GCHD Mk-II v2.4c.2 + Manhattan HDMI to VGA Converter -9.843740 -17.321359 13.852164 24.662837
Insurrection Industries CARBY v2.4d-2 + Manhattan HDMI to VGA Converter -15.191898 -24.366880 15.215643 32.477806

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 VisionAV & VisionRGB

GCVideo-DVI v2.4b and later

Refer to RetroRGB for OBS Studio configuration.

GCVideo-DVI v3.0 and later

These settings provide a 2× scaled image in a 3:2 480×320p59.7276 video output.

In the GCVideo menu under "Other settings", set "Enhanced DVI mode" to Off.
In the GCVideo menu under "Advanced settings", set "Chroma Interpolation" and "Fix resolution" to Off, and "Digital color format" to YC444.

Included as gbihf-vision.cli, gbihf-vision.dol+cli and gbihf-vision.gci. Transcribed below for reference.

160p SMPTE color bars 2x.png
--colorspace=rgb709
--format=custom,offset=0,scaled-size=0:0,no-border
--scan-mode=progressive
  • Color Adjustments
    • Brightness: 32
    • Contrast: 128
    • Colour Domain: RGB (709) Limited

Datapath VisionRGB

Nintendo GameCube Component Video Cable

These settings provide a 2× scaled image in a 3:2 480p59.7276 (27MHz÷866÷522) video output.

Included as gbihf-vision.cli, gbihf-vision.dol+cli and gbihf-vision.gci. Transcribed below for reference.

GBIHF AD9887A Component LPF.png
--colorspace=rgb709
--format=custom,offset=0,scaled-size=0:0,no-border
--scan-mode=progressive
  • Resolution and Refresh
    • Width: 480
    • Height: 320
    • Vertical Refresh: 59.72
  • Video Adjustments
    • Horizontal Position: 247
    • Horizontal Size: 866
    • Phase: 28
    • Vertical Position: 116
    • Black Level: 8
  • Cropping
    • Top: 0
    • Left: 0
    • Width: 480
    • Height: 320
  • Color Adjustments
    • Brightness: 32
    • Contrast: 128
    • Colour Domain: RGB (601)
    • Colour Balance
      • All Colors
        • Brightness: 32
        • Contrast: 128
      • Red
        • Brightness: 164
        • Contrast: 196
      • Green
        • Brightness: 178
        • Contrast: 160
      • Blue
        • Brightness: 156
        • Contrast: 196

Open Source Scan Converter

These settings provide a 2× scaled image in a 4:3 360p60 (13.5MHz÷600÷375 or 27MHz÷1200÷375) video output. They require firmware v0.82 or later.

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.
If you're using a Wii RGB Cable: In the OSSC menu under "Settings opt", set "Auto AV1 Y/Gs" to YPbPr.

If you're using GCVideo-DVI with a HDMI to YPbPr Converter: In the OSSC menu under "Sync opt.", set "Vsync threshold" to 14.92 us or higher.

Included as gbihf-ossc.cli, gbihf-ossc.dol+cli and gbihf-ossc.gci. Transcribed below for reference.

Nintendo GameCube Component Video Cable (1080p)
--format=hd60
--scan-mode=non-interlace

In the OSSC menu under "Output opt.", set "384p/400p proc" to Line2x 240x360 (720p) or Line3x 240x360 (1080p).
In the OSSC menu under "Sampling opt." and "Adv. timing", set "H. samplerate" to 300 and "Sampling phase" as needed.


These settings provide a 2× scaled image in a 4:3 360p59.762 (13.5MHz÷604÷374 or 27MHz÷1208÷374) video output.

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

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


This is best used with:

  • Nintendo GameCube Component Video Cable
  • Nintendo GameCube D-Terminal Video Cable
  • Nintendo GameCube RGB Cable

This is compatible with:

  • EON GCHD Mk-II + Wii Component Cable
  • EON GCHD Mk-II + Wii RGB Cable
  • GCVideo-DVI v3.0 and later + digital-to-analog converter
  • GCVideo-Lite
  • HD Retrovision SNES Component Cable

This is not compatible with:

  • GCVideo-DVI v2.4d-2 and earlier
  • Insurrection Industries CARBY Component Cable
Insurrection Industries CARBY Component Cable

These settings provide a 1× scaled image in a 3:2 240p59.7276 (13.5MHz÷866÷261) video output. Refer to FirebrandX for Open Source Scan Converter configuration.
These settings are also applicable to other GCVideo-DVI products with a digital-to-analog converter. They are not applicable to GCVideo-Lite.

Included as gbihf-carby+ossc.cli, gbihf-carby+ossc.dol+cli and gbihf-carby+ossc.gci. Transcribed below for reference.

--chroma-location=left
--format=custom,offset=0,scaled-size=0:0
--scan-mode=non-interlace,no-clock2x,no-size2x

Important: Misuse will result in the wrong aspect ratio.

RetroTINK-5X Pro

These settings provide a 2× scaled image in a 4:3 360p60 (13.5MHz÷600÷375 or 27MHz÷1200÷375) video output. They require firmware v1.28 or later.

If you're using GCVideo-DVI v3.0 or later, under "Advanced settings", set "Chroma Interpolation" to Off.
If you have a GCDual or EON GCHD Mk-II with firmware v2.4c.2, under "Other settings", set "Pixel Average" to Off and "Mode Output" to dYUV.
If you have a EON GCHD Mk-II with original firmware, under "Other settings", set "Mode Select" to dYUV.

Included as gbihf-ossc.cli, gbihf-ossc.dol+cli and gbihf-ossc.gci. Transcribed below for reference.

Portta HDMI to YPbPr Converter (1440p)
--format=hd60
--scan-mode=non-interlace

In the RT5X menu, set "H. Sampling" to DTV 858, "Interpolation" to Sharp, and "Vertical Sync" to Frame Lock.
Do not set "Output Res." to 1200p unless you have a 16:10 monitor. If set to 1440p, change the Aspect Ratio on the display to 4:3.

This is compatible with:

  • EON GCHD Mk-II + Wii Component Cable
  • EON GCHD Mk-II + Wii RGB Cable (firmware v3.0c and later)
  • GCVideo-DVI v3.0 and later + digital-to-analog converter
  • GCVideo-Lite
  • Nintendo GameCube Component Video Cable
  • Nintendo GameCube D-Terminal Video Cable
  • Nintendo GameCube RGB Cable

This is not compatible with:

  • EON GCHD Mk-II + Wii RGB Cable (firmware v2.4c.2 and earlier)
  • GCVideo-DVI v2.4d-2 and earlier
  • HD Retrovision SNES Component Cable
  • Insurrection Industries CARBY Component Cable
  • Nintendo GameCube S-Video Cable
  • Nintendo GameCube Stereo AV Cable
Insurrection Industries CARBY Component Cable

These settings provide a 1× scaled image in a 3:2 240p59.7387 (13.5MHz÷856÷264) video output.
These settings are also applicable to other GCVideo-DVI products with a digital-to-analog converter. They are not applicable to GCVideo-Lite.

--chroma-location=left
--format=custom-m,offset=0,scaled-size=0:0
--scan-mode=non-interlace,no-clock2x,no-size2x

In the RT5X menu, set "Output Res." to 1080p (UNDER), "H. Sampling" to Generic 4:3, "Interpolation" to Sharp, and "SDTV LPF" to Medium.

XRGB-mini Framemeister

These settings provide a 1× scaled image in a 3:2 240p59.7387 (13.5MHz÷856÷264 or 27MHz÷1712÷264) video output. Refer to FirebrandX for XRGB-mini Framemeister configuration.

Included as gbihf-xrgb.cli, gbihf-xrgb.dol+cli and gbihf-xrgb.gci. Transcribed below for reference.

--format=custom-m,offset=0,scaled-size=0:0
--scan-mode=non-interlace

Important: Misuse will result in the wrong aspect ratio.

High-definition televisions

Nintendo GameCube Component Video Cable

These settings provide a 5.5× scaled image in a 16:9 1080i60 (27MHz÷800÷1125) video output.

Included as gbihf-cmpv.cli, gbihf-cmpv.dol+cli and gbihf-cmpv.gci. Transcribed below for reference.

GBIHF-CMPV.png
--colorspace=ycc709
--format=hd60,offset=-1
--scan-mode=non-progressive

Change the Aspect Ratio on the television to Just Scan. The picture was shifted left to compensate for lesser clone products.

Wii Component Cable

These settings provide a 5.5× scaled image in a 16:9 1080i60 (27MHz÷800÷1125) video output. They require a GCDual or EON GCHD Mk-II with firmware v2.4c.2 or later.
A reconstruction filter may be necessary as an add-on for proper display. The GCDual and EON GCHD Mk-II lack such a filter.

For firmware v2.4c.2: In the GCVideo menu under "Other settings", set "Pixel Average" to Off and "Mode Output" to dYUV.
For firmware v3.0c or later: In the GCVideo menu under "Advanced settings", set "Chroma Interpolation" and "Fix resolution" to Off.

Included as gbihf-cmpv.cli, gbihf-cmpv.dol+cli and gbihf-cmpv.gci. Transcribed below for reference.

--colorspace=ycc709
--format=hd60,offset=-1
--scan-mode=non-progressive

Change the Aspect Ratio on the television to Just Scan.

GCVideo-DVI v3.0 and later

These settings provide a 4× scaled image in a 4:3 960×720i60.08 video output.

In the GCVideo menu under "Advanced settings", set "Chroma Interpolation" to Off, and "Digital color format" to RGB-F, RGB-L or YC444.

Included as gbihf-gcdv-v3.cli, gbihf-gcdv-v3.dol+cli and gbihf-gcdv-v3.gci. Transcribed below for reference.

GBIHF-GCDV-v3.png
--format=hd60
--scan-mode=interlace,clock2x,size2x

Change the Aspect Ratio on the television to 4:3. If the correct aspect ratio cannot be realized, or the output isn't compatible, consider other options.

Video capture devices

These settings provide a 2× scaled image in a 3:2 480p59.94 (27MHz÷858÷525) video output.

If you're using GCVideo-DVI, under "Advanced settings", set "Digital color format" to YC422.

--format=ntsc,offset=0,scaled-size=0:0
--scan-mode=progressive

FAQs

Progressive scan (720x480p)
Blanking regeneration (1440x480i)
Red + Green: Regenerated blanking interval
Green + Blue: Actual blanking interval

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 "Rumble: No" in Swiss), or holding a direction while the Game Boy Player logo is visible.

What is the default video output?

  • Analog AV Out only: 1× in 3:2 720×240p59.7276 (reported by GCVideo-DVI as 480x180p60)
    This should only be consumed by a video processor.
  • Digital AV Out: 1× in 4:3 1440×240p59.7276 (reported by GCVideo-DVI as 1056x180)
    • Progressive Scan Mode: 2.25× in 16:9 720×480p59.7276 (reported by GCVideo-DVI as 480x405p60)

Why am I seeing a double split image?

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

If line doubling is at fault, the picture may also be scrolling with a slant.

Why is my picture cut or off-center?

This is GCVideo-DVI's blanking regeneration misbehaving with unsupported video modes. In most cases, no user action is necessary with GCVideo-DVI v3.0 and later.

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 pixel doubling (--scan-mode=no-clock2x,no-size2x, or "Pixel Doubling: No" in Swiss). This will degrade video quality and disable aspect correction for 4:3 displays.

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, 2021

  • Added GC Loader 2.0.0 write support.
  • Improved GBA anti-sleep mode.

May, 2021

  • Added 4:3 border generation.

February–April, 2021

  • Added control type E² and E³.
  • Updated GBA-as-GC controller.
  • Fixed hang in AGB Aging Cartridge.

January, 2021

  • Added all devices search for GBI directory.
  • Updated GBA-as-GC controller.
  • Improved GBA multiboot support.

December, 2020

  • Added return to loader support.
  • Updated color matrices by Pokefan531.
  • Updated 3D LUTs by Pokefan531.
  • Improved system stability.
  • Improved SD card compatibility.
  • Changed default 3D LUT order to GBR.

May–June, 2020

  • Added control type E¹.
  • Added disc spin-down.
  • Added GC Loader read-only support.

April, 2020

  • Fixed Game Boy Player settings validation.
  • Removed prohibitively expensive "linear light scaling" feature accidentally restored from a backup in January, 2020.

January–March, 2020

  • Improved SD card compatibility.

November, 2019

  • Added non-integer horizontal scaling.
  • Added scaled size/offset setting.
  • Changed pixel-doubled 240p and 480i to assume 4:3.
  • Changed 480p and 960i to assume 16:9.
  • Fixed pixel-doubled left/right chroma location.

October, 2019

  • Added N64 Controller support.
  • Added GBA anti-sleep mode.
  • Added subfolder search for GBI directory.
  • Added left/right chroma location support.

August–September, 2019

  • Added Game Boy Player settings validation.
  • Fixed default SD card with bad program name.

July, 2019

  • Added SD2SP2 support.
  • Fixed hang with no SD card inserted.
  • Fixed hang upon SD card reinsertion.

June, 2019

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

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.

October–December, 2018

  • Added HD Custom video format.
  • Fixed 360p RGBcvS sync issue.

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

Extrems' Corner.org

TiKevin83 Speedruns