This is an old revision of the document!


Nintendo GameCube

The Nintendo GameCube is a console developed by Nintendo. It was released in 2001.

Nintendo Gamecube is emulated through the Dolphin emulator, which is the same emulator we use for the Nintendo Wii. Its emulation performance are stunning, and it offers several options to enhance the graphic quality of the Gamecube titles, that can be upscaled and look gorgeous, even by today's standards, if your PC can support it.

Some of the options for enhanced visual quality are available from the “Advanced System Options”. In particular you can enable a higher VIDEO RESOLUTION that will upscale the 3D models to a higher resolution, in combination with the use of HIRES TEXTURES.

This system scrapes metadata for the “gc” group(s) and loads the gc set from the currently selected theme, if available.

  • Emulator: Dolphin
  • Accepted ROM formats: .gcm, .iso, .gcz, .ciso, .wbfs, .rvz, .elf, .dol, .m3u
  • Folder: /userdata/roms/gamecube

No Nintendo GameCube emulator in Batocera needs a BIOS file to run.

Place your Nintendo GameCube ROMs in /userdata/roms/gamecube.

If you have a Riivolution patch, first create its JSON file as outlined on the Dolphin emulator page.

If wanting to play a game with Game Boy Advance Link functionality, read the following section.

This is a more complicated feature, screenshots would be helpful.

Is this available just for standalone or both libretro and standalone?

In Batocera v36 and higher, GBA (Internal) is a GAMECUBE PORT # TYPE option for port. In addition, there is an Auto e-Reader option (FIXME is this yet another controller type option or is it its own separate option?) that will attach a GBA to port 2 with one of the three e-Reader models loaded. There are different methods of connecting based on the GameCube game.

The GBA's controls are mapped to the matching physical controller, so a GBA on port 2 would be controlled by the Player 2 controller.

No Cartridge

For games like The Legend of Zelda: Four Swords Adventures, Final Fantasy Crystal Chronicles, or games that used it as an optional control like The Legend of Zelda: The Wind Waker, the GBA was connected without a cartridge inserted, and the game loads the program into memory when needed. For a game like this, you only have to set the controller type.

For Pac-Man Vs., note that the GBA is connected to Port 4. If you have less than 4 controllers connected, the GBA player will not be able to control the game.

With Cartridge

Batocera can automatically load a GBA ROM into connected GBA(s). This uses a .gbl file, similar to an .m3u playlist. The first line of the file should be the GameCube ROM's filename. Each additional line is a GBA ROM, loaded in order. If you have more GBAs connected than ROMs in the file, the last ROM will be repeated. Filenames can be a full path, or relative to their ROM folder. The GBA's save file will be synced if it exists.

In many cases, the GBA is supposed to be turned off until the GameCube game prompts you. To simulate this, hold [SELECT] & [START] on the GBA's controller while it is loading. Eventually, the logo will turn a solid color and the Nintendo logo will disappear. When the game tells you to connect the GBA, press East button (A SNES) to boot the game.

Pokémon Box (with Emerald inserted).gbl
Pokémon Box - Ruby & Sapphire (USA).rvz
Pokémon - Emerald Version (USA, Europe).7z

If controller #2 is set to GBA, then Pokémon Emerald will be loaded.

e-Reader

The e-Reader requires use of the mouse to navigate the GBA's menu and load card images (When the Auto e-Reader option is used, Player 2's analog stick will be mapped to control the mouse, and [L2] & West button (Y SNES) to left-click, [R2] & North button (X SNES) to right-click.

As an example, Animal Crossing has an e-Reader machine in the in-game post office. Use the machine, and it will prompt you to put the e-Reader in communications mode. Select Communication on the e-Reader, and continue on both. When it prompts you to scan a card, right-click on the GBA screen and select Scan e-Reader Card(s) from the menu. From here, you can select the file for the card you want to load.

For general information about the Dolphin Emulator itself, you can also visit the Dolphin Emulator page.

Dolphin configuration

Standardized features available to all cores of this emulator: gamecube.videomode, gamecube.ratio

