Input plugin with direct N64 controller access for raphnet adapters
Go to file
2019-12-01 18:47:47 -05:00
projects/unix Workaround against undefined SDL_PollEvents reference for windows build 2019-07-16 14:38:11 -04:00
src Make compatible with Android 2019-12-01 18:47:47 -05:00
.gitignore ignore .dll and .so files (and others) 2016-11-19 16:32:24 -05:00
COPYING initial commit 2016-11-15 22:29:53 -05:00
INSTALL initial commit 2016-11-15 22:29:53 -05:00
LICENSES initial commit 2016-11-15 22:29:53 -05:00
README.md Fix french link 2016-11-19 16:57:33 -05:00
RELEASE Version 1.1.0 2019-07-16 13:52:33 -04:00
release_src.sh rename 2016-11-19 15:19:44 -05:00
release_windows.sh add files to release 2016-11-26 01:10:13 -05:00

Input plugin with direct N64 controller access for raphnet adapters

This mupen64plus plugin uses the direct controller access feature offered by my N64 to USB adapters (versions 3 and up) to let the emulated game communicate with the controllers directly.

  • Perfect accuracy: The controller works exactly as it would on a N64 system, without any calibration or tweaking.
  • Rumble Pak and Controller Pak (mempak) support (and potentially other accesories too [not confirmed])
  • Support for other peripherals that connect to controller ports (eg: N64 mouse) [not confirmed]
  • Low latency

Project homepage

License

This project is licensed under the terms of the GNU General Public License, version 2. Source code is available on the project homepage and on GitHub.

How to use the plugin

Regardless of your operating system, you will need to install the plugin file(s) in a directory mupen64plus will search for plugins (eg: Along the other plugin files). Then, you must tell mupen64plus to use it. eg:

mupen64plus --input mupen64plus-input-raphnetraw

Where to obtain the plugin files is described below.

Linux

Please compile it from sources (howto below). This will generate mupen64plus-input-raphnetraw.so for your architecture.

Windows (32 and 64 bit)

You may use the releases distributed by raphnet in a zip file. The file contents will look like this:

mupen64plus-input-raphnetraw-windows-0.9/
mupen64plus-input-raphnetraw-windows-0.9/README.md
mupen64plus-input-raphnetraw-windows-0.9/dist_win64/
mupen64plus-input-raphnetraw-windows-0.9/dist_win64/libhidapi-0.dll
mupen64plus-input-raphnetraw-windows-0.9/dist_win64/mupen64plus-input-raphnetraw.dll
mupen64plus-input-raphnetraw-windows-0.9/dist_win32/
mupen64plus-input-raphnetraw-windows-0.9/dist_win32/libhidapi-0.dll
mupen64plus-input-raphnetraw-windows-0.9/dist_win32/mupen64plus-input-raphnetraw.dll

If you use a 64-bit version of mupen64plus, copy the files from the dist_win64 directory. For the 32-bit version, copy the files from the dist_win32 directory.

Compiling the Linux / Unix version

Prerequesites

A Linux system such as Debian with the following packages installed: (non-exhaustive list)

  • gcc
  • make
  • libhidapi-hidraw0
  • libhidapi-dev

Environment

Directory layout

The input-raphnetraw plugin requires a checkout of mupen64plus-core (for the plugin api headers).

  • ...somedir/mupen64plus-input-raphnetraw
  • ...somedir/mupen64plus-core

Compilation

$ cd .../somedir/
$ cd mupen64plus-input-raphnetraw/projects/unix
$ make all

# then, assuming all went well:
$ cp mupen64plus-input-raphnetraw.so /your/mupen64plus-plugin-directory

# or, if you passed an appropriate PREFIX to make, you can just:
$ make install

Win32/64 cross-compilation under Linux

System requirements

A Linux system such as Debian with the following packages installed: (non-exhaustive list)

  • mingw-w64
  • autotools-dev
  • autoconf
  • automake
  • libtool
  • git
  • make

Environment

Directory layout

The input-raphnetraw plugin requires a checkout of mupen64plus-core (for the plugin api headers) in the parent directory. Also, each version (32 or 64 bit) requires a matching hidapi build.

  • ...somedir/mupen64plus-input-raphnetraw
  • ...somedir/mupen64plus-core
  • ...somedir/hidapi
  • ...somedir/hidapi64

preparing the hidapi build

The buildwin32.sh and buildwin64.sh scripts assume the following:

  • For the 32-bit build an hidapi configured and compiled with --host i686-w64-mingw32 is required here: ../../../hidapi
  • For the 64-bit build an hidapi configured and compiled with --host x86_64-w64-mingw32 is required here: ../../../hidapi64

hidapi can be obtained like this:

$ cd ...somedir
$ git clone https://github.com/signal11/hidapi.git
$ git clone hidapi hidapi64

And then to compile the win32 version:

cd ...somedir/hidapi
./bootstrap
./configure --host i686-w64-mingw32
make

And the win64 version:

cd ...somedir/hidapi64
./bootstrap
./configure --host x86_64-w64-mingw32
make

Compilation

This would cross-compile the 32 and 64-bit windows versions.

$ cd .../somedir/
$ cd mupen64plus-input-raphnetraw/projects/unix

# 32-bit version
$./buildwin32.sh
$ ./buildwin64.sh