Skip to content

An input plugin for Mupen64Plus which lets you use your Wii U/Switch GameCube controller adapter

License

Notifications You must be signed in to change notification settings

amatho/mupen64plus-input-gca

Repository files navigation

mupen64plus-input-gca

An input plugin for Mupen64Plus using the GameCube controller adapter for Wii U and Switch.

Installing

Note: There are currently only builds for 64-bit Mupen64Plus.

  1. Follow the first section of this Dolphin guide to set up your adapter (use Zadig if you are on Windows).

  2. Download the plugin ZIP from the latest release.

  3. Extract the plugin into your Mupen64Plus folder.

Usage

Select the plugin in your Mupen64Plus frontend and connect your adapter, and you are good to go!

Configuration

After the plugin has been used at least once, a file will be generated in your Mupen64Plus user configuration folder named mupen64plus-input-gca.toml. The default location of the Mupen64Plus user configuration folder is

  • C:\Users\<username>\AppData\Roaming\Mupen64Plus\, on Windows
  • $XDG_CONFIG_HOME/mupen64plus/ or $HOME/.config/mupen64plus/, on Linux
  • $HOME/Library/Application Support/Mupen64Plus/, on macOS.

This file contains the configuration for the plugin. Changes in the configuration will be loaded the next time you start your frontend.

You can configure the following:

  • Deadzones for the control stick and C-stick.
  • Control stick sensitivity.
    • Note that the default sensitivity setting is based on the controllers I had available when testing. All GameCube controllers are different, so you might need to change this to something that works for you. Having the sensitivity too low will prevent you from reaching the maximum input with the stick, and having it too high will make it difficult to control.
  • Threshold for the trigger buttons (L and R).
    • This controls how far the triggers need to be pressed before an input is registered.
  • The controller mapping between the GameCube controller and the N64 buttons.

The default controller mapping is what you would expect, except for:

  • Y is C-button left
  • X is C-button right
  • L and Z are swapped (GC L is N64 Z and GC Z is N64 L)

Building

Build requirements:

  • Cargo

To build the project:

$ git clone https://github.com/amatho/mupen64plus-input-gca
$ cd mupen64plus-input-gca
$ cargo build --release

The compiled plugin will be at target/release/mupen64plus_input_gca.(dll|dylib|so).

Note: The compiled dynamic library will have underscores in it's name, but m64p (linked above) will only look for plugins with hyphens. Just rename the file and m64p will find it.

bindgen is used to generate the Rust bindings for the Mupen64Plus API found in src/ffi/. See the bindgen User Guide for installation instructions, and this section of the guide for requirements for running bindgen.

Contributing

Feel free to open issues or pull requests.

License

Licensed under the MIT license, see LICENSE. For external code in extern (headers from the Mupen64Plus-Core API), see LICENSES.

About

An input plugin for Mupen64Plus which lets you use your Wii U/Switch GameCube controller adapter

Topics

Resources

License

Stars

Watchers

Forks

Languages