ES setting name batocera.conf_key Description ⇒ ES option key_value
Settings that apply to all cores of this emulator
GRAPHICS BACKEND gamecube.gfxbackend Choose your graphics rendering
⇒ OpenGL OGL, Vulkan Vulkan.
RENDERING RESOLUTION gamecube.internal_resolution Improve the fidelity of 3D models (does not affect 2D sprites).
⇒ 1x native (640×528) 1, 2x 720p (1280×1056) 2, 3x 1080p (1920×1584) 3, 4x 1440p (2560×2112) 4, 5x (3200×2640) 5, 6x 4K (3840×3168) 6, 7x (4480×3696) 7, 8x 5K (5120×4224) 8.
UBERSHADERS wii.ubershaders Improve performance with Ubershaders. Ubershaders take advantage of your GPU to avoid in-game stutters as it generates shaders for the first time; this can happen when a certain special effect shows on the screen or a new model is rendered. Hybrid ubershaders are preferred, it will use the GPU accelerated ubershader if available to avoid stutter, otherwise it will fall back to traditional shader generation. Exclusive ubershaders will only use ubershaders, only activate this option if you have an extremely powerful GPU. Normally there is no downside to activating ubershaders, however it does increase the minimum requirements out of your GPU to run. On especially weak hardware, such as SBCs, ubershaders are disabled by default. They can still be manually turned on, but you may encounter more stutter if on an SBC. Skip draw is a hack that opts to take a different approach altogether: don't display the object in game if its shader hasn't compiled yet. Obviously, this can result in visual glitches, but may be the best option performance-wise if your hardware is extremely weak.; asynchronous is preferred, synchronous is more compatible.
⇒ No Ubershaders no_ubershader, Exclusive Ubershaders exclusive_ubershader, Hybrid Ubershaders hybrid_ubershader, Skip Drawing skip_draw.
PRE-CACHE SHADERS gamecube.wait_for_shaders Compile shaders on next launch of game (one time). Reduces micro-freezes.
⇒ Off (default) 0, On 1.
PERFORMANCE HACKS gamecube.perf_hacks Increase emulator performance, at the cost of accuracy/stability. Settings set to “True” with this option: Defer EFB copies to RAM DeferEFBCopies, Scaled EFB Copy EFBScaledCopy, EFB Copies EFBToTextureEnable, Skip Presenting Duplicate Frames SkipDuplicateXFBs, XFB copies XFBToTextureEnable, Force Texture Filtering ForceFiltering, Arbitrary Mipmap Detection ArbitraryMipmapDetection, Disable Copy Filter DisableCopyFilter, Force 24-Bit Color ForceTrueColor. Settings set to “False” with this option: Bounding Box BBoxEnable, Ignore Format Changes EFBEmulateFormatChanges.
⇒ Off 0, On 1.
USE PAD PROFILES gamecube.use_pad_profiles Search for custom configured joystick profiles.
⇒ Off 0, On 1.
GAMECUBE PORT 1 TYPE gamecube.dolphin_port_1_type Change what's plugged into the virtual GameCube ports. DK Bongos are a music game accessory used only for certain Donkey Kong games on the GameCube. GBA (Internal) refers to the use of emulated Game Boy Advance players for games which utilized the Game Boy Advance player adapter, available since Batocera v36.
⇒ None 0, Standard Controller 6, GameCube Adapter for Wii U 12, Steering Wheel 8, Dance Mat 9, DK Bongos 10, Keyboard 7, GBA (Internal) 13.
GAMECUBE PORT 2 TYPE gamecube.dolphin_port_2_type
⇒ None 0, Standard Controller 6, GameCube Adapter for Wii U 12, Steering Wheel 8, Dance Mat 9, DK Bongos 10, Keyboard 7, GBA (Internal) 13.
GAMECUBE PORT 3 TYPE gamecube.dolphin_port_3_type
⇒ None 0, Standard Controller 6, GameCube Adapter for Wii U 12, Steering Wheel 8, Dance Mat 9, DK Bongos 10, Keyboard 7, GBA (Internal) 13.
GAMECUBE PORT 4 TYPE gamecube.dolphin_port_4_type
⇒ None 0, Standard Controller 6, GameCube Adapter for Wii U 12, Steering Wheel 8, Dance Mat 9, DK Bongos 10, Keyboard 7, GBA (Internal) 13.
ANISOTROPIC FILTERING gamecube.anisotropic_filtering Improves clarity of distant textures.
⇒ Off 0, 2x 1, 4x 2, 8x 3, 16x 4.
DUAL CORE MODE gamecube.dual_core Usually not much faster than single core mode. Decreases stability.
⇒ Off 0, On 1.
GPU SYNC gamecube.gpu_sync Speed hack for dual core mode to fix some glitches.
⇒ Off 0, On 1.
ANTI-ALIASING gamecube.antialiasing Enhancement. Smooth out jagged edges on 3D object polygons.
⇒ Off 0, 2x 2, 4x 4, 8x 8.
ANTI-ALIASING MODE gamecube.use_ssaa Toggle MSAA/SSAA. Depends on anti-aliasing being enabled.
⇒ MSAA (default) 0, SSAA 1.
HIRES TEXTURES gamecube.hires_textures
⇒ Off 0, On 1.
WIDESCREEN HACK (GLITCHY) gamecube.widescreen_hack Enhancement. Only works with a 16/9 ratio and bezels disabled.
⇒ Off 0, On 1.
ENABLE CHEATS gamecube.enable_cheats To use game cheats or 16/9 Aspect Ratio Fix codes
⇒ Off 0, On 1.
MEMORY MANAGEMENT UNIT gamecube.enable_mmu Required by some games.
⇒ Off 0, On 1.
FAST DISK SPEED gamecube.enable_fastdisc Speeds up disc speed to remove any loading.
⇒ Off 0, On 1.
VSYNC gamecube.vsync Fix screen tearing. CPU heavy.
⇒ Off 0, On 1.
DUALSHOCK MOTION CONTROL gamecube.dsmotion Emulate the Wii pointer with your DS4's gyroscope.
⇒ Off 0, On 1.
MOUSE AS IR WIIMOTE gamecube.mouseir Emulate the Wiimote IR control with a mouse.
⇒ Off 0, On 1.
RUMBLE gamecube.rumble To use vibration on games with Rumble mode.
⇒ Off 0, On 1.

