gopher64

gopher64 is a Nintendo 64 emulator written entirely in Rust. Designed with performance and ease of use in mind, gopher64 is built to run efficiently on laptops while maintaining readability and simplicity in its codebase.

Goals

  1. Performance: Optimized to run smoothly on laptops.
  2. Ease of Use: User-friendly interface and straightforward controls.
  3. Ease of Development: Written without macros for readability, focusing on interpreters rather than dynamic recompilers.

Building and Usage

To build and run gopher64, follow these steps:

  1. Install Rust from rust-lang.org.
  2. Clone the repository:
    git clone --recursive https://github.com/gopher64/gopher64.git
  3. Navigate to the project directory:
    cd gopher64
  4. Build the project:
    cargo build --release
  5. Run the emulator with a ROM file:
    ./target/release/gopher64 /path/to/rom.z64

Controls

Default Key Mappings

Keyboard keys are mapped according to Mupen64Plus defaults, which can be found here. Xbox-style controllers also have a default mapping.

Custom Input Profiles

To create custom input mappings:

  1. Create a new input profile:
    ./gopher64 --configure-input-profile my_profile
  2. Bind the profile to a port:
    ./gopher64 --bind-input-profile my_profile --port 1

Using Controllers

  1. List connected controllers:
    ./gopher64 --list-controllers
  2. Assign a controller to a port:
    ./gopher64 --assign-controller <controller_number> --port 1

Command-Line Options

  • --fullscreen : Run the emulator in fullscreen mode.
  • --configure-input-profile <PROFILE_NAME> : Create a new input profile.
  • --bind-input-profile <PROFILE_NAME> : Bind an input profile to a port (requires --port).
  • --list-controllers : List connected controllers.
  • --assign-controller <CONTROLLER_NUMBER> : Assign a controller to a port (requires --port).
  • --port <PORT> : Specify the port number (1-4).
  • --help : Display help information.
  • --version : Display version information.

Download

You can download gopher64 from the releases page.

Similar Projects

Rustfinity.com

Links

  1. Home
  2. Learn Rust
  3. Get Started
  4. Practice Rust
  5. Challenges
  6. Tutorials
  7. Blog
  8. Open source
  9. Learn Gleam

Socials

  1. GitHub
  2. X

Legal

  1. Privacy Policy
  2. Terms of Service