Giter Club home page Giter Club logo

gopher64's Introduction

gopher64

Usage: gopher64 [OPTIONS] [GAME]

Arguments:
  [GAME]  

Options:
  -f, --fullscreen
          
  -c, --configure-input-profile <PROFILE_NAME>
          Create a new input profile (keyboard/gamepad mappings).
  -b, --bind-input-profile <PROFILE_NAME>
          Must also specify --port. Used to bind a previously created profile to a port
  -l, --list-controllers
          Lists connected controllers which can be used in --assign-controller
  -a, --assign-controller <CONTROLLER_NUMBER>
          Must also specify --port. Used to assign a controller listed in --list-controllers to a port
  -p, --port <PORT>
          Valid values: 1-4. To be used alongside --bind-input-profile and --assign-controller
  -h, --help
          Print help
  -V, --version
          Print version

goals

  1. Performance. I want to be able to use this emulator on my laptop.
  2. Easy to use.
  3. Easy to work on. Dynamic recompilers perform well, but they are very hard to read and understand. This emulator will only have interpreters for the CPU and RSP. Additionally, it is completely written in Rust (besides Parallel-RDP), a modern programming language with a growing user base. I've tried to avoid the use of macros, which can reduce some repetitiveness in the code, but also reduce readability.

building and usage

  1. Install rust: https://www.rust-lang.org/tools/install
  2. git clone --recursive https://github.com/gopher64/gopher64.git
  3. cd gopher64
  4. cargo build --release
  5. ./target/release/gopher64 /path/to/rom.z64

controls

Keys are mapped according to mupen64plus defaults: https://mupen64plus.org/wiki/index.php/KeyboardSetup#2._Default_Key_Mappings_for_SDL-Input_Plugin. Xbox-style controllers also have a default mapping applied.

You can create you own mappings by running ./gopher64 --configure-input-profile my_profile. You then bind that profile to a port: ./gopher64 --bind-input-profile my_profile --port 1

In order to use a controller (for example, an Xbox controller), run ./gopher64 --list-controllers to get a list of attached controllers, and then assign it by doing ./gopher64 --assign-controller <controller_number> --port 1

contributing

I am very open to contributions! Please reach out to me via a GitHub issue, or via discord (loganmc10) before doing substantial work on a PR.

license

Gopher64 is licensed under the GPLv3 license. Many portions of gopher64 have been adapted from mupen64plus and/or ares. The license for mupen64plus can be found here: https://github.com/mupen64plus/mupen64plus-core/blob/master/LICENSES. The license for ares can be found here: https://github.com/ares-emulator/ares/blob/master/LICENSE.

where to download

https://github.com/gopher64/gopher64/releases

gopher64's People

Contributors

dependabot[bot] avatar loganmc10 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

quackdoc

gopher64's Issues

Feature Request: Consider Future Libretro Support

There's a chance there may be a desire to convert this emulator to a libretro core in the future and it may be beneficial to make adjustments early in development, rather than waiting until the codebase is established.

Can't manage to run the program

Hello there.
Yesterday I installed this app as a flatpak, and unfortunately it didn't open. I've tried running it from the terminal using flatpak run io.github.gopher64.gopher64, but no luck. What's strange is that there is no output, no errors, even using arguments such as --help or --version.

Of course, it could be an issue on my end, so I should probably ask first: Are there any requirements to run the program? Perhaps something should be installed on my machine?

Thank you for your attention.

My compatibility list (NTSC-U Games)

This is for people to see which games are playable.

My specs:

8 GB RAM
AMD Ryzen 5 3450U with Radeon Vega Mobile GFX
4 Cores

Common Issues (with some games I've tested)

  • Low FPS
  • Sound stuttering

A list of all games I have tested and their issues:

Game State Issues
Doom 64 (1.1) Playable Played first level without issue excluding Common Issues (Check above).
Dr. Mario 64 Playable No issues spotted when I tested.
Goldeneye 007 Playable Kinda looks smudged. Common Issues (Check above)
Mario Kart 64 Playable Common Issues (Check above)
Star Fox 64 (1.1) Playable Minor issues with effects
Super Mario 64 Playable Common Issues (Check above)
Super Smash Bros Playable DK is grey. Common Issues (Check above)

Should I move this to discussions?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.