RetroArch has its own page.

libretro: dolphin

There's nothing here to configure. Use RetroArch's Quick Menu for now.

Here are the default Nintendo GameCube's controls shown on a Batocera Retropad:

In a similar fashion to using Bluetooth passthrough for Wii controllers, you can use USB passthrough to allow Dolphin to entirely handle the GameCube controllers from your adapter.

Download the following file:

51-gcadapter.rules
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="057e", ATTRS{idProduct}=="0337", MODE="0666"

Save it as a udev rule to userdata/system/udev/rules.d/51-gcadapter.rules (there is no need to “reload” the udev rules, if you want to be sure just reboot Batocera).

Then activate “Custom Pad Profile” and select “GameCube Adapter for Wii U” in Dolphin's controller settings. Open Dolphin from the file manager, attach the Adapter, and it should become selectable.

Since v31, it's possible to create and save custom pad profiles for GameCube (Dolphin emulator)

All you need to do is to go to pads options on Dolphin emulator by pressing the F1 key from system menu on EmulationStation.

Here, you can customize and save buttons mapping, and stick calibration.

Only one profile per pad.

After that, you simply need to set the USE PAD PROFILES option (in Dolphin advanced options on EmulationStation) to TRUE and your custom profile will be loaded.

Pad profiles are saved in /userdata/system/configs/dolphin-emu/Profiles.

For more information on remapping per system, refer to the relevant section on the remapping controls per emulator page.

Your GPU might not be strong enough to calculate the caches in real-time while playing. This can be worked around by activating the PRE-CACHE SHADERS gamecube.wait_for_shaders setting, at the cost of having to wait a while on your next launch of the game (one time only).

It's still happening!

For exceptionally weak hardware, it might also be worth turning off UBERSHADERS gamecube.ubershaders altogether.

Dolphin has a great and informative wiki, usually detailing which settings may need to be altered to avoid issues in certain games. Search for your game on it here: https://wiki.dolphin-emu.org/index.php?title=Main_Page

For further troubleshooting, refer to the generic support pages.

  • systems/gamecube.1669769643.txt.gz
  • Last modified: 17 months ago
  • by atari