View Page Source

Back to Page
Revision 14 (current)
Edited by Darkman425 on 9/22/2023 4:22 PM

!!!Overview

The N64 core uses Mupen64plus v2.0 built from repository. We made some changes to allow Bizhawk to act as a client for it.

The core is built from the following repositories:
*[https://bitbucket.org/richard42/mupen64plus-core/|mupen64plus-core], f17a1af74bdba65c122aada800b01ab2609cbbb5
*[https://bitbucket.org/richard42/mupen64plus-rsp-hle/|mupen64plus-rsp-hle], dee8e637cb8e53e4aa8fc99e4696fc0e8f1cb552
*[https://bitbucket.org/richard42/mupen64plus-win32-deps/|mupen64plus-win32-deps], f816fb47ab5a2db937edd857a77eb97cfec3b19c

We support these video plugins:
*[https://bitbucket.org/richard42/mupen64plus-video-rice/|mupen64plus-video-rice], e25d038c196cb7c8cd4dd71839f1994c1257b2ae
*[https://bitbucket.org/richard42/mupen64plus-video-glide64mk2/|mupen64plus-video-glide64mk2], 158331c7262590a6e896cec5d319ff0b844e49cf
*[https://bitbucket.org/wahrhaft/mupen64plus-video-glide64/|mupen64plus-video-glide64], bfe79cebbe67cd6dd09bb78dfefce052deea4cd2 (this is a third party plugin, linked on Mupen64Plus's wiki here: [https://code.google.com/p/mupen64plus/wiki/ThirdPartyPlugins]

Unfortunately with the way the Mupen64plus team decided to progress the core, old N64 video plugins are not supported and (if their source is available) would need to be updated to the new Mupen64plus API. However, this new API has a decent configuration system, allowing us to get rid of the old configuration screens and move them into the Bizhawk client. Plugin settings are now automatically saved into movie files and loaded upon playback, so you no longer need to manually change settings to try and make a movie sync.

There are no audio or input plugins. Mupen64plus simply generates audio samples which are passed to Bizhawk and are integrated into the avi recording utility. The input is handled through Bizhawk's standard input utilities and then is just passed to Mupen64plus. We made a virtual pad for the N64 controllers which mimics the old TAS Input for Mupen64.
Other things to note:

*Three rom formats are accepted: .z64, .n64, and .v64
*The emulated console can be set to have up to four controllers connected.
*Controller pak is emulated.
*Rumble and Transfer Paks are not fully supported yet.
*The emulated console has the expansion pak installed
*Soft reset of the console is implemented. For more information see Mupen64plus's page on this: [https://code.google.com/p/mupen64plus/wiki/SoftResetNotes]

Movies from Mupen64 (M64 format) are not directly supported in Bizhawk, and because the M64 format removes lag frames it is not a trivial process to convert them. However, we have included a lua script (M64_reader.lua) which you can use to try playing back your movies. Load your rom and pause it before the first frame, then load the lua script. You will be given a browse window to locate the M64 format movie you want to play. Pick the movie, then unpause the emulator to see the movie play back. If you are trying to convert the movie to BKM format, start recording a movie before you load the lua script. Note: the lua script will not clear your saveram for you, so if the movie empty saveram you will need to remove the saveram file if present before loading the rom file. You won't need to do this when recording a movie since recording a movie starts you with empty saveram.

The N64 core was ported to BizHawk by [user:micro500]. Integration and UI contributions by [user:adelikat], [user:natt], [user:MasterOfPuppets]

Mupen64plus is written in C++ and licensed as GNU GPL v2.

!!64DD emulation

BizHawk uses the Ares64 core to emulate the 64DD and its games. When booting up you might encounter Error 48, which is an error involving the system clock. This can be skipped past by holding A for ~61 frames, or about 1 second, to enter the time setting menu. Pressing Start on that menu sets the time and boots up the game as normal. This can be made faster by holding A + Start on the error screen to skip past the time menu on the first possible frame. This can be helpful if there's no need to set the system time for a given game.