All Projects → mupen64plus → Mupen64plus Core

mupen64plus / Mupen64plus Core

Core module of the Mupen64Plus project

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Mupen64plus Core

Provenance
iOS & tvOS multi-emulator frontend, supporting various Atari, Bandai, NEC, Nintendo, Sega, SNK and Sony console systems… Get Started: https://wiki.provenance-emu.com |
Stars: ✭ 4,732 (+460%)
Mutual labels:  n64, emulation
Ryu64
A Nintendo 64 Emulator made in C#!
Stars: ✭ 36 (-95.74%)
Mutual labels:  n64, emulation
Mupen64plus Video Glide64mk2
Video plugin for Mupen64Plus 2.0 based on 10th anniversary release code from gonetz
Stars: ✭ 21 (-97.51%)
Mutual labels:  n64, emulation
mupen64plus-libretro-nx
Improved mupen64plus libretro core reimplementation
Stars: ✭ 139 (-83.55%)
Mutual labels:  emulation, n64
mupen64plus-rsp-cxd4
Exemplary MSP communications simulator using a normalized VU.
Stars: ✭ 26 (-96.92%)
Mutual labels:  emulation, n64
n64
experimental low-level n64 emulator
Stars: ✭ 94 (-88.88%)
Mutual labels:  emulation, n64
angrylion-rdp-plus
A low-level N64 video emulation plugin, based on the pixel-perfect angrylion RDP plugin with some improvements.
Stars: ✭ 143 (-83.08%)
Mutual labels:  emulation, n64
mupen64plus-input-sdl
Input plugin for Mupen64Plus v2.0 project using SDL. This is derived from the original Mupen64 blight_input plugin.
Stars: ✭ 36 (-95.74%)
Mutual labels:  emulation, n64
Mupen64plus Video Rice
Video plugin for the Mupen64Plus v2.0 project, using OpenGL. This plugin is based on the RiceVideoLinux plugin from earlier versions of Mupen64Plus.
Stars: ✭ 26 (-96.92%)
Mutual labels:  n64, emulation
Cartreader
A shield for the Arduino Mega that can back up video game cartridges.
Stars: ✭ 590 (-30.18%)
Mutual labels:  n64
Shadow
Shadow is a unique discrete-event network simulator that runs real applications like Tor, and distributed systems of thousands of nodes on a single machine. Shadow combines the accuracy of emulation with the efficiency and control of simulation, achieving the best of both approaches.
Stars: ✭ 769 (-8.99%)
Mutual labels:  emulation
Pcsx2
PCSX2 - The Playstation 2 Emulator
Stars: ✭ 5,830 (+589.94%)
Mutual labels:  emulation
Cemu
Third-party TI-84 Plus CE / TI-83 Premium CE emulator, focused on developer features
Stars: ✭ 593 (-29.82%)
Mutual labels:  emulation
Citra
A Nintendo 3DS Emulator
Stars: ✭ 7,009 (+729.47%)
Mutual labels:  emulation
Jsnes
A JavaScript NES emulator.
Stars: ✭ 5,354 (+533.61%)
Mutual labels:  emulation
Ludus
A pluggable NES emulator
Stars: ✭ 16 (-98.11%)
Mutual labels:  emulation
Bsnes
bsnes is a Super Nintendo (SNES) emulator focused on performance, features, and ease of use.
Stars: ✭ 526 (-37.75%)
Mutual labels:  emulation
Xenia
Xbox 360 Emulator Research Project
Stars: ✭ 5,404 (+539.53%)
Mutual labels:  emulation
Mm
Majora's Mask scripts, with some Ocarina of Time on the side.
Stars: ✭ 24 (-97.16%)
Mutual labels:  n64
Giovanni
A Gameboy Emulator for the Apple Watch
Stars: ✭ 823 (-2.6%)
Mutual labels:  emulation

Mupen64Plus-Core README

TravisCI Build Status Coverity Scan Build Status AppVeyor Build status

More documentation can be found on the Mupen64Plus website and you can find a more complete README file on the wiki.

Mupen64Plus is based off of mupen64, originally created by Hacktarux. This package contains only the Mupen64Plus core library. For a fully functional emulator, the user must also install graphics, sound, input, and RSP plugins, as well as a user interface program (called a front-end).

README Sections

  1. Requirements and Prerequisites - Binary - Source
  2. Building From Source
  3. Installation - Binary - Source - Custom Installation Path
  4. Key Commands In Emulator

1. Requirements and Pre-requisites

Binary Package Requirements

  • SDL 1.2 or 2.0
  • libpng
  • freetype 2
  • zlib

Source Build Requirements

In addition to the binary libraries, the following packages are required if you build Mupen64Plus from source:

  • GNU C and C++ compiler, libraries, and headers
  • GNU make
  • Nasm
  • Development packages for all the libraries above

2. Building From Source

If you downloaded the binary distribution of Mupen64Plus, skip to the Installation process (Section 3). To build the source distribution, unzip and cd into the projects/unix directory, then build using make:

 $ unzip mupen64plus-core-x-y-z-src.zip
 $ cd mupen64plus-core-x-y-z-src/projects/unix
 $ make all

