Import of the old mupen64plus subversion aka pre-2.0 mupen64plus.
Go to file
Richard Goedeken 3a51bdf15d bugfix issue #52: merged final pj64 load state patch from olejl77. tested against provided sm64 state file, and it only works with the patch 2009-10-02 03:21:07 +00:00
blight_input fixed minor makefile issues #234 and 236 2009-06-08 20:57:53 +00:00
config Updated a bunch of games in RiceVideoLinux.ini file - without ScreenUpdateSetting forced to 1, many games have polygon flickering artifacts 2009-03-10 02:46:01 +00:00
debugger bugfix issue #259: define empty macro and get_recompiled_*() functions in debugger to avoid compilation errors with NO_ASM=1 DBG=1. From sven.eckelmann@gmx.de 2009-09-29 03:52:30 +00:00
doc Fixed license header issue with gtk debugger by switching to our standard template. Moved licenses to /doc. Removed only demo roms and replaced with marshall's Mupen64Plus Demo rom. Need to contact him for source and to finalized licensing, planning for the rom to be GPLed. 2008-10-29 21:50:34 +00:00
dummy_audio More build system updates. glN64 fails to link currently. 2008-12-06 13:19:31 +00:00
dummy_input Fix dummy input license issues. 2008-10-11 04:04:57 +00:00
dummy_video More build system updates. glN64 fails to link currently. 2008-12-06 13:19:31 +00:00
fonts moved the bitstream font license file from fonts/ into doc/ and updated the LICENSES file 2008-10-18 14:37:54 +00:00
glN64 fixed minor makefile issues #234 and 236 2009-06-08 20:57:53 +00:00
glide64 Removed some non-ascii characters, translated some messages from French to English. From sven.eckelmann@gmx.de 2009-09-30 14:10:11 +00:00
icons merged r0982-cheats branch 2009-03-28 14:40:14 +00:00
jttl_audio bugfix issue #269 jttl_audio segfaults on exit due to incorrectly ordered shutdown code. From Muellhierrein 2009-09-29 01:40:33 +00:00
lang Removed defunct and unlicensed VCR functions, and language files. FSF address fixes. 2008-08-19 04:28:04 +00:00
main bugfix issue #52: merged final pj64 load state patch from olejl77. tested against provided sm64 state file, and it only works with the patch 2009-10-02 03:21:07 +00:00
memory Merged patch from olejl77 in issue #52, comment #12, with a few small changes 2009-01-25 13:12:03 +00:00
mupen64_input modified the version number handling in the makefiles. The fixes the problem of build failures from exported source trees and compiles in the version number given by VER= when release.mk is used 2008-10-18 16:36:44 +00:00
opengl Minor C/C++ fix and use of mainmessage to show screenshot taken in GUI. 2008-10-31 17:10:01 +00:00
r4300 bugfix issue #268 - instead of setting linker flags for executable heap, use aligned malloc and mprotect to set executable status for emitted machine code from dynamic recompiler. Written by Sven Eckelmann and Richard Goedeken 2009-10-02 02:57:25 +00:00
rice_video bugfix issue #275 - disable rice video debugger; it is not necessary for users and causes a slowdown. patch from Sven Eckelmann 2009-10-02 03:07:32 +00:00
roms Added Mupen64Plus Demo by Marshallh source code and binary assets. Also removed unused n64cart.xpm icon. Should satisfy any demo rom license issues. Only issues left are glN64 and some icons in glide64. 2008-10-30 06:01:01 +00:00
rsp_hle Removed some non-ascii characters, translated some messages from French to English. From sven.eckelmann@gmx.de 2009-09-30 14:10:11 +00:00
tools Licensing changes for Debian inclusion (wrong FSF addres, forgot to include copy of LGPL). Also issue 158. 2008-10-11 05:51:39 +00:00
translations fixed spelling errors in issues 240 2009-06-09 15:35:16 +00:00
z64 Fix z64 for 64-bit builds 2009-01-18 18:42:01 +00:00
LICENSES replaced glide64 icons with new ones derived from the GPL2-licensed Gnome SVG icons, to resolve issue 239 2009-06-09 17:34:24 +00:00
Makefile bugfix issue #268 - instead of setting linker flags for executable heap, use aligned malloc and mprotect to set executable status for emitted machine code from dynamic recompiler. Written by Sven Eckelmann and Richard Goedeken 2009-10-02 02:57:25 +00:00
README Removed old yasm reference since we removed dependency. 2008-10-11 02:47:48 +00:00
RELEASE fixed spelling errors in issues 240 2009-06-09 15:35:16 +00:00
TODO two fast commits 2008-09-02 15:56:38 +00:00
configure Auria's patch for lib testing in configure 2009-04-10 00:05:44 +00:00
install.sh merged r0982-cheats branch 2009-03-28 14:40:14 +00:00
mupen64plus.cht merged r0982-cheats branch 2009-03-28 14:40:14 +00:00
mupen64plus.desktop.in Fix up .desktop file. Mupen64Plus is not a Qt application only. Pass install dir on command line, fixes installs in non-standard locations. 2009-04-12 06:53:41 +00:00
mupen64plus.ini Added Mupen64Plus Demo by Marshallh source code and binary assets. Also removed unused n64cart.xpm icon. Should satisfy any demo rom license issues. Only issues left are glN64 and some icons in glide64. 2008-10-30 06:01:01 +00:00
pre.mk issue #260: added detection of many CPU architectures in pre.mk. From sven.eckelmann@gmx.de 2009-09-29 03:47:31 +00:00
pre.mk.win32 Fix win32ism 2008-12-06 14:43:49 +00:00
release.mk Updated release.mk according to all the changes over the last few months, and to create .tar.gz files instead of .zip 2009-01-04 00:52:19 +00:00
uninstall.sh fixed 2 bugs in uninstall.sh: correctly set the APPLICATIONSDIR (/usr/local/share/applications), and don't fail the script if rmdir fails to remove this dir during uninstall 2009-01-03 23:27:27 +00:00
version.win32.h Merge win32 branch 2008-09-01 12:44:16 +00:00

