Game Boy Interface/Speedrunning Edition

From GC-Forever Wiki
Jump to: navigation, search
Game Boy Interface
Information
Author(s) Extrems
Type Utility
Version Rolling release
Licence Freeware
Links
Main download
Extra download
Website
Discussion
Source

Formerly the (ultra-)low latency version, Game Boy Interface Speedrunning Edition (GBISR) features a simplified video renderer, and aims to meet the needs of most speedrunning communities.

Contents

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)
C Stick Down Toggle input viewer
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)
C Stick Down Toggle input viewer

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

--offset=<x:y>
Set offset (default: 0).
--zoom=<x:y>
Set zoom (default: 2.0).
--rotate=<0-359>
Set rotation (default: 0).
--poll=<0-11>
Set controller polling rate.
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: 75).
--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).
--overlay=<path>, --no-overlay
Load texture palette (default: frame-srgb.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).
--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 (default: no).
--lut3d-order=<rgb|gbr|bgr>
Specify lookup table order (default: rgb).
--scaler=<nearest|bilinear|oversample|box>
Set image scaling filter (default: nearest).
--matrix=<identity|gba|gbc|gbi|nds|palm|psp|vba>
Set color matrix (default: identity).
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).
--gamma=<even[:odd]>
Set gamma correction (default: 1.0).
--contrast=<red[:green[:blue]]>
Set gain (default: 1.0).
--brightness=<red[:green[:blue]]>
Set lift (default: 0.0).
--blend=<value>
Set alpha blending (default: 1.0).
--background=<#rrggbb>
Set background color (default: #000000).
--vfilter=<middle[:lower[:upper]]>
Set vertical filter coefficients (default: 1.0).
--volume=<left[:right]>
Set audio gain (default: 0.75).
--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.
--format=<[ntsc|pal|pal-m|ntsc-50|pal-60|custom|custom-m][,offset=<x:y>][,scaled-size=<w:h>][,size=<w:h>]>
Set video format. The default is the Video Mode or Progressive Scan Mode system setting (ntsc, pal-60, pal-m, or custom).
offset=<x:y>
Set screen position. The default is the Screen Position system setting (-32 to +32).
scaled-size=<w:h>
Set screen size (default: auto).
size=<w:h>
Set internal resolution (default: 640:480).
--scan-mode=<[interlace|quasi-interlace|non-interlace|progressive][,clock2x|no-clock2x][,size2x|no-size2x]>
Set scan mode. The default is the Progressive Scan Mode system setting (non-interlace or progressive).
interlace: 15kHz interlace
quasi-interlace: 15kHz segmented frame
non-interlace: 15kHz progressive
progressive: 31kHz 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 Component Video Cable.
size2x, no-size2x
Enable 2x video oversampling (default: no). Enabling halves the refresh rate.
This only works with the Component Video Cable.
--osd-input[=<x:y>], --no-osd-input
Show input viewer (default: no). Defaults to 0:-64 if not specified.
--usb, --no-usb
Enable USB Gecko features (default: yes).
--enhance, --no-enhance
Enable Game Boy Player enhancements (default: no). Enabling this option is not recommended.
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 are using an EverDrive, make sure to turn off "Quick Boot" in the options, or the enhancements may not work.
<path>
Load Game Boy Advance multiboot ROM. Using this option is not recommended.
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.

Datapath VisionRGB

Using AD9887A.

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.

Mimicking

Game Boy Interface (ultra-low latency)

--delay-reset=0
--delay-video=0
--no-overlay
--format=custom,scaled-size=528:320,size=480:320

Game Boy Player Start-up Disc (60Hz)

Included as gbisr.cli.example.

--delay-video=2
--contrast=.78125
--vfilter=.5:.25:.25
--sound=analog=.000148021979839541018009185791015625:.00029604395967908203601837158203125:.000148021979839541018009185791015625:-1.965293407440185546875:.965885460376739501953125
--format=ntsc,scaled-size=666:448,size=608:448
--scan-mode=interlace
--enhance

Game Boy Player Start-up Disc (50Hz)

--delay-reset=65
--delay-video=2
--contrast=.78125
--vfilter=.5:.25:.25
--sound=analog=.000148021979839541018009185791015625:.00029604395967908203601837158203125:.000148021979839541018009185791015625:-1.965293407440185546875:.965885460376739501953125
--format=pal,scaled-size=670:530,size=608:448
--scan-mode=interlace
--enhance

Nintendo 3DS Virtual Console

F-Zero Maximum Velocity, Fire Emblem: The Sacred Stones, Mario vs. Donkey Kong and The Legend of Zelda: The Minish Cap
--contrast=.7
--blend=.75
Kirby & The Amazing Mirror
--contrast=.6
--blend=.5625
Mario Kart: Super Circuit
--contrast=.65
--blend=.75
Metroid Fusion
--contrast=.7
--blend=.5625
Wario Land 4 and WarioWare, Inc.: Mega Microgame$
--contrast=.65
--blend=.5625
Yoshi's Island: Super Mario Advance 3
--contrast=.6
--blend=.5

Video optimization

Datapath VisionRGB (Component Video Cable)

--vfilter=.5:.5:.0:.5:.0:.5
--format=custom,offset=0,scaled-size=0
--scan-mode=non-interlace,clock2x
  • Resolution and Refresh
    • Width: 320
    • Height: 240
    • Vertical Refresh: 119.45
  • Video Adjustments
    • Horizontal Position: 85
    • Horizontal Size: 433
    • Phase: 27
    • Vertical Position: 18
    • Black Level: 8
  • Cropping
    • Top: 40
    • Left: 40
    • Width: 240
    • Height: 160
  • Color Adjustments
    • Brightness: 32
    • Contrast: 128
    • Colour Domain: YUV (601)
    • Colour Balance
      • All Colors
        • Brightness: 32
        • Contrast: 128
      • Red
        • Brightness: 158
        • Contrast: 158
      • Green
        • Brightness: 170
        • Contrast: 170
      • Blue
        • Brightness: 152
        • Contrast: 152

Open Source Scan Converter

Included as gbisr-ossc.cli, gbisr-ossc.dol+cli and gbisr-ossc.gci. Refer to FirebrandX for configuration.

--vfilter=.5:.5:.0:.5:.0:.5
--format=custom,offset=0,scaled-size=0
--scan-mode=non-interlace

XRGB-mini Framemeister

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

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

Video output

120Hz black frame insertion

--vfilter=.5:.5:.0:.0
--scan-mode=non-interlace,clock2x

480p hybrid scanlines

--overlay=frame.tpl.gz
--gamma=2.2:1.
--scan-mode=progressive

480p simple scanlines

--vfilter=.5:.5:.0:.0
--scan-mode=progressive

Video scaling

4:3 fullscreen (Game Boy Advance)

--zoom=2.375
--scaler=oversample
--vfilter=.625:.1875:.1875
--scan-mode=interlace

4:3 fullscreen (Game Boy Color)

--zoom=3
--vfilter=.5:.25:.25
--scan-mode=interlace
--zoom=3
--vfilter=.5:.5:.0:.5:.0:.5
--scan-mode=non-interlace

16:9 fullscreen

--zoom=2:3
--format=size=568
--scan-mode=progressive

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.

Changelog

August, 2018

  • Updated color matrices by Pokefan531.

July, 2018

  • Updated GBA-as-GC controller.
  • Disabled component video DAC oversampling.

June, 2018

  • Added analog sound emulation.
  • Added Custom-M video format.
  • Added Custom interlaced video modes.
  • Merged vertical filter controls.
  • 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 Super Game Boy color palette setting.
  • Changed scan mode semantics.
  • Fixed Game Boy Player advertisement.
  • Fixed rumble protocol handshake.

April, 2018

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

March, 2018

  • Added control swapping for SNES Controllers.
  • Added framebuffer size/offset setting.
  • Replaced sample aspect ratio with scaled size.
  • Improved per-field filtering in single-buffered mode.
  • Improved multiboot implementation.
  • Improved Game Boy sound quality.
  • Improved audio rendering.
  • Reduced audio latency.
  • Fixed SD card compatibility.
  • Fixed multiboot to rumble protocol transition.
  • Disabled default multiboot.

February, 2018

  • Added background color setting.
  • Added video buffering setting.
  • Added input viewer.
  • Added color matrix from Gambatte.
  • Added mono sound mode.
  • Added 3D LUT auto-generation.
  • Added GBR/BGR LUT order support.
  • Added per-field gamma correction control.
  • Changed some argument semantics.
  • Fixed per-field settings with default video mode.
  • Fixed wiiload autoboot with tiny GBA multiboot ROMs.
  • Disabled machine checks.

January, 2018

  • Updated LUTs by Pokefan531.
  • Improved Game Boy Player driver.
  • Changed default component video modes.
  • Tweaked control type C.

September, 2017

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

August, 2017

  • Added DK Bongos support.
  • Adapted control type C for Super Mario World: Super Mario Advance 2.
  • Added control type D for The Legend of Zelda: A Link to the Past.
  • Added per-field vertical filter control.
  • Added PNG 3D LUT support.
  • Added LUTs by Pokefan531.
  • Added LUTs from the 3DS Virtual Console.
  • Improved Game Boy Player driver.

July, 2017

  • Added CLI append support.
  • Updated GBA-as-GC controller.
  • Changed reset combo behavior.

June, 2017

  • Added zoom & rotate.
  • Added reset delay.
  • Added reset combo.

April, 2017

  • Added component video DAC oversampling.
  • Added reset fade effect.
  • Added TPL overlay support.

March, 2017

  • Added rumble, disabled by default.
  • Added USB Gecko wiiload server.
  • Added Xboo Communicator.

February, 2017

  • Added volume control.
  • Added per-channel settings where possible.
  • Changed volume to 75% to mitigate clipping.

November, 2016

  • Updated GBA-as-GC controller.

September, 2016

  • Added video options.
  • Added control schemes.
  • Added polling rate setting.

May, 2016

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

April, 2016

  • Replaced GBA-as-controller with GBA-as-GC controller.

March, 2016

  • Added U+D/L+R cancelling.
  • Added GBA-as-controller support.
  • Recognized a half press of the analog triggers.

August, 2015

  • Added executable compression.
  • Added memory card distribution files.
  • Reduced coil whine.

July, 2015

  • Fixed Game Boy Player detection.