Type make by itself to view all available build options:

 $ make
 Mupen64Plus-core makefile.
   Targets:
     all            == Build Mupen64Plus core library
     clean          == remove object files
     install        == Install Mupen64Plus core library
     uninstall      == Uninstall Mupen64Plus core library
   Build Options:
     BITS=32        == build 32-bit binaries on 64-bit machine
     LIRC=1         == enable LIRC support
     NO_ASM=1       == build without assembly (no dynamic recompiler or MMX/SSE code)
     USE_GLES=1     == build against GLESv2 instead of OpenGL
     VC=1           == build against Broadcom Videocore GLESv2
     NEON=1         == (ARM only) build for hard floating point environments
     VFP_HARD=1     == (ARM only) full hardware floating point ABI
     SHAREDIR=path  == extra path to search for shared data files
     OPTFLAGS=flag  == compiler optimization (default: -O3 -flto)
     WARNFLAGS=flag == compiler warning levels (default: -Wall)
     PIC=(1|0)      == Force enable/disable of position independent code
     OSD=(1|0)      == Enable/disable build of OpenGL On-screen display
     NEW_DYNAREC=1  == Replace dynamic recompiler with Ari64's experimental dynarec
     OPENCV=1       == Enable OpenCV support
     POSTFIX=name   == String added to the name of the the build (default: '')
   Install Options:
     PREFIX=path    == install/uninstall prefix (default: /usr/local/)
     SHAREDIR=path  == path to install shared data files (default: PREFIX/share/mupen64plus)
     LIBDIR=path    == path to install core library (default: PREFIX/lib)
     INCDIR=path    == path to install core header files (default: PREFIX/include/mupen64plus)
     DESTDIR=path   == path to prepend to all installation paths (only for packagers)
   Debugging Options:
     PROFILE=1      == build gprof instrumentation into binaries for profiling
     DEBUG=1        == add debugging symbols to binaries
     DEBUGGER=1     == build debugger API into core for front-ends.  runs slower.
     DBG_CORE=1     == print debugging info in r4300 core
     DBG_COUNT=1    == print R4300 instruction count totals (64-bit dynarec only)
     DBG_COMPARE=1  == enable core-synchronized r4300 debugging
     DBG_TIMING=1   == print timing data
     DBG_PROFILE=1  == dump profiling data for r4300 dynarec to data file
     V=1            == show verbose compiler output

3. Installation

Binary Distribution

To install the binary distribution of Mupen64Plus, su to root and run the provided install.sh script:

 $ su
 # ./install.sh
 # exit
 $

The install script will copy the executable to /usr/local/bin and a directory called /usr/local/share/mupen64plus will be created to hold plugins and other files used by mupen64plus.

NOTE: By default, install.sh uses /usr/local for the install prefix. Although the user can specify an alternate prefix to install.sh at the commandline, the mupen64plus binary was compiled to look for the install directory in /usr/local, so specifying an alternate prefix to install.sh will cause problems (the mupen64plus front-end application will not find the directory containing the core library) unless the directory to which you install it is known by your dynamic library loader (ie, included in /etc/ld.conf.so)

If you want to use a prefix other than /usr/local, you may also download the source code package and build with the PREFIX option (see below).

Source Distribution

After building mupen64plus and all plugins, su to root and type make install to install Mupen64Plus. The install process will copy the executable to $PREFIX/bin and a directory called $PREFIX/share/mupen64plus will be created to hold plugins and other files used by mupen64plus. By default, PREFIX is set to /usr/local. This can be changed by passing the PREFIX option to make.

NOTE: You must pass the prefix, when building AND installing. For example, to install mupen64plus to /usr, do this:

 $ make PREFIX=/usr all
 $ sudo make PREFIX=/usr install
 $

Custom Installation Paths

You may customize the instalation of Mupen64Plus by using the options for the install.sh script:

Usage: install.sh [PREFIX] [SHAREDIR] [BINDIR] [LIBDIR] [MANDIR]

PREFIX - installation directories prefix (default: /usr/local) SHAREDIR - path to Mupen64Plus shared data files (default: PREFIX/share/mupen64plus) BINDIR - path to Mupen64Plus binary program files (default: $PREFIX/bin) LIBDIR - path to Mupen64Plus plugin files (default: $SHAREDIR/plugins) MANDIR - path to manual files (default: $PREFIX/man/man1)

You must pass the same options to the uninstall.sh script when uninstalling in order to remove all of the Mupen64Plus files.

You should install the Mupen64Plus plugins (libraries) in their own folder. If you install them in a common directory such as /usr/lib and then later uninstall them with sudo uninstall.sh LIBDIR=/usr/lib, it will delete all system libraries.

If you install with SHAREDIR in a place other than /usr/local/share/mupen64plus or /usr/share/mupen64plus, and BINDIR is not the same as SHAREDIR, then users will have to run Mupen64Plus with the --installdir= option, otherwise they will get an error. The mupen64plus executable looks in up to 5 different directories in order to find the Shared Data Directory. The order in which the directories are searched is:

  • directory specified on command line with --installdir
  • same directory as the mupen64plus binary
  • /usr/local/share/mupen64plus
  • /usr/share/mupen64plus
  • current working directory

If you choose to install the plugins in a non-standard location (someplace other than $SHAREDIR/plugins), then you must set the PluginDirectory parameter in the mupen64plus.conf config file to the directory path in which the plugins have been installed.

4. Key Commands In Emulator

The keys or joystick/mouse inputs which will be mapped to the N64 controller for playing the games are determined by the input plugin. The emulator core also supports several key commands during emulation, which may be configured by editing the ~/.config/mupen64plus/mupen64plus.cfg file. They are:

  • Escape (Esc) Quit the emulator
  • 0-9 Select virtual 'slot' for save/load state (F5 and F7) commands
  • F5 Save emulator state
  • F7 Load emulator state
  • F9 Reset emulator
  • F10 Slow down emulator by 5%
  • F11 Speed up emulator by 5%
  • F12 Take screenshot
  • Alt-Enter Toggle between windowed and fullscreen (may not be supported by all video plugins)
  • p or P Pause on/off
  • m or M Mute/unmute sound
  • g or G Press "Game Shark" button (only if cheats are enabled)
  • / or ? Single frame advance while paused
  • F Fast Forward (playback at 250% normal speed while F key is pressed)
  • [ Decrease volume
  • ] Increase volume
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].