README

Mupen64Plus README
------------------

The most current version of this README and more documentation can be found on the Mupen64Plus wiki:

http://code.google.com/p/mupen64plus/wiki/README

Mupen64Plus is based off of mupen64, originally created by Hacktarux. The Mupen64Plus package contains the mupen64 emulator program (renamed mupen64plus) plus graphics, sound, input, and RSP plugins.

README Sections
  1. Requirements for building or running Mupen64Plus
  2. Building From Source
  3. Installation
  4. Multi-user Support
  5. Key Commands In Emulator
  6. Known Issues

1. Requirements and Pre-requisites
----------------------------------

*Binary Package Requirements*

  - GTK2 libraries (unless built from source with GUI=NONE - see note)
  - SDL 1.2
  - SDL_ttf
  - 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
  - Development packages for all the libraries above
  - libsamplerate (aka Secret Rabbit Code)

Most of these pre-requisites are installed by default, but some are more uncommon. Here is an example for adding the 'SDL_ttf' development packages on Fedora systems:

  # yum install SDL_ttf SDL_ttf-devel

And on Debian systems: 

  # apt-get install libsdl-ttf2.0-0 libsdl-ttf2.0-dev

There are also a number of packages required for specific options: 

  - libsamplerate (aka Secret Rabbit Code for higher quality audio) 
  - binutils-dev (dis-asm.h for debugger) 
  - Qt4 libraries and headers (for Qt4 GUI)

2. Building From Source
-----------------------

If you downloaded the binary distribution of Mupen64Plus, skip to the Installation section. To build the source distribution, unzip and cd into the source directory, then build using make:

 $ unzip Mupen64Plus-x-y-z-src.zip
 $ cd Mupen64Plus-x-y-z-src
 $ make all

Type 'make' by itself to view all available build options:

 $ make
 Mupen64Plus makefile. 
   Targets:
     all           == Build Mupen64Plus and all plugins
     clean         == remove object files
     rebuild       == clean and re-build all
     install       == Install Mupen64Plus and all plugins
     uninstall     == Uninstall Mupen64Plus and all plugins
   Options:
     BITS=32       == build 32-bit binaries on 64-bit machine
     LIRC=1        == enable LIRC support
     NO_RESAMP=1   == disable libsamplerate support in jttl_audio
     NO_ASM=1      == build without assembly (no dynamic recompiler or MMX/SSE code)
     GUI=NONE      == build without GUI support
     GUI=GTK2      == build GTK2 GUI support (default)
     GUI=QT4       == build QT4 GUI support
   Install Options:
     PREFIX=path   == install/uninstall prefix (default: /usr/local/)
     SHAREDIR=path == path to install shared data (default: PREFIX/share/mupen64plus/)
     BINDIR=path   == path to install mupen64plus binary (default: PREFIX/bin/)
     LIBDIR=path   == path to install plugin libs (default: SHAREDIR/plugins/)
     MANDIR=path   == path to install manual files (default: PREFIX/man/man1/)
   Debugging Options:
     PROFILE=1     == build gprof instrumentation into binaries for profiling
     DBGSYM=1      == add debugging symbols to binaries
     DBG=1         == build graphical debugger
     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_PROFILE=1 == dump profiling data for r4300 dynarec to data file

Previous to version 1.3, building mupen64 built two programs: mupen64 and mupen64_nogui. mupen64 had a gtk graphical frontend including a rom browser. mupen64_nogui contained no graphical frontend and all options were specified via the commandline. As of version 1.3, the mupen64 and mupen64_nogui codebases have been combined. Now, building mupen64plus results in one executable called mupen64plus that can either be run with a gui (default) or without a gui, by specifying --nogui at the commandline. For backwards compatability, if a symbolic link to the mupen64plus executable called mupen64plus_nogui (or mupen64_nogui) is created, running the mupen64plus_nogui symlink is equivalent to running mupen64plus with the --nogui flag.

NOTE: If you want to build a nogui-only version of mupen64plus, i.e. without gtk+ dependencies, pass the GUI=NONE option to make, like this:

 $ make GUI=NONE all

Also note, that this only disables gtk+ dependencies where avaliable. Currently (August, 2008) some plugins such as rice video and glide64 must be built with gtk. This is a known issue and being addressed.

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 (mupen64plus will not find the install directory). If you want to use a prefix other than /usr/local, you will have to download the source 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
 $ su
 # make PREFIX=/usr install
 # exit
 $

4. Multi-user Support
---------------------

As of version 1.3, Mupen64Plus now has support for multi-user environments.

The mupen64plus program will look for user configuration files in a .mupen64plus directory in the user's home directory. If the directory does not exist, it will be created and a default mupen64plus.conf file will be written to that directory on exit. If desired, an alternate config directory can be specified using the --configdir commandline option.

By default, the mupen64plus program will look for plugins, icons, and language translation files in the install directory $PREFIX/share/mupen64plus (see Installation section for details). If this directory does not exist, mupen64plus will try to use the current working directory. An alternate installation directory can be specified using the --installdir commandline option.

Run 'mupen64plus --help' for a complete list of commandline options:

 $ mupen64plus --help
Usage: mupen64plus [parameter(s)] [romfile]

Parameters:
    --nogui               : do not display GUI.
    --noask               : do not prompt user if rom file is hacked or a bad dump.
    --noosd               : disable onscreen display.
    --fullscreen          : turn fullscreen mode on.
    --romnumber (number)  : specify which rom in romfile, if multirom archive.
    --gfx (plugin-file)   : use gfx plugin given by (path)
    --audio (plugin-file) : use audio plugin given by (path)
    --input (plugin-file) : use input plugin given by (path)
    --rsp (plugin-file)   : use rsp plugin given by (path)
    --emumode (mode)      : set emu mode to: 0=Interpreter 1=DynaRec 2=Pure Interpreter
    --sshotdir (dir)      : set screenshot directory to (dir)
    --configdir (dir)     : force config dir (must contain mupen64plus.conf)
    --installdir (dir)    : force install dir (place to look for plugins, icons, lang, etc)
    --testshots (list)    : take screenshots at frames given in comma-separated (list), then quit
    -h, --help            : see this help message

5. 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 are fixed and cannot be changed.  They are:

   Escape == 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)
    Pause == Pause on/off
   m or M == Mute/unmute sound
   / or ? == single frame advance while paused
        F == Fast Forward (playback at 250% normal speed while F key is pressed)
        [ == Decrease volume
        ] == Increase volume


6. Known Issues
-----------------------
As of March 2008, the RiceVideoLinux plugin may be unstable with users of the open source drivers for an ATI Radeon graphics adapter when fog is enabled.  If you have are using the open source Radeon driver, you should set the "EnableFog" value in RiceVideo.cfg to 0.