- New feature: support for N64 internal real-time clock
- use X-Scale's PIF-CIC algorithm instead of the hard-coded challenge-response pairs
- New config parameter for path to save SRAM/EEPROM/MPK files, so they can be separated from emulator snapshots
- updated core for new Mupen64plus 2.0 API versioning scheme
- split core configuration data into 2 sections: Core and CoreEvents. Added version numbers and upgrade handling to both
- Accurately emulate the RSP DMA operation (from Bobby Smiles)
- bugfix: #290 - OnScreenDisplay text is sometimes captured in screenshots
- bugfix: when the front-end specifies an override for the configuration directory, always use this path, so that we don't load the config from there and then save it back to the default user path
- bugfix: #468 - On-screen-display problem under OSX
- bugfix: Use option SaveStatePath from config file
- bugfix: don't call SDL_Quit() until the core library is being unloaded. fixes some front-end use cases
- bugfix: #410 - segfault in dma_pi_write()-->strlen() if /home/username/.local/share/mupen64plus/ owned by root
- bugfix: for Interpreter cores, use proper math functions for ceil/floor/round/trunc instead of x87 rounding modes
- many makefile fixes and improvements
Mupen64Plus v1.99.4 - February 22, 2010
---------------------------------------
- Added some type checking to ConfigGetParameter() function, and a new error type
- Bugfix: avoid segfault in the video extension code if SDL initialization fails (because video plugin fails)
- Added new CoreGetRomSettings() function for front-ends
- Allow to run dynarec in hardware DEP protected windows
- Allow core .cfg parser to accept strings without quotes around them
- API change: use new ReadScreen2() video plugin function
- New re-entrant R4300 disassembler, from tty68k/zzt32, a man who loves MIPS processors
- makefile fixes and improvements, code cleanups
Mupen64Plus v1.99.3 - February 13, 2010
---------------------------------------
- New feature: configuration function ConfigGetParameterType()
- New feature: up to 1000 screenshots per ROM are allowed
- New feature: support for Gameshark 3.3 patch codes
- Bugfix: Use Dynarec by default when core supports it. If dynarec is selected but unavailable, fall back to cached interpreter
- Bugfix: screenshot directory handling code used unix-specific path separators; now is platform-independent
- Bugfix: #313 - 64-bit inline assembly code in r4300/x86_64/rjump.c needs to have underscores before the symbols names in OSX
- Bugfix: old bug in the core - hang if a ROM *without* a 16kb EEPROM type is loaded after a ROM *with* a 16kb EEPROM type
- Bugfix: rumble feature caused memory corruption
- Bugfix: Problem with zilmar API: the plugin RomOpen() functions had no way of returning errors to the core, causing crashes
- Replaced api documentation .tar.gz file with the mediawiki text
- Build script improvements:
- new feature: m64p_update.sh script can take an input argument to update to a tag or revision
- new feature: added bash script for building source packages of individual modules
- Makefile improvements:
- dont run ldconfig on make install unless user is root
- added OS type GNU/kFreeBSD
Mupen64Plus v1.99.2 - January 6, 2010
---------------------------------------
- doc: added tarball of emuwiki api documentation from 2010-01-06 for backup purposes
- clean-up: removed almost all of the ifdef WIN32 statements
- bugfix: stop spamming console with "Core: couldn't open memory pack file '...' for reading" messages
- bugfix: stop spamming console with "Core: couldn't open eeprom file '...' for reading" messages
- new feature: MSVC8 project file for mupen64plus-core, refactored code for VC8 compatibility
- Makefile improvements:
- throw error if OS/CPU not supported
- use DESTDIR in install/uninstall paths
- Allow user-specified CC/CXX/LD paths
- makefile needs to install Core header files so that plugins can be built later
Mupen64Plus v1.99.1 - December 14, 2009
---------------------------------------
New 2.0 architecture advantages:
- Simplified emulator Core, making it much more portable
- Removed all GUI code from plugins, making them simpler and more portable
- User interface development is not tied to Core emulator releases
- All messages from core/plugins can be filtered and shown in GUI instead of only on console
- Video Extension allows Front-end to override some video functions, ie to support embedded render window
- Startup in Fullscreen mode, instead of always starting in windowed mode and switching to FS after few seconds
- video resolution can be given via command-line parameter
- all configuration options for core and plugins are in a single config file, can be configured with a single GUI
- dummy plugins are automatically used if plugin loading fails for any reason
- core and plugins all use the same conventions for where to put data/config files
Mupen64Plus core:
- New feature: cheat code support
- New feature: Keyboard shortcuts for Core commands are now user-configurable
- New feature: can load/save PJ64 state files
- Major code cleanup, refactored build system to separate source and object files
- Removed many dependencies to simplify porting to other platforms
- Moved all of the SDL event-related stuff into a new source file eventloop.c
- Use XDG directory convention for file locations on Unix
- bugfix: frame advance feature should advance every frame, instead of every vertical interrupt (every field)
- bugfix: allow diagonal hat movements for core joystick commands
- bugfix: modified SDL event loop joystick code so that gameshark button press is captured, and joystick commands that are level-triggered instead of edge-triggered (such as fast foward) can be accommodated
- bugfix: fixed the outstanding SDL event issues by re-writing the code which handles the joystick-event-driven core commands. Now the axis-based commands use hysteresis and there is a single global event function for determining if the gameshark button is pressed
- bugfix: OSD crash after pause-stop-start-pause of emulator
- bugfix: Set video width and status, aiDacrate during savestate load
- bugfix: in pure interpreter, Dont allow to override r0 register
- bugfix #52: PJ64 load state patch from olejl77
- bugfix #268: use aligned malloc and mprotect to set executable status for dynarec emitted code
- bugfix #51: Floating Point Register data was not correctly converted when switching between 32-bit (MIPS-I) mode and 64-bit (MIPS III).
New code more closely emulates behavior of r4300 hardware. Fixes collision problems in Banjo-Tooie
- bugfix #272: rounding mode for x86 FPU not being set correctly in interpreter and pure interpreter cores
- bugfix: many games need different ScreenUpdateSetting to work properly with Rice Video
Mupen64Plus v1.5 - January 4, 2009
----------------------------------
Major New Features:
- support for Macintosh OSX platform with Intel CPUs
- Qt4 GUI by slougi, Tillin9, and others
- Rom Cache System (r636, others), by Tillin9, Okaygo, and Hasone.
Minor New Features:
- r1235: Debugger: memory breakpoint speedup
- r1170-1178,1181: QT GUI: translations for English, Norwegian, German, and Dutch
- r1155: Use configurable key commands for special emulator functions
- r1134: got our own custom test ROM, courtesy of Marshallh
- r1046: debugger: new r4300 disassembler from ZZT32
- r1063: rice video: crash in MMX/SSE checking functions
- r800: logical error in strcpy loop in util.c
- r798: small bugfixes in blight_input: 1. only save config file after running config dialog, not every time DLL is closed. 2. If rumble is not available on a controller, don't allow user to switch between rumble and mempack. 3. If rumble is selected in config file but not available on a controller, select mempack instead.
- r789: 3 glN64 bugfixes (segfaults on a 64-bit system in Perfect Dark): prevent clamp values from being negative, handle TMEM wrap-arounds from wacky height/line values in texture cache load and texture CRC functions
- r788: rice video: add checks for uint32 height/width parameters which can be negative, causing segfault on 64-bit systems
- r784: 64-bit problem causing GUI crashes - gotta save/restore all the callee-saved registers around the dynarec
- r758: fixed some savestate problems
- r748: Fixed 64-bit dynarec crash in genj_idle() and genjal_idle()
- r715: Bugfixes thanks to Valgrind. Two using strcpy with source and destination overlay, i.e. strcpy(p,p+1)
- r700: set ScreenUpdateSetting=1 in rice video ini file for Conkers BFD
- r694: require bash shell scripting for install.sh
- r686: fixed OSD crash bug after running a game, disabling OSD, then running another game
- r684: OGLFT measuring functions were taking a huge chunk of CPU time. Refactored code to measure only once and store the line size and the message sizes instead of re-measuring all the time. This eliminated nearly all of the OSD overhead on my PC
- r681: Refactored OGLFT to do color setting outside of glyph compiling, so the OSD fading doesnt force bitmaps to be continually recreated with calls to renderGlyph. Seems to have cut the excessive cpu usage of the OSD about by half
- r680: removed many unused classes from OGLFT font library code
- r676: bugfix in my BYTESWAP macros
- r674: Removed glide64/Tmem_nasm.asm source file and the project dependency on nasm/yasm assemblers
- r673: removed inline assembly sections in rdp_loadblock and rdp_loadtile, including their dependency on functions in Tmem_nasm.asm. Replaced with new C code. This fixes a segfault on some 64-bit source builds
- r669: string function causing crash on 64-bit linux
- r667: issue #88 - added basic view menu in GTK GUI
- r628,633: Small patch to get glide64.so to compile with O3 optimizations
- r622: Fixed segfault in Glide64 as per issue 133
- r619: fix LIRC build to integrate w/ new screenshot mechanism
- r608: another couple of memory leak fixes from Tub, in main/config.c
- r605: fix from Tub for free() bug in main/util.c/list_delete()
- r587: issue #111: close screenshot file after saving
Mupen64Plus v1.4 - June 14, 2008
-----------------------------------
- New feature: Graphical debugger for R4300 core
- New feature: On Screen Display
- New feature: KDE4 GUI (experimental)
- New feature: cheat system with Gameshark codes
- New feature: search/filter box in GTK GUI
- New feature: Single frame advance
- New feature: adjust emulator playback speed up or down in 5% increments
- New feature: Rumble Pak support with force feedback
- New feature: Map emulator functions (fullscreen, stop emulation, etc) to joystick buttons or axis movements.
- New feature: Volume up/down
- Blight Input: Individually configure each direction of X and Y axis, which allows inverting the axis
- JTTL_Audio: libsamplerate support for high quality audio resampling
- GTK GUI: Removed second status bar which was not used