5009 lines
253 KiB
Plaintext
5009 lines
253 KiB
Plaintext
![]() |
-- 0.9.26-WIP: --
|
|||
|
|
|||
|
October 13, 2012:
|
|||
|
PSX: Handle non-word-aligned timer port reads and writes, rather than triggering an assert(). Also, a warning message is
|
|||
|
now printed if a game tries to read from timer open bus space, rather than an assert() being triggered.
|
|||
|
|
|||
|
More C++11 warning fixes.
|
|||
|
|
|||
|
October 12, 2012:
|
|||
|
NES: Added emulation of iNES mapper 101.
|
|||
|
|
|||
|
October 11, 2012:
|
|||
|
PSX: Added a "Dance Pad" emulated device, that uses mostly the same code as the "Gamepad" device, but doesn't provide
|
|||
|
access to the shoulder buttons, and allows for opposing D-pad directions to be pressed simultaneously.
|
|||
|
|
|||
|
PSX: Improved emulation of bit15 of the SPU control register; fixes problems with "Dance Dance Revolution",
|
|||
|
"Medal of Honor", "Madden NFL 2003", "Fuuraiki", and "The Misadventures of Tron Bonne".
|
|||
|
|
|||
|
October 10, 2012:
|
|||
|
PSX: Fixed a bug that could cause an emulator crash if the game crashed and tried to execute code in the last 64KiB of the
|
|||
|
CPU logical address space.
|
|||
|
|
|||
|
-- 0.9.25-WIP: --
|
|||
|
|
|||
|
October 9, 2012:
|
|||
|
Fixed a problem of usage of uninitialized memory in a startup function in drivers/input.cpp.
|
|||
|
|
|||
|
October 8, 2012:
|
|||
|
PSX: Tweaked GunCon hit detection, to improve menu behavior in games like "Point Blank 2".
|
|||
|
|
|||
|
PSX: Reduced the penalty time required to resume from a Pause state to the best-case observed times(for 1x and 2x) on a PS1;
|
|||
|
more accurate modeling will need to take into account the time passed since the Pause command among other things(TODO for
|
|||
|
the future maybe, though the relationship between time passed and time to resume from a Pause state is a bit...wonky).
|
|||
|
|
|||
|
PSX: Pause command completion time is now more accurate, per tests on a PS1.
|
|||
|
|
|||
|
October 7, 2012:
|
|||
|
PSX: Changed conditions under which "GetLocL" fails, per limited tests on a PS1. Fixed a game-breaking lockup in "Star Ixiom".
|
|||
|
|
|||
|
PSX: Added CDC "Standby" command and status emulation, fixes a game-breaking lockup in "Philosoma".
|
|||
|
|
|||
|
October 6, 2012:
|
|||
|
PSX: Don't run DMA channel 1 unless there really is data available from the MDEC; fixes partially-broken FMV in "Rayman".
|
|||
|
|
|||
|
October 5, 2012:
|
|||
|
PSX: DMA, and GPU FIFO emulation tweaks, to fix a regression in "Legacy of Kain - Soul Reaver"(the game does something fairly
|
|||
|
unique; it has a transfer length of 0x10 in some linked-list headers).
|
|||
|
|
|||
|
PSX: Increased base cycle usage counts for polygon commands, per tests on a PS1.
|
|||
|
|
|||
|
PSX: Improved GPU FIFO behavior, based on tests on a PS1. The GPU on an actual PS1 appears(more of a hypothesis than anything, based
|
|||
|
on limited data) to have a contention or dependency system with different functional units that have access to the FIFO; the changes
|
|||
|
here just simulate some of its less-computationally-expensive characteristics in regards to GPU status bits and
|
|||
|
gross/rough timing.
|
|||
|
|
|||
|
September 30, 2012:
|
|||
|
Fixed numerous code constructs that caused errors and/or warnings when compiling for the C++11 standard.
|
|||
|
|
|||
|
September 29, 2012:
|
|||
|
PSX: Improved reliability of the Konami Justifier simulated offscreen shot process.
|
|||
|
|
|||
|
PSX: More event handling tweaks.
|
|||
|
|
|||
|
September 28, 2012:
|
|||
|
PSX: Added experimental emulation of the DREAD Konami Justifier. This light gun makes tears of pain flow in a torrent.
|
|||
|
|
|||
|
PSX: Added partial emulation of some esoteric timer features, though what was added is probably not totally correct.
|
|||
|
|
|||
|
PSX: Altered the global event system to use a sorted doubly-linked list, to allow for more precise timing of events
|
|||
|
in relation of one sub-device/chip to another.
|
|||
|
|
|||
|
September 27, 2012:
|
|||
|
Added code to allow CD image file data to be entirely loaded into memory, though the code is not used as such at current.
|
|||
|
|
|||
|
SNES: Added boolean setting "snes.correct_aspect", default value of "0"(preserving previous behavior).
|
|||
|
|
|||
|
PSX: Added additional heuristics for determining game region; fixes misdetection of the region for the North American release
|
|||
|
of "Wing Commander IV".
|
|||
|
|
|||
|
September 25, 2012:
|
|||
|
PSX: Tweaked GunCon x coordinate scaling.
|
|||
|
|
|||
|
Changed absolute mouse x and y coordinate passing from driver->core to be in 1.15.16 fixed point format(previously
|
|||
|
simple integers), to avoid excess precision loss when scaling the coordinates from viewport dimensions
|
|||
|
to nominal_width and nominal_height.
|
|||
|
|
|||
|
September 24, 2012:
|
|||
|
PSX: Added preliminary GunCon emulation.
|
|||
|
|
|||
|
Genesis: Adjusted aspect ratio slightly.
|
|||
|
|
|||
|
PSX: Adjusted NTSC aspect ratio slightly.
|
|||
|
|
|||
|
PSX: Reduced internal frame buffer width by 1/4(reduces memory usage).
|
|||
|
|
|||
|
PSX: When playing a PSF, virtual input(gamepad, etc.) devices are no longer emulated as being connected.
|
|||
|
|
|||
|
The CUE sheet reader will now seek past a UTF-8 BOM at the beginning of a CUE sheet if present(and print an error/warning
|
|||
|
message).
|
|||
|
|
|||
|
Fixed resource leakage issue when CUE/TOC sheet loading aborts due to an error.
|
|||
|
|
|||
|
September 20, 2012:
|
|||
|
Removed the rawer parts of a half-baked idea implemented long ago in the virtual input device abstraction structures, and
|
|||
|
removed some extremely poorly-scaling-with-increased-emulated-system-count-and-emulated-device-count code that said
|
|||
|
half-baked functionality required, shaving a considerable amount off Mednafen's startup time
|
|||
|
(though probably not really noticeable on faster CPUs).
|
|||
|
|
|||
|
Modified settings loading and saving code to use new FileStream functionality.
|
|||
|
|
|||
|
September 18, 2012:
|
|||
|
Modified the CD image reading and "AudioReader" code(used for reading MS WAV/Vorbis/MusePack/etc) to operate on a
|
|||
|
"Stream" object instead of using stdio functions on "FILE", in regards to files used for track data. This allows MemoryStream
|
|||
|
to be used very easily to preload the track file data into memory, which may be put to use in the future.
|
|||
|
|
|||
|
Implemented FileStream, derived from Stream, as a quick wrapper around FileWrapper(HAH).
|
|||
|
|
|||
|
September 15, 2012:
|
|||
|
Map SDL hats to buttons instead of axes in the new joystick interface abstraction code, to prevent loss of information.
|
|||
|
|
|||
|
September 8, 2012:
|
|||
|
Entered more information into the possible values enum struct for the *.debugger.disfontsize setting(s) so that the possible values
|
|||
|
will be in the autogenerated documentation.
|
|||
|
|
|||
|
September 7, 2012:
|
|||
|
Added a const char* "Description" member to the "InputDeviceInfoStruct", and did some minor internal plumbing so it will be propagated to the
|
|||
|
automatically-generated documentation if non-NULL. (For the possibility of more verbose emulated input device information for the
|
|||
|
*.input.port* settings in the documentation)
|
|||
|
|
|||
|
September 6, 2012:
|
|||
|
Increased size of line buffer used in settings file reading.
|
|||
|
|
|||
|
Changed input configuration evaluation code to allow multiple physical mappings to a single emulated analog button/axis to work properly(it is
|
|||
|
somewhat useful for neGcon emulation).
|
|||
|
|
|||
|
PSX: Added neGcon emulation.
|
|||
|
|
|||
|
September 5, 2012:
|
|||
|
Added setting "input.joystick.global_focus".
|
|||
|
|
|||
|
Renamed settings:
|
|||
|
autofirefreq -> input.autofirefreq
|
|||
|
analogthreshold -> input.joystick.axis_threshold
|
|||
|
ckdelay -> input.ckdelay
|
|||
|
|
|||
|
September 3, 2012:
|
|||
|
PSX: Don't mask the address specified by the memcard write command, but instead signal an error condition if the address is invalid, per
|
|||
|
tests on a PS1.
|
|||
|
|
|||
|
September 1, 2012:
|
|||
|
Reduced memory usage of internal runtime text rendering data structures by about 2.4MB for 64-bit builds, and about 0.8MB for 32-bit builds.
|
|||
|
|
|||
|
August 31, 2012:
|
|||
|
Only destroy and recreate the emulated device and device state on the port being altered with CTRL+SHIFT+[n], rather than all ports, to
|
|||
|
avoid usability problems with more complex input devices(like on the PS1 for instance).
|
|||
|
|
|||
|
Fixed a longstanding bug that caused input configuration data to be lost if you changed the device on a port with CTRL+SHIFT+[n] after
|
|||
|
configuring input without an emulator exit in-between.
|
|||
|
|
|||
|
August somethingth, 2012:
|
|||
|
PSX: Added DualShock emulation, complete with Analog mode toggle button emulation.
|
|||
|
|
|||
|
Revamped physical joystick/gamepad support:
|
|||
|
Added native code targeting DirectInput(5.0) and XInput on MS Windows, and jsdev and evdev on Linux.
|
|||
|
|
|||
|
Added support for rumble on Linux and XInput devices on MS Windows.
|
|||
|
|
|||
|
Refactored and recoded much of the joystick input configuration handling code.
|
|||
|
|
|||
|
Added kludgey support for handling physical joystick analog buttons in the input configuration process without it freaking out:
|
|||
|
Note: The process described below should NOT be necessary if you're using an XBox 360/XInput controller under MS Windows. If
|
|||
|
you're using such a controller under a different operating system, or using a non-XBox 360/non-XInput controller, and it has
|
|||
|
analog buttons, then you should perform the process as described below.
|
|||
|
|
|||
|
Also note that the process is only necessary when you're configuring inputs, and not during "normal" gameplay/usage.
|
|||
|
|
|||
|
Twirl all sticks and D-pads and press all analog buttons on any physical gamepads/joysticks with analog buttons you want
|
|||
|
to use in the input configuration process, then press F3. Then, configure input as normal. The detected analog buttons
|
|||
|
will be recognized during input configuration until Mednafen exits; if you exit Mednafen and restart, and want to configure
|
|||
|
input devices again, you'll need to repeat the twirling-pressing-F3 process again).
|
|||
|
|
|||
|
August 12, 2012:
|
|||
|
Fixed a bug that was causing the FPS display to be missing if the "overlay" video driver was used in combination with PC Engine emulation.
|
|||
|
|
|||
|
Removed the last vestiges of the driver-side handling of the long since removed/replaced PC-FX multi-resolution-frame multi-layer alpha
|
|||
|
blending method.
|
|||
|
|
|||
|
August 11, 2012:
|
|||
|
Added setting "osd.alpha_blend", default value of "1", that controls enabling of OSD alpha-channel blending. Set it to "0" for
|
|||
|
a speedup when using the "sdl" video.driver.
|
|||
|
|
|||
|
Software("sdl" video driver) render fixes/improvements:
|
|||
|
Improved precision and rounding behavior with the fixed-point math used for scanline effects and non-integer scaling.
|
|||
|
|
|||
|
Implemented alpha blending for all OSD elements except the FPS display.
|
|||
|
|
|||
|
Added support for the scanlines effect when the screen is rotated(via ALT+O).
|
|||
|
|
|||
|
Fixed a bug that caused an enabled scanline effect to be missing when a special scaler(hq2x, hq3x, scale2x, etc) is used
|
|||
|
and no post-special-scaler scaling is necessary.
|
|||
|
|
|||
|
August 10, 2012:
|
|||
|
Implemented minor optimizations to the "sdl" "video.driver" scanlines effect code.
|
|||
|
|
|||
|
Changed a ton of driver-side OSD rendering code to use MDFN_Surface instead of SDL_Surface.
|
|||
|
|
|||
|
August 1, 2012:
|
|||
|
Fixed port numbering(from 0-based to 1-based) in the error message display after trying to configure buttons for a nonexistent virtual device/port.
|
|||
|
|
|||
|
June 14, 2012:
|
|||
|
Added a non-threaded alternative implementation of CDIF(currently unused, but will be useful if we ever target an OS without multithreading
|
|||
|
capabilities).
|
|||
|
|
|||
|
July 13, 2012:
|
|||
|
Lynx: Made reporting of errors during game load to be more verbose.
|
|||
|
|
|||
|
GB: Error out if a ROM image to be loaded is less than 512 bytes in size.
|
|||
|
|
|||
|
GB: Don't use TestMagic() in Load(), and don't return -1. (So that -force_module gb will work as expected)
|
|||
|
|
|||
|
-- 0.9.24-WIP: --
|
|||
|
|
|||
|
July 12, 2012:
|
|||
|
Only use "AI_ADDRCONFIG" flag with getaddrinfo() hints if it's available; fixes a compilation error on OpenBSD.
|
|||
|
|
|||
|
Disallow manual save states with "snes" module during netplay, since the bsnes save state code alters the current state on save state,
|
|||
|
which would cause desynchs, or annoyances and extra bandwidth usage to work around the issue, in a netplay environment.
|
|||
|
|
|||
|
July 9, 2012:
|
|||
|
Netplay:
|
|||
|
Removed setting "netplay.merge", since similar functionality can be obtained by issuing one or more of the newly-added commands.
|
|||
|
|
|||
|
Added /take, /dupe, and /drop commands.
|
|||
|
|
|||
|
July 8, 2012:
|
|||
|
PSX: Implemented CD-XA playback current file and channel matching(per very limited tests on a real PS1), fixes broken speech in
|
|||
|
"Yarudora Series Vol.1 - Double Cast".
|
|||
|
|
|||
|
Netplay:
|
|||
|
BSD/POSIX: Only use MSG_NOSIGNAL if it is defined; fixes compilation issue on Mac OS X. And don't use MSG_NOSIGNAL
|
|||
|
for recv(), only send().
|
|||
|
|
|||
|
BSD/POSIX: Use socket option "SO_NOSIGPIPE", if available.
|
|||
|
|
|||
|
Handle a recv() return value of zero properly(or at least semi-properly :b), to prevent a lockup in certain situations.
|
|||
|
|
|||
|
Added player /swap command(requires mednafen-server 0.5.0).
|
|||
|
|
|||
|
July 6, 2012:
|
|||
|
SMS: Added "Power Strike II" to the internal game database, to force PAL mode, per suggestion from "megadriver".
|
|||
|
|
|||
|
-- 0.9.23-WIP: --
|
|||
|
|
|||
|
July 5, 2012:
|
|||
|
PSX: Fixed a very small memory leak in frontio.cpp.
|
|||
|
|
|||
|
Updated internal copy of miniLZO from version 2.01 to version 2.06.
|
|||
|
|
|||
|
July 4, 2012:
|
|||
|
SNES: Removed some debug printf()'s that got left in the code from the work a few days ago.
|
|||
|
|
|||
|
Networking:
|
|||
|
Don't pass a NULL pointer to the WSAIoctl() output length count pointer argument.
|
|||
|
|
|||
|
More verbose error reporting with Winsock2 network code.
|
|||
|
|
|||
|
Break out of the name resolution loop so that we don't erroneously connect() multiple times.
|
|||
|
|
|||
|
Fixed some socket leaks on error bugs.
|
|||
|
|
|||
|
PSX: Use only one 9-bit SPU RAM write address offset counter for voices 1 and 3, and CD-audio writing to SPU RAM, and never reset it during
|
|||
|
runtime(sans reset/power condition, of course); fixes audio glitches with the guitar sounds in "Um Jammer Lammy".
|
|||
|
|
|||
|
July 3, 2012:
|
|||
|
Wrote netplay code directly targeting BSD/POSIX and Winsock2 APIs, and removed SDL_net support. This change also brings support
|
|||
|
for IPv6.
|
|||
|
|
|||
|
July 2, 2012:
|
|||
|
/server and /connect no longer accept "[HOST]:[PORT]" form, only "[HOST] [PORT]".
|
|||
|
|
|||
|
/server and/or /connect with no arguments in the netplay console will now connect to the server as specified by "netplay.host" instead
|
|||
|
of trying to connect to an empty string and trashing the "netplay.host" setting in the process.
|
|||
|
|
|||
|
July 1, 2012:
|
|||
|
Fixed various internal problems with the netplay user interface code(memory leaks, using free()'d memory, definite multithreading unsafety,
|
|||
|
/quit not working properly, trying to access the network when the connection is closed, etc.).
|
|||
|
|
|||
|
June 30, 2012:
|
|||
|
Further disable state rewinding functionality during netplay.
|
|||
|
|
|||
|
SNES: Backported(sort of) a fix to the serializer code that was breaking 64-bit integer restoring.
|
|||
|
|
|||
|
June 29, 2012:
|
|||
|
SNES: Change various instances of "if(scheduler.sync == Scheduler::SyncAll)" to "while(scheduler.sync == Scheduler::SyncAll)" in the
|
|||
|
bsnes code, for better save state behavior.
|
|||
|
|
|||
|
SNES: Run S-SMP more tightly in sync with S-CPU, to further reduce frame timing jitter.
|
|||
|
|
|||
|
June 27, 2012:
|
|||
|
Updated netplay protocol to increase the maximum number of allowed controllers per game from 8 to 16.
|
|||
|
|
|||
|
June 26, 2012:
|
|||
|
Changed save-state header magic from the 16-bytes MEDNAFENSVESTATE to the 8-bytes MDFNSVST, to make room for a 64-bit creation
|
|||
|
timestamp(which will be used in the future).
|
|||
|
The old header magic is still recognized, for backwards compatibility.
|
|||
|
|
|||
|
June 25, 2012:
|
|||
|
Cleaned up and remove VLA usage from core netplay code.
|
|||
|
|
|||
|
June 24, 2012:
|
|||
|
NES: Fixed an annoying old compiler warning in "ines.cpp".
|
|||
|
|
|||
|
SNES: Disable some warnings to keep compilation of the bsnes code from spamming the screen with warnings.
|
|||
|
|
|||
|
SNES: Implemented kludges to prevent sound clicks and scratchiness when state rewinding functionality is enabled(but it's still plenty
|
|||
|
scratchy when actually rewinding ;)). A more proper fix does not seem possible, due to the way bsnes works.
|
|||
|
|
|||
|
SNES: Modified bsnes core to prevent S-SMP(and S-DSP) from running as far ahead of the CPU as it did before, to reduce timing jitter.
|
|||
|
This change has a small negative speed impact.
|
|||
|
|
|||
|
June 23, 2012:
|
|||
|
Tidied up netplay join/leave messages.
|
|||
|
|
|||
|
May 30, 2012:
|
|||
|
Fall back to nearest-neighbor scaling when blitting a screen image segment with a height less than 2(or less than 4, for scale4x); fixes an
|
|||
|
assert-triggered "crash" when using scale2x with PSX emulation(and possibly Genesis and PC Engine emulation with some games, as well).
|
|||
|
|
|||
|
May 29, 2012:
|
|||
|
PSX: Fixed a stupid bug in the FB fill GPU command; the height iteration variable was being tested in respect to drawability(interlace mode,
|
|||
|
dfe, etc.), rather than the actual destination Y coordinate into GPU RAM. Fixes major graphical problems with "Dead or Alive".
|
|||
|
|
|||
|
May 28, 2012:
|
|||
|
PSX: Altered data structures to avoid instantiating a templated struct with 0-size arrays.
|
|||
|
|
|||
|
May 26, 2012:
|
|||
|
PSX: The Pause CDC command will "complete" much, much faster now if the drive is already paused. Fixes the lack of music after pausing
|
|||
|
and unpausing in "Dead or Alive".
|
|||
|
|
|||
|
PSX: Corrected GPU line draw command coordinate precision handling, in regards to x,y drawing offset, per tests on a PS1; fixes a
|
|||
|
flickering line issue in "Triple Play 97".
|
|||
|
|
|||
|
May 25, 2012:
|
|||
|
PC-FX: QuickTime movie recording will now (indirectly) take the "pcfx.high_dotclock_width" setting into account, to reduce the
|
|||
|
size of the raw recorded image data when the setting is set to "256". (Note that this setting should still not be changed from the default
|
|||
|
of "1024", unless you understand the graphical degradation smaller setting values will cause in some games.)
|
|||
|
|
|||
|
MD: Fixed a bug that was causing the QuickTime movie recording code to instantly crash right after emulator startup with MD/Genesis emulation.
|
|||
|
|
|||
|
May 24, 2012:
|
|||
|
PCE_FAST: Some 32-bit x86 inline assembly was listing "rbp" in the clobber list, when it should have been listing "ebp". Fixed.
|
|||
|
|
|||
|
May 23, 2012:
|
|||
|
PSX: Improved the emulation accuracy of GPU texture windows(and made the texture window code much simpler), per tests on a PS1.
|
|||
|
|
|||
|
May 23, 2012:
|
|||
|
PSX: Mask sprite width and height for custom/variable-sized GPU sprites against 1023 and 511, respectively, per tests on a PS1.
|
|||
|
|
|||
|
-- 0.9.22-WIP: --
|
|||
|
|
|||
|
May 8, 2012:
|
|||
|
PC-FX: Increased the minimum allowable value for the "pcfx.cdspeed" setting from "1" to "2".
|
|||
|
|
|||
|
Replaced internal module graphics layer toggling code with absolute graphics layer enable mask setting code.
|
|||
|
|
|||
|
May 5, 2012:
|
|||
|
NGP: Reduced the size of the noise channel LFSR from 16-bits to 15-bits, per mic_'s suggestion(and test program and recorded sound sample).
|
|||
|
|
|||
|
May 4, 2012:
|
|||
|
Fixed broken support for "CTRL" modifier when configuring command keys/hotkeys(this doesn't affect hardcoded default key assignments,
|
|||
|
or manual configuration file changes to use the ctrl modifier, both of which already worked fine, it's just the in-Mednafen configuration
|
|||
|
process that was broken in regards to the CTRL modifier key).
|
|||
|
|
|||
|
May 2, 2012:
|
|||
|
PSX: Fixed SPU handling of voice pitches > 0x3FFF; fixes broken sound effects in "Tales of Phantasia", and likely other games
|
|||
|
as well. Thanks to "sparklewind" for bringing the bug to my attention, and recording sound samples of the sound effects from a PS1.
|
|||
|
|
|||
|
April 30, 2012:
|
|||
|
MD: Reworked YM2612 LFO PM/FM emulation based on notes from Nemesis. Changed the LFO AM waveform start phase so
|
|||
|
that the first "sample" is 0; though the waveform probably needs to be changed from sine to triangle. Corrected(I hope. :b) LFO AM depth
|
|||
|
setting 0x1 shift factor.
|
|||
|
|
|||
|
April 29, 2012:
|
|||
|
PSX: Increased CD audio buffering slightly, and flush buffers on Pause, to reduce the number of voice audio glitches in "Tales of Destiny 2".
|
|||
|
|
|||
|
April 28, 2012:
|
|||
|
PSX: Began adding save state support.
|
|||
|
|
|||
|
Fixed a regression in the deinterlacer code, from the April 20 fix, that was causing the first entry in a valid line widths array
|
|||
|
to be trashed.
|
|||
|
|
|||
|
April 26, 2012:
|
|||
|
NGP: Got rid of various truncations of CPU cycle counts to 8-bits(they're still ultimately truncated to 8-bit, but only in one place now, so
|
|||
|
that it can easily be removed in the future when the CPU timing mess is resolved).
|
|||
|
|
|||
|
PCE: Added direct BRAM editing capability to the debugger's memory editor.
|
|||
|
|
|||
|
PCE: Fixed broken direct main RAM viewing and editing in the debugger's memory editor.
|
|||
|
|
|||
|
April 23, 2012:
|
|||
|
MD: Added support for region overrides in the internal database(though no entries that override region are present yet).
|
|||
|
|
|||
|
MD: Changed supported region(as indicated by the game's embedded header) preference order to prefer domestic NTSC over overseas PAL.
|
|||
|
|
|||
|
MD: Removed an erroneously superfluous interrupt pending check in the 68K emulator core(which should have been removed a long time ago,
|
|||
|
since it is apparently a leftover of the original C68K timing model).
|
|||
|
|
|||
|
April 21, 2012:
|
|||
|
MD: The upper 8 and lower 8 horizontal lines on the screen are now rendered as the border color in 224 height mode; fixes graphical glitches
|
|||
|
in "Micro Machines", possibly other games.
|
|||
|
|
|||
|
MD: Corrected VDP vblank flag set and clear time, fixes sprite glitches in X-Men 2.
|
|||
|
|
|||
|
April 20, 2012:
|
|||
|
Fixed a bug in the system-independent deinterlacing code that was causing graphical glitches with Genesis interlaced mode under
|
|||
|
certain conditions
|
|||
|
|
|||
|
MD: Reset-button-triggered reset no longer resets VDP state, fixes major graphical corruption with Bonkers after such a reset.
|
|||
|
|
|||
|
April 19, 2012:
|
|||
|
MD: If the YM2612 channel "algorithm" has changed, start the attack phase on the next key on from maximum attenuation, to ostensibly
|
|||
|
fix a broken sound effect in Ecco the Dolphin 2(Tides of Time), per the Gens EG implementation; this needs to be tested on an actual
|
|||
|
Genesis, which will have to wait until I'm able to obtain a Genesis flash cart.
|
|||
|
|
|||
|
April 18, 2012:
|
|||
|
MD: Fixed the YM2612 save state code to work again(after the recent changes broke it); however, the recent changes have broken
|
|||
|
save state compatibility with save states from 0.9.21-WIP and earlier, and that isn't going to be "fixed".
|
|||
|
|
|||
|
MD: Fixed a major problem with the new EG implementation that was causing significant timbre and volume issues, due to an erroneous
|
|||
|
assumption(from PS1 emulation work) of how the attack phase entry works(thanks to a terse old forum post from Steve Snake
|
|||
|
for clarifying the issue).
|
|||
|
|
|||
|
April 16, 2012:
|
|||
|
MD: Tweaked the sin and exp table algorithms to more or less match those described at https://docs.google.com/View?docid=dd8kqn9f_13cqjkf4gp
|
|||
|
(different chip, but at least the logsin table is supposed to be the same as the YM2612). The LFO tables still need to be worked on, though.
|
|||
|
|
|||
|
MD: Fixed a bug(relating to ADSR phase skipping) in the new EG code that caused some broken music in Flashback.
|
|||
|
|
|||
|
April 15, 2012:
|
|||
|
MD: Fixed CSM support(untested) in YM2612 emulator.
|
|||
|
|
|||
|
MD: Rewrote YM2612 emulator EG portion, based on information from Nemesis and MAME/Genesis Plus GX. (CSM support was broken in the process, and will
|
|||
|
need to be fixed, along with some other code cleanups)
|
|||
|
|
|||
|
MD: Simulated FIFO bits in the status register were only being set(to 1), and never cleared. Fixed. (Mega Turrican actually checks the
|
|||
|
FIFO full bit, unlike many other games).
|
|||
|
|
|||
|
April 14, 2012:
|
|||
|
MD: Updated Z80 core to latest FUSE SVN revision(though it required heavy modification for inclusion in Mednafen, so it's possible
|
|||
|
something Z80-emulation-related could have broken in the process); the update fixes some undocumented flag results, and changes/fixes timing
|
|||
|
for some instructions.
|
|||
|
|
|||
|
MD: Implemented very crude VDP FIFO timing simulation, fixes issues with "Soldiers of Fortune" and "Fatal Rewind".
|
|||
|
|
|||
|
MD: Removed old, questionable YM2612 hack, fixes some missing sound effects in "Williams Arcade's Greatest Hits".
|
|||
|
|
|||
|
April 13, 2012:
|
|||
|
MD: Changed VDP line timing based on information in Genesis Plus GX, "Bram Stoker's Dracula" is now playable.
|
|||
|
|
|||
|
MD: Reset(via F10 button) will now reset less state than power off/on "reset", to allow "X-Men" to progress to the final level.
|
|||
|
|
|||
|
MD: Revamped 68K emulator timing, for more versatility and better timing granularity(exact timing not so much, at least not yet...) at the cost of
|
|||
|
increased CPU usage.
|
|||
|
|
|||
|
MD: Fixed a bug in the VDP DMA fill and VDP DMA VRAM copy timing calculations, fixes graphical glitches in a few games.
|
|||
|
|
|||
|
MD: Applied Yabause revision 1972 C68K timing fix patch.
|
|||
|
|
|||
|
April 11, 2012:
|
|||
|
MD: Fixed a few(but there are many left :() YM2612 emulator bugs, based on information at http://gendev.spritesmind.net/forum/viewtopic.php?t=386
|
|||
|
|
|||
|
April 10, 2012:
|
|||
|
PSX: Unmapped entries in the CPU emulator's fast instruction fetch memory map are now filled with a pointer to a dummy page, to prevent
|
|||
|
a game's crash from crashing Mednafen as a whole.
|
|||
|
|
|||
|
PSX: Removed unused partially-implemented CPU trampoline code and data, to reduce RAM usage and clean up code a bit(it was originally
|
|||
|
to ensure stability with a PC-as-a-pointer style CPU optimization, but that optimization was never implemented due to being in conflict
|
|||
|
with branch delay slot emulation).
|
|||
|
|
|||
|
April 9, 2012:
|
|||
|
PSX: Added main RAM mirror addresses to the fast instruction fetch memory map.
|
|||
|
|
|||
|
PSX: Added various coprocessor-related instructions to the disassembler.
|
|||
|
|
|||
|
Added logical AND mode command key functionality(where all buttons/keys configured to the command are required to be in a pressed state
|
|||
|
simultaneously for the command to occur), on a per-command basis(commands can be configured in this mode with SHIFT+F2).
|
|||
|
|
|||
|
April 8, 2012:
|
|||
|
Fixed transposed memset() value and length arguments in cdromif.cpp, thanks to skitt for the notice.
|
|||
|
|
|||
|
PSX: Fixed triangle coordinate precision in relation to draw offset based on more tests, fixes flickering graphical glitches on the
|
|||
|
right side of the screen in "Quake II", probably other games as well.
|
|||
|
|
|||
|
April 7, 2012:
|
|||
|
PSX: Added L3 and R3 button emulation for emulated Dual Analog gamepads.
|
|||
|
|
|||
|
-- 0.9.21-WIP: --
|
|||
|
|
|||
|
March 30, 2012:
|
|||
|
Updated the internal copy of libmpcdec to r475(which supports SV8, whereas the version in Mednafen previously only supported up to
|
|||
|
SV7), and updated the CD audio file reading code to use the new API, fixing a few problems(with variable initialization, and seeking)
|
|||
|
in the process.
|
|||
|
|
|||
|
SNES, PSX: Moved cleanup/deallocation code into a separate Cleanup() function, and call Cleanup() instead of CloseGame() in case of
|
|||
|
error during file loading, to prevent nonvolatile saved memory deletion in case of error.
|
|||
|
|
|||
|
SNES: 8MiB of memory is now allocated for the ROM image buffer passed to bsnes, regardless of actual ROM image size, to work
|
|||
|
around potential design flaws in the bsnes cart loading code to prevent emulator crashes with malformed or corrupted ROM images.
|
|||
|
|
|||
|
SNES: Added an 8MiB limit maximum ROM image size limit.
|
|||
|
|
|||
|
March 29, 2012:
|
|||
|
Updated the internal copy of tremor to SVN revision 18222, and imported and merged in libogg 1.3.0, since SVN tremor
|
|||
|
no longer has its own libogg implementation(and hasn't for some time apparently!).
|
|||
|
|
|||
|
PSX: Added draw time penalty for texturing on polygons.
|
|||
|
|
|||
|
SNES: Began adding SNSF support.
|
|||
|
|
|||
|
SNES: Added default mouse button assignments to emulated mice, and default key assignments to the emulated gamepad on the first
|
|||
|
port.
|
|||
|
|
|||
|
March 28, 2012:
|
|||
|
Fixed a big bug in the CUE sheet parser that caused wrong track addresses/LBAs with multi-data/bin-file CD rips where the pregap
|
|||
|
data is included in the binary image via "INDEX 00/INDEX 01" directives in the CUE sheet(which is a common form for PSX CD rips).
|
|||
|
|
|||
|
PSX: Added draw time penalty for goraud/gradient polygon shading.
|
|||
|
|
|||
|
PSX: Reduced draw time penalty for having transparency enabled, and added a draw time penalty for mask evaluation, per a quick,
|
|||
|
noncomprehensive test on a PS1(more thorough testing in the future is warranted) on a flat-shaded triangle.
|
|||
|
|
|||
|
PSX: Reduced triangle coordinate integer component precision, and reduced the maximum allowed triangle height to 512; fixes some graphical
|
|||
|
glitches in "Fighting Force 2".
|
|||
|
|
|||
|
PSX: Added SPU RAM editing(as opposed to simply viewing, as before) capability to the debugger.
|
|||
|
|
|||
|
PSX: Noise mode being enabled on a voice will now suppress ADPCM block flags effecting an ADSR release, per tests on a PS1.
|
|||
|
|
|||
|
March 27, 2012:
|
|||
|
PSX: Revamped SPU IRQ to fix lockups in "Eithea". Tests need to be run on a PS1 to make sure the fix is correct, but the fix is derived
|
|||
|
from plausible hypothetical behavior.
|
|||
|
|
|||
|
PSX: Added emulation of some bits of the SPU status "register" at 0x1F801DAE.
|
|||
|
|
|||
|
March 21, 2012:
|
|||
|
PSX: Brought SPU DMA timing closer to what it is on actual PS1 in game usage cases(more accurate timing than this will require significantly
|
|||
|
more SPU emulation work). This should fix sound glitches in the "Legend of Mana" FMV sequences.
|
|||
|
|
|||
|
March 20, 2012:
|
|||
|
PSX: Reverse OT clear DMA is now emulated as halting the CPU, per tests on a PS1(though further tests are needed, the DMA controller
|
|||
|
"halting" is likely more complex than simply halting the CPU unconditionally while the DMA runs; and even in a C program, the
|
|||
|
halting effect does not occur immediately, but is slightly delayed, which is not emulated).
|
|||
|
|
|||
|
PSX: Improved CDC DMA timing slightly.
|
|||
|
|
|||
|
PSX: Bit 28 of a channel control register is now cleared on DMA completion of that channel, per tests on a PS1.
|
|||
|
|
|||
|
March 19, 2012:
|
|||
|
PSX: Mute/Demute is now implemented for CD-XA playback as well as CD-DA playback.
|
|||
|
|
|||
|
PSX: SPU control register bit14(mask 0x4000, the mute bit) no longer affects CD audio output, per a test on a PS1.
|
|||
|
|
|||
|
March 4, 2012:
|
|||
|
PSX: Added emulation of SPU registers available at [0x1F801E00, 0x1F801E80).
|
|||
|
|
|||
|
February 29, 2012:
|
|||
|
NGP, VB, GBA: Implemented minor optimizations for when running on PowerPC.
|
|||
|
|
|||
|
February 28, 2012:
|
|||
|
PSX: Added support for running on big-endian hosts, and added PowerPC-specific optimizations(AltiVec IDCT for MDEC,
|
|||
|
and load/store byte-reverse instructions via inline assembly for memory accesses). A 1.42GHz PowerMac G4 system
|
|||
|
is more than fast enough to play PSFs(especially with the idle loop detection speed hack added earlier), but is much
|
|||
|
too slow to play games at full speed.
|
|||
|
|
|||
|
February 18, 2012:
|
|||
|
NES: Fixed Famicom Arkanoid controller emulation, thanks to raz0red for reporting that it was completely borked.
|
|||
|
|
|||
|
February 16, 2012:
|
|||
|
Fixed a compilation problem with gcc 4.7-prerelease, reported by belegdol.
|
|||
|
|
|||
|
Feburary 11, 2012:
|
|||
|
PSX: Fixed a mnemonic typo in the disassembler for "sltu", thanks to zeromus for reporting it.
|
|||
|
|
|||
|
February 6, 2012:
|
|||
|
PSX: Altered DMA abort behavior to try to prevent lockups in some games.
|
|||
|
|
|||
|
February 5, 2012:
|
|||
|
PSX: Fixed a potential buffer overflow crash when playing a PSF if the PSF tries to enable GPU video output.
|
|||
|
|
|||
|
PSX: Added a simple idle loop detection speed hack to the CPU core, used only during PSF playback.
|
|||
|
|
|||
|
PSX: Removed the InBDSlot variable, rolling its functionality into an interpretation of the lower 2 bits of the "new_PC_mask"
|
|||
|
variable.
|
|||
|
|
|||
|
February 3, 2012:
|
|||
|
Fixed a spelling error in a 3D mode setting in vb/vb.cpp
|
|||
|
|
|||
|
Added some missing typecasts in src/file.cpp.
|
|||
|
|
|||
|
January 31, 2012:
|
|||
|
Fixed a bug in the interpolation pixel shaders code that could cause a shader compilation error on some
|
|||
|
OpenGL implementations.
|
|||
|
|
|||
|
-- 0.9.19-WIP: --
|
|||
|
|
|||
|
January 28, 2012:
|
|||
|
Added workaround for questionable header changes with libcdio 0.83 and newer.
|
|||
|
|
|||
|
January 25, 2012:
|
|||
|
Fixed "x" and "y" <system>.videoip settings not working properly with screen rotation(though the fix is a bit
|
|||
|
convoluted, in the future it may make sense to completely re-evaluate how destination rectangles and rotation
|
|||
|
are done).
|
|||
|
|
|||
|
Re-added "ipxnotysharper", "ipynotxsharper", and "ipsharper" pixel shader settings.
|
|||
|
|
|||
|
Fixed interpolation-pixel-shader algorithm texture coordinate evaluation.
|
|||
|
|
|||
|
January 24, 2012:
|
|||
|
Re-added "ipxnoty" and "ipynotx" pixel shader settings, to compensate for the removal of the extended videoip settings.
|
|||
|
|
|||
|
Fixed "x" and "y" <system>.videoip settings to work properly in full-screen mode.
|
|||
|
|
|||
|
PSX: Added default mouse button assignments for emulated mice.
|
|||
|
|
|||
|
PC-FX: Fixed a crash when selecting the "RAINBOW" layer in the debugger's graphics viewer. (Note that viewing
|
|||
|
the RAINBOW layer via this manner is still not supported; IE there's just empty space when the layer is selected in the
|
|||
|
graphics viewer).
|
|||
|
|
|||
|
January 23, 2012:
|
|||
|
WonderSwan: Fixed a reset initialization bug(due to a design flaw) that was partially corrupting internal and
|
|||
|
external EEPROM.
|
|||
|
|
|||
|
PSX: Added emulation of LWL and LWR load delays, and emulation of LWL and LWR diversion of the register writeback
|
|||
|
stage of a previous instruction's delayed load.
|
|||
|
|
|||
|
January 22, 2012:
|
|||
|
libcdio version information is now printed out on startup.
|
|||
|
|
|||
|
January 21, 2012:
|
|||
|
PSX: Added mouse emulation.
|
|||
|
|
|||
|
Changed how physical mouse events are processed, removing a potential thread-safety issue with some SDL functions,
|
|||
|
and ensuring that a very quick mouse button press and release registers as pressed for at least 1 frame, as far
|
|||
|
as command processing and virtual input device emulation go.
|
|||
|
|
|||
|
January 20, 2012:
|
|||
|
PSX: Added default keyboard button assignments for emulated digital gamepad 1.
|
|||
|
|
|||
|
PSX: Worked on multitap emulation some more.
|
|||
|
|
|||
|
PSX: Corrected gamepad and memcard emulation, to only respond when the first communication byte is 0x01 or 0x81
|
|||
|
respectively, rather than masking the byte with 0x81 and then testing, which is apparently incorrect based on
|
|||
|
real system testing.
|
|||
|
|
|||
|
January 19, 2012:
|
|||
|
PSX: Began adding multitap emulation.
|
|||
|
|
|||
|
Fixed broken emulated input device selection command keys for ports 6, 7, and 8
|
|||
|
|
|||
|
January 18, 2012:
|
|||
|
PSX: Front port I/O changes:
|
|||
|
Masked values written to control and mode registers to match tests on a real PS1.
|
|||
|
|
|||
|
Corrected RxD bit status when no device is driving it(was 0, should be 1).
|
|||
|
|
|||
|
Added emulation of DSR status bit to reads from the status register(though DSR emulation is totally kludgy
|
|||
|
at the moment, need to fix it up in the future).
|
|||
|
|
|||
|
Added emulation of interrupt status bit to reads from the status register.
|
|||
|
|
|||
|
Added emulation of memory card insertion detection bit, that is apparently set when the memory card receives
|
|||
|
power after being off, and is cleared by issuing a (successful?) write.
|
|||
|
|
|||
|
Attempted memory card block reads from beyond the end of the memory card will now fail as tested(granted
|
|||
|
not extensively tested for multiple beyond-end address values) on a real PS1.
|
|||
|
|
|||
|
The high byte of the read address specified in the memory card read command will now be echoed back in
|
|||
|
the following byte sent back to the PS1, as per tests on the real PS1(previously in Mednafen, that byte was
|
|||
|
just being sent as 0x00).
|
|||
|
|
|||
|
The receive buffer byte is now duplicated across all bytes of multi-byte reads of the data port address,
|
|||
|
as on a real PS1.
|
|||
|
|
|||
|
Began adding analog gamepad support; though, the current front port SIO device interface is a bit clunky,
|
|||
|
so probably no more emulated devices will be added until that can be improved.
|
|||
|
|
|||
|
PSX: Removed asserts on MFC0 from a debug register; a warning message will still be printed if a debug register
|
|||
|
is written with MTC0, however.
|
|||
|
|
|||
|
Fixed a bug that could cause an assert() to be thrown with small effective y-scale values on certain types of
|
|||
|
multires video frames, thanks to Speedvicio for reporting it.
|
|||
|
|
|||
|
January 17, 2012:
|
|||
|
PSX emulation module compilation is now enabled by default in the configure script.
|
|||
|
|
|||
|
PC-FX: Fixed a lack of updating a cached copy of the debugger-editable KING register "ADPCMCTRL" on edit.
|
|||
|
|
|||
|
Added a rudimentary test in the configure script to determine if "-fno-strict-overflow" or "-fwrapv" should be used
|
|||
|
(in regards to gcc 4.2.x generating bad code for -fno-strict-overflow).
|
|||
|
|
|||
|
Updated list of gettext translateable source code files.
|
|||
|
|
|||
|
January 16, 2012:
|
|||
|
PSX: Fixed emulation of bit7 of SPU control register, it actually appears to control the reverb algorithm writing
|
|||
|
into the reverb work area, rather than setting the inputs to 0 as it was emulated before. Fixes music corruption
|
|||
|
in "The Roots" demo, music playback in "Vib-Ribbon", and possibly minor sound glitches in other games as well.
|
|||
|
|
|||
|
PSX: CD audio data is now written to SPU RAM without SPU output CD volume being applied, fixes course generation
|
|||
|
in "Vib-Ribbon".
|
|||
|
|
|||
|
Implemented support for mapping command keys(hotkeys) to mouse buttons; it was partially implemented before,
|
|||
|
in that the command key configuration process allowed you to select mouse buttons for a command key, but the
|
|||
|
mouse buttons had no effect in actually triggering the command.
|
|||
|
|
|||
|
January 15, 2012:
|
|||
|
GB: Added GB system type selection via "gb.system_type" setting. Sound emulation nuances have
|
|||
|
changed from the previous default, such that DMG games will select emulation of the DMG sound hardware whereas
|
|||
|
before they selected CGB sound hardware. To achieve the previous behavior, set the "gb.system_type" setting to "cgb",
|
|||
|
though note that in a future version this setting may change color and palette selection as well.
|
|||
|
|
|||
|
January 13, 2012:
|
|||
|
Corrected a wrong argument type in an error reporting function in drivers/shader.cpp, which should fix compilation
|
|||
|
issues with certain OpenGL implementations.
|
|||
|
|
|||
|
PSX: Removed erroneous coordinate check in line-drawing code that was preventing 1-pixel-long lines from
|
|||
|
being drawn, and fixed a divide-by-zero issue that removing the check caused.
|
|||
|
|
|||
|
Port cache is now cleared on game close; has no practical effect on stock Mednafen, but needed for ports
|
|||
|
that allow for more than one game loading per instance, to prevent problems with netplay and state rewinding.
|
|||
|
|
|||
|
PSX: Refined GPU status port bit28 emulation, per tests run on a
|
|||
|
real system(it's a bit weird and inconsistent).
|
|||
|
|
|||
|
PSX: GPU polylines now require at least one line segment(two vertices) to
|
|||
|
be specified before the termination code is honored, per tests on
|
|||
|
a real system.
|
|||
|
|
|||
|
January 12, 2012:
|
|||
|
PSX: Fixed a problem with shaded polyline end code evaluation, fixes startup lockup in "Codename: Tenka".
|
|||
|
|
|||
|
PSX: Fixed GPU flipped sprite drawing, the starting coordinates were being set incorrectly as
|
|||
|
to how a real GPU apparently works(and how a real GPU apparently works is kind of wonky compared
|
|||
|
to sprite flipping on older consoles!).
|
|||
|
|
|||
|
PSX: Sprites are no longer dithered, per test results run on the real thing(though only with commands
|
|||
|
0x64 through 0x67, it's possible that the others couuuuld be different, more tests will be run). Fixes
|
|||
|
the motion-blurred running scene in the beginning of "Silent Hill".
|
|||
|
|
|||
|
January 11, 2012:
|
|||
|
PSX: Improved GPU FB Read, FB Write, FB Copy, and FB Fill command emulation(particularly coordinate and
|
|||
|
size masking; and doing mask bit handling for FB Copy, which fixes FF8 battle transitions), based on tests
|
|||
|
run on a real system.
|
|||
|
|
|||
|
January 8, 2012:
|
|||
|
PSX: Fixed IRQ idle and FIFO room bits, fixes graphical update issues with "The Roots" demo.
|
|||
|
|
|||
|
PSX: Made OT clear DMA occur over time instead of instantly.
|
|||
|
|
|||
|
Fixed a deinterlacer bug that would cause a stale field to be displayed for the first interlaced frame after a
|
|||
|
period of non-interlaced frames.
|
|||
|
|
|||
|
January 6, 2012:
|
|||
|
More build information is displayed on startup.
|
|||
|
|
|||
|
Fixed a memory leak in the internal message display code.
|
|||
|
|
|||
|
January 5, 2012:
|
|||
|
Improved PAL region game support, and added rough region autodetection, with a BIOS filename setting for each supported
|
|||
|
region.
|
|||
|
|
|||
|
January 4, 2012:
|
|||
|
Fixed multiple issues with the signal handler.
|
|||
|
|
|||
|
January 3, 2012:
|
|||
|
Fixed temporal blur memory allocation that could lead to crashes with emulated systems that support
|
|||
|
interlaced video, it was only allocating for a fixed height of 256 when it should have been using the fb_height
|
|||
|
member of MDFNGameInfo.
|
|||
|
|
|||
|
Fixed problems with the configure script that caused user-supplied CPPFLAGS to be ignored.
|
|||
|
|
|||
|
The Win32 build is now compiled with gcc 4.5.4 20111030(prerelease), and compiled with gcc option "-mstackrealign".
|
|||
|
|
|||
|
December 30, 2011:
|
|||
|
PSX: Added emulation of coprocessor->CPU transfer delay slots, fixes
|
|||
|
graphical glitches in "Tekken 2".
|
|||
|
|
|||
|
PSX: Fixed bug that was causing timer overflow flag to be set when it shouldn't be(when in target mode).
|
|||
|
|
|||
|
PSX: GPU CLUT offset wrapping fixed(fixes "Next Tetris").
|
|||
|
|
|||
|
PSX: Return interlaced mode field in bit 13 of GPU status port reads.
|
|||
|
|
|||
|
PSX: Miscellaneous GPU emulation improvements relating to coordinate precision.
|
|||
|
|
|||
|
PSX: Revamped GPU, SPU, and MDEC DMA, (and GPU command buffering), to run over time instead of all at once.
|
|||
|
|
|||
|
December 29, 2011:
|
|||
|
Lynx: Fixed EVERON detection emulation, and emulated a hardware bug regarding SCB data reading, the latter of which
|
|||
|
fixes a graphical glitch in "Joust". Thanks to sage and LX.NET for information and patches.
|
|||
|
|
|||
|
December 21, 2011:
|
|||
|
PSX: Fixed a typo in the return value calculation for control command 0x10, fixes graphical glitches in
|
|||
|
"Xenogears".
|
|||
|
|
|||
|
December 19, 2011:
|
|||
|
PSX: Added backing variables/memory for memory accesses to 0x1f801000-0x1f801023, though their actual functionality isn't
|
|||
|
emulated yet.
|
|||
|
|
|||
|
PSX: Added dummy SIO(rear serial port) emulation to fix a divide-by-zero crash in Wipeout.
|
|||
|
|
|||
|
PSX: Altered ReadN and ReadS semantics, fixes a lockup in Suikoden II.
|
|||
|
|
|||
|
PSX: CD sector error correction will no longer be attempted on mode 2 form 2 sectors, fixes data corruption and lockup
|
|||
|
issues with "Final Fantasy Tactics", "SaGa Frontier", and perhaps others.
|
|||
|
|
|||
|
December 18, 2011:
|
|||
|
PSX: Fixed a problem with line drawing gradient shading, fixes some glitches with lighting effects
|
|||
|
in "Quake II", "Need for Speed III", and probably other glitches in other games as well.
|
|||
|
|
|||
|
PSX: Altered Mem->GPU DMA completion calculation to take into account the GPU's FIFO, though the FIFO simulation
|
|||
|
is rather crude; fixes various games that were flickering messes.
|
|||
|
|
|||
|
PSX: Fixed FB write coordinate and size masking to not be braindead(it didn't allow 1024 width or 512 height,
|
|||
|
which obviously broke games).
|
|||
|
|
|||
|
December 17, 2011:
|
|||
|
PSX: Improved emulation of SPU control register bit 15, fixes sound effects and music glitches in "Viewpoint", "Mat
|
|||
|
Hoffman's Pro BMX", and likely other games as well(though "Hydro Thunder" still seems to have issues with
|
|||
|
garbage sound).
|
|||
|
|
|||
|
PSX: Improved emulation of SPU control register bit 14.
|
|||
|
|
|||
|
December 16, 2011:
|
|||
|
SMS: Began work on fixing H-counter behavior.
|
|||
|
|
|||
|
December 15, 2011:
|
|||
|
PSX: Masked FB write coordinates and widths to the bare minimum; not sure if this is totally correct(need to run
|
|||
|
tests on the real thing), but it fixes a startup lockup in "Crash Team Racing".
|
|||
|
|
|||
|
Revamped internal CD direct reading abstraction, and made several user-visible changes:
|
|||
|
Removed "cdrom.lec_eval" setting; it complicated internal design, and was a bad decision in the sense
|
|||
|
that it could promote distributing patches or CD rips that would likely not work properly when burned to
|
|||
|
an actual disc.
|
|||
|
|
|||
|
Added more proper support for multi-disc CD games; see the CD-emulation section in the documentation
|
|||
|
for further details.
|
|||
|
|
|||
|
Dropped support for physical CD drives that don't support MMC commands, don't support raw sector reading,
|
|||
|
and/or don't support raw subchannel reading.
|
|||
|
|
|||
|
December 7, 2011:
|
|||
|
Added experimental support for enabling linear interpolation on one axis only(via the <system>.videoip setting),
|
|||
|
that doesn't require FBOs or pixel shaders.
|
|||
|
|
|||
|
December 4, 2011:
|
|||
|
PSX: Corrected time of FB Y readout offset lower bit versus field bit setting, fixes startup freeze in
|
|||
|
"X-Men: Mutant Academy".
|
|||
|
|
|||
|
PSX: Made SPU IRQ emulation slightly more accurate.
|
|||
|
|
|||
|
December 3, 2011:
|
|||
|
PSX: Added a kludge to prevent the GPU from returning busy status on status port reads after DMA to the GPU
|
|||
|
finishes its simulated run time, to fix major problems with the battles in "Valkyrie Profile".
|
|||
|
TODO: This kludge will be removed when more accurate DMA emulation is in place in the future.
|
|||
|
|
|||
|
PSX: Reduced triangle vertex x,y coordinate integer precision, fixes missing level graphics in "Tony Hawk's
|
|||
|
Pro Skater 2".
|
|||
|
|
|||
|
December 2, 2011:
|
|||
|
PSX: Improved mask bit emulation, fixes text brightness issues in "Dragon Quest 4", and possibly other
|
|||
|
graphical issues in other games as well.
|
|||
|
|
|||
|
Swapped the lines the scanlines effect is applied to, and removed the OpenGL texture offset hack used when scanlines
|
|||
|
were enabled.
|
|||
|
|
|||
|
December 1, 2011:
|
|||
|
PSX: Improved display FB Y readout position emulation, and added support for line skipping and "dfe" functionality
|
|||
|
when drawing in interlaced mode(it's likely not 100% correct, though).
|
|||
|
|
|||
|
November 29, 2011:
|
|||
|
Added emulation of the VDP quirk present in the Japanese SMS VDP to fix the graphical glitches in the Japanese
|
|||
|
version of "Ys"; however, the quirk will only be emulated when the "sms.territory" setting is set to "domestic".
|
|||
|
|
|||
|
November 28, 2011:
|
|||
|
Replaced the various <system>.pixshader ip* settings with "autoip" and "autoipsharper", and rewrote
|
|||
|
the underlying "sharper" interpolation algorithm to produce more visually-pleasing results. There is some loss of
|
|||
|
potential functionality with this change, but hopefully the gained functionality will greatly offset the loss in
|
|||
|
practice.
|
|||
|
|
|||
|
November 25, 2011:
|
|||
|
SMS: Reduced FM volume to prevent some kind of overflow clicking in Blip_Buffer(TODO: investigate where
|
|||
|
exactly it was happening).
|
|||
|
|
|||
|
November 17, 2011:
|
|||
|
Fixed some code causing compiler warnings in:
|
|||
|
psx/dis.cpp
|
|||
|
pcfx/king.cpp
|
|||
|
pcfx/fxscsi.cpp
|
|||
|
pce_fast/vdc.cpp
|
|||
|
pce/vce_sync.inc
|
|||
|
nes/boards/emu2413.cpp
|
|||
|
nes/ntsc/nes_ntsc.cpp
|
|||
|
md/debug.cpp
|
|||
|
md/cd/cdc_cdd.cpp
|
|||
|
|
|||
|
November 15, 2011:
|
|||
|
Fixed the broken scanline effect when the screen is rotated when using the OpenGL video output driver.
|
|||
|
|
|||
|
November 13, 2011:
|
|||
|
Genesis: Fixed left/right gamepad default key assignments, they were backwards for some reason.
|
|||
|
|
|||
|
Changed the default values for <system>.xres and <system>.yres to "0", which will cause Mednafen to use
|
|||
|
the same resolution as the desktop video mode.
|
|||
|
|
|||
|
Changed the default values for <system>.xscalefs and <system>.yscalefs to "1", and changed the default value
|
|||
|
for <system>.stretch from "0"(disabled) to "aspect_mult2".
|
|||
|
|
|||
|
Revamped the quick help(via F1) screen, removing the annoying partial opacity and changing colors and layout
|
|||
|
slightly.
|
|||
|
|
|||
|
Remapped the screen rotation button from "F8" to "ALT + O", enabled screen rotation for all emulated systems,
|
|||
|
and renamed the "command.rotatescreen" setting to "command.rotate_screen".
|
|||
|
|
|||
|
November 12, 2011:
|
|||
|
Began adding support for emulated analog buttons/axes to the core and driver code(to be used in the future
|
|||
|
for additional PSX input device support).
|
|||
|
|
|||
|
November 11, 2011:
|
|||
|
Implemented a workaround for compiling the unzip code with Gentoo's messed up zlib header files.
|
|||
|
|
|||
|
November 10, 2011:
|
|||
|
NES: Corrected multiple problems with mouse coordinate translation for Zapper, Space Shadow Gun, Oeka Kids Tablet,
|
|||
|
and Arkanoid controller emulation, especially with non-default video settings.
|
|||
|
|
|||
|
November 9, 2011:
|
|||
|
Altered "video.glvsync" semantics slightly, such that a setting of "0"(vsync disabled) will override video card
|
|||
|
system driver settings in the same way that a setting of "1" will. (In short, it makes disabling vsync via this
|
|||
|
setting more reliable)
|
|||
|
|
|||
|
November 8, 2011:
|
|||
|
Added new video stretch modes "aspect_int" and "aspect_mult2".
|
|||
|
|
|||
|
WonderSwan: Implemented experimental setting "wswan.language"; it's only known to affect one game.
|
|||
|
|
|||
|
November 7, 2011:
|
|||
|
PSX: Made SPU execution slaved to the CDC, to prevent potential edge-case synchronization issues for audio streaming.
|
|||
|
|
|||
|
PSX: Implemented rudimentary CD-XA playback.
|
|||
|
|
|||
|
PSX: Implemented GetLocL CD command.
|
|||
|
|
|||
|
October 30, 2011:
|
|||
|
PSX: Implemented more of MDEC, to the point where the video in FMV sequences is working to a degree.
|
|||
|
|
|||
|
October 27, 2011:
|
|||
|
NES: Improved iNES mapper 69 expansion sound emulation accuracy(volume interpretation and channel frequencies
|
|||
|
were off).
|
|||
|
|
|||
|
October 26, 2011:
|
|||
|
PSX: Fixed a bug that caused crashing when emulator sound output was disabled.
|
|||
|
|
|||
|
PSX: Fixed missing initialization of a local variable in a GTE emulation function(very curiously, gcc 4.4 optimized it
|
|||
|
as if it were initialized to zero, and didn't even print a warning about an uninitialized variable being used, but
|
|||
|
the lack of initialization DID cause a warning and broke the code with gcc 4.6).
|
|||
|
|
|||
|
October 25, 2011:
|
|||
|
PSX: More GTE fixes.
|
|||
|
|
|||
|
October 19, 2011:
|
|||
|
PSX: Altered GPU triangle rendering to fix the little problem of
|
|||
|
invisible walls in "Doom".
|
|||
|
|
|||
|
October 18, 2011:
|
|||
|
PSX: Corrected GTE MVMA when mx is 3(it has very strange behavior).
|
|||
|
|
|||
|
October 17, 2011:
|
|||
|
PSX: Improved CPU branch delay slot emulation, fixes a few graphical glitches in "Threads of Fate".
|
|||
|
|
|||
|
PSX: Improved GTE flag emulation, and support for MVMA with the far color vector.
|
|||
|
|
|||
|
October 15, 2011:
|
|||
|
Fixed a bug that caused crackling and increased CPU usage when using certain non-integer fast/slow-forward speed
|
|||
|
multipliers.
|
|||
|
|
|||
|
October 13, 2011:
|
|||
|
GBA: Added GSF-related file extensions to known file extensions list.
|
|||
|
|
|||
|
PSX: Added PSF-related file extensions to known file extensions list.
|
|||
|
|
|||
|
PSX: Disabled memory card emulation when a PSF is loaded.
|
|||
|
|
|||
|
October 12, 2011:
|
|||
|
CDPLAY, SNES, PSX: Changed several large statically-allocated arrays to be dynamically-allocated to reduce
|
|||
|
memory usage when those emulation modules aren't being used.
|
|||
|
|
|||
|
Increased the maximum supported sound output rate to 1048576 Hz, JUST BECAUSE.
|
|||
|
|
|||
|
GB: Fixed loading of custom per-game palettes.
|
|||
|
|
|||
|
October 10, 2011:
|
|||
|
Changed setting and code constraints to increase the maximum supported sound output rate from 48KHz to 192KHz.
|
|||
|
|
|||
|
NES: Altered the resampler to work for output rates higher than 48KHz.
|
|||
|
|
|||
|
Modified Blip_Buffer to use 64-bit types for time-keeping and calculation instead of 32-bit, and extended
|
|||
|
the precision of the fractional component of the output-to-input rate ratio from 20 bits to 32-bits. This
|
|||
|
change to 64-bit types also has the effect for allowing for very large buffer sizes with very high
|
|||
|
output rates. However, if you're using a custom video mode with a refresh rate tuned to minimize juddering
|
|||
|
and frameskipping, you will need to adjust/recalculate those modes for all emulation modules
|
|||
|
*other* than "nes", "psx", and "snes".
|
|||
|
|
|||
|
October 8, 2011:
|
|||
|
NES: Fixed a bug in the MMC5 split-screen emulation that caused a garbage scanline in the intro sequence
|
|||
|
of "Uchuu Keibitai SDF".
|
|||
|
|
|||
|
NES: Fixed MMC5 32K PRG switching mode.
|
|||
|
|
|||
|
September 29, 2011:
|
|||
|
Fixed a file descriptor leak in the gzip loading code, and removed usage of dup().
|
|||
|
|
|||
|
Maximum ROM image size is now enforced in the gzip loading code.
|
|||
|
|
|||
|
September 25, 2011:
|
|||
|
GBA: Fixed an endian-related bug in the sound emulation code.
|
|||
|
|
|||
|
September 22, 2011:
|
|||
|
Changed an erroneous memcpy() of an object to an assignment in the MDFN_Surface constructor.
|
|||
|
|
|||
|
SMS: Removed an unecessary memset() that sometimes tried to memset() a NULL pointer.
|
|||
|
|
|||
|
September 5, 2011:
|
|||
|
PSX: Changed coordinate precision in the GPU sprite drawing code so that the level in "Skullmonkeys"
|
|||
|
doesn't disappear when your character goes far enough to the right.
|
|||
|
|
|||
|
September 4, 2011:
|
|||
|
PSX: Added memory card support.
|
|||
|
|
|||
|
PSX: Reworked SIO(for front ports) code, fixes problems with controllers acting totally wonky on some games.
|
|||
|
|
|||
|
August 29, 2011:
|
|||
|
NES: Fixed potential(in ports) memory leaks in the Game Genie emulation code.
|
|||
|
|
|||
|
August 28, 2011:
|
|||
|
PCE, PCE_FAST: Fixed an Arcade Card emulation bug that made Garou Densetsu 2 virtually unplayably difficult.
|
|||
|
|
|||
|
August 25, 2011:
|
|||
|
Added a "close()" method to FileWrapper, and modified the QuickTime and WAV recording code to make use of it.
|
|||
|
|
|||
|
August 24, 2011:
|
|||
|
GBA: Encapsulated in a namespace.
|
|||
|
|
|||
|
GB: Encapsulated in a namespace.
|
|||
|
|
|||
|
GB: Added a few minor missing variables to save states.
|
|||
|
|
|||
|
PCE, PCE_FAST, PC-FX: Fixed potential memory leak(in ports) in the SCSI CD emulation code.
|
|||
|
|
|||
|
NES: Fixed potential memory leaks(in ports) in the FDS and PPU emulation code.
|
|||
|
|
|||
|
August 23, 2011:
|
|||
|
PC-FX: Fixed a potential memory leak in the RAINBOW emulation code, again currently only relevant to ports of Mednafen.
|
|||
|
|
|||
|
Refactored and reorganized physical CD and image reading code, and moved utility-type functions, types, and
|
|||
|
enums into their own namespace, with somewhat more consistent naming, and removal of redundant functions and macros.
|
|||
|
|
|||
|
Fixed a crash when "cdrom.lec_eval" is "0" and a physical data CD is loaded.
|
|||
|
|
|||
|
Fixed potential(in ports of Mednafen) memory leaks in the CD-ROM emulation code.
|
|||
|
|
|||
|
August 20, 2011:
|
|||
|
PCE, PCE_FAST: Fixed potential memory leaks(in ports of Mednafen, not Mednafen as-is) in HES player code.
|
|||
|
|
|||
|
August 18, 2011:
|
|||
|
WonderSwan: Fixed an issue in the debugger's disassembly code that had the potential to cause the
|
|||
|
compiler's linker to error out in certain situations.
|
|||
|
|
|||
|
NGP: Fixed a memory map initialization bug(won't affect Mednafen as it is currently, but may affect ports that
|
|||
|
load more than one game without restarting Mednafen). Thanks to raz0red for pointing it out.
|
|||
|
|
|||
|
August 13, 2011:
|
|||
|
Fixed(again) waveform Y coordinate saturation in the music player.
|
|||
|
|
|||
|
-- 0.9.18-WIP: --
|
|||
|
|
|||
|
August 11, 2011:
|
|||
|
SexyAL: Added support for reversed-byte-order(relative to CPU endianness) sample formats to the ALSA driver; this
|
|||
|
will allow for better support for non-native soundcards(such as a little-endian sample format "PC" soundcard plugged
|
|||
|
into an old PowerPC Mac big-endian system running Linux).
|
|||
|
|
|||
|
SNES: Added support for custom palettes.
|
|||
|
|
|||
|
GB: Added support for custom palettes.
|
|||
|
|
|||
|
August 9, 2011:
|
|||
|
The "P" subchannel is now simulated along with the Q subchannel in the CD read functions. This shouldn't have any
|
|||
|
effect on emulation now, as the P subchannel data isn't used by any system emulation code in Mednafen, but it may
|
|||
|
be used in the future.
|
|||
|
|
|||
|
Improved accuracy of simulated Q subchannel data for pregap areas, in the
|
|||
|
CD read functions.
|
|||
|
|
|||
|
August 8, 2011:
|
|||
|
Added path checks to files referenced in CUE sheets and PSF files, controlled(enabled/disabled) via the
|
|||
|
setting "filesys.untrusted_fip_check".
|
|||
|
|
|||
|
Added untested support for the "POSTGAP" directive in CUE sheets.
|
|||
|
|
|||
|
Added support for specifying absolute file paths in PSF files and CUE/TOC files.
|
|||
|
|
|||
|
August 7, 2011:
|
|||
|
When loading a state, if the recorded variable/datum size is not equal to the expected size of the variable,
|
|||
|
it will be treated as missing and not loaded.
|
|||
|
|
|||
|
Removed redundant function "CDIF_GetTrackStartPositionLBA()".
|
|||
|
|
|||
|
Removed mostly-redundant, and inconsistent across disc images and physical discs, functions
|
|||
|
"cdrfile_get_track_sec_count()" and "CDIF_GetTrackSectorCount()".
|
|||
|
|
|||
|
GB: Fixed coarse instruction timing and flag behavior for several instructions, based on blargg's CPU tests and
|
|||
|
on code in the VBA-M SVN repository.
|
|||
|
|
|||
|
Fixed a file descriptor leak in the save state preview code, that could cause file descriptor exhaustion
|
|||
|
if multiple save states are used extensively in one session. Thanks to raz0red for reporting the bug.
|
|||
|
|
|||
|
August 5, 2011:
|
|||
|
SNES: Implemented RAM cheats and cheat search via the common interface.
|
|||
|
|
|||
|
WonderSwan: Cart save RAM is now available to the cheat engine code(it was supposed to be before, but the code
|
|||
|
was passing the pointer before it was initialized).
|
|||
|
|
|||
|
Genesis: Updated EEPROM code to newer code from Genesis Plus GX, and fixed most of the EEPROM database entries
|
|||
|
that were previously broken in Mednafen.
|
|||
|
|
|||
|
August 4, 2011:
|
|||
|
Genesis: Refactored and tweaked input device emulation a bit to fix input unresponsiveness issues in
|
|||
|
"Samurai Spirits/"Samurai Shodown".
|
|||
|
|
|||
|
August 3, 2011:
|
|||
|
Genesis: Revamped 6-button gamepad emulation, and made it actually work.
|
|||
|
|
|||
|
August 1, 2011:
|
|||
|
Fixed a lack of mutex locks in the debugger's memory viewer when editing memory, that could cause crashes or wrong
|
|||
|
behavior in certain cases.
|
|||
|
|
|||
|
Began work on supporting comments in the disassembled code in the debugger.
|
|||
|
|
|||
|
July 29, 2011:
|
|||
|
Genesis: Made H-counter reading less completely wrong, but it's likely still mostly wrong(added a TODO entry
|
|||
|
for fixing it).
|
|||
|
|
|||
|
WonderSwan: Fixed(made considerably less broken at least!) debugger's fubar branch
|
|||
|
history(it only took a few years, I guess no one used the WonderSwan debugger much :b).
|
|||
|
|
|||
|
July 28, 2011:
|
|||
|
WonderSwan: Cleaned up debugger code a bit.
|
|||
|
|
|||
|
WonderSwan: Encapsulated in a namespace.
|
|||
|
|
|||
|
The music player interface's waveform display will now saturate the Y coordinate to the screen boundaries
|
|||
|
rather than forcing it to the middle of the screen(not sure why it was doing that before, doesn't make much sense).
|
|||
|
|
|||
|
NES: Tweaked the audio resampling algorithms a bit to prevent degraded audio quality on high-amplitude input
|
|||
|
samples.
|
|||
|
|
|||
|
NES: Corrected audio resampler filter setup debug printfs to use more-correct labels, and added more information.
|
|||
|
|
|||
|
NES: Added AltiVec support to the audio resampler.
|
|||
|
|
|||
|
July 27, 2011:
|
|||
|
Internal text renderer now truncates text with pixel granularity rather than glyph granularity.
|
|||
|
|
|||
|
July 26, 2011:
|
|||
|
NES: Reduced fb_height from 256 to 240.
|
|||
|
|
|||
|
GBA: Changed "gba.bios" setting to use Mednafen's firmware path construction semantics rather than specifying a
|
|||
|
path used directly.
|
|||
|
|
|||
|
GBA: The "gba.bios" setting is now ignored when playing a GSF, fixing GSF playback with a real BIOS ROM
|
|||
|
image is used.
|
|||
|
|
|||
|
July 25, 2011:
|
|||
|
PCE_FAST: Changed x86 inline assembly to manually push and pop rbx/ebx, rather than listing it in the clobber list,
|
|||
|
to work around pedanticness in compilers in certain cases.
|
|||
|
|
|||
|
Added a test to make sure "char" type is signed to "tests.cpp".
|
|||
|
|
|||
|
Added a quick and dirty signed overflow test to "tests.cpp".
|
|||
|
|
|||
|
July 18, 2011:
|
|||
|
Lynx: ROM image headers are now read out field-by-field rather than memcpy()'ing into a packed struct.
|
|||
|
|
|||
|
July 16, 2011:
|
|||
|
Genesis: A loaded file with an extension of "md" will now be treated as a Sega Genesis/Megadrive game.
|
|||
|
|
|||
|
July 8, 2011:
|
|||
|
WonderSwan: Added "Code Segment", "Stack Segment", "Data Segment", and "Extra Segment" logical address spaces
|
|||
|
to the debugger's memory editor.
|
|||
|
|
|||
|
July 5, 2011:
|
|||
|
Added highlighting to the instruction disassembly for the instruction that PC is pointing to, to avoid confusion
|
|||
|
when the disassembly cursor is moved off in step mode from the current PC.
|
|||
|
|
|||
|
Debugger disassembly will now be forcibly resynchronized to PC, in addition to the current disassembly cursor
|
|||
|
address(currently, only the latter was synched).
|
|||
|
|
|||
|
PCE: Revamped branch history to show the old PC in addition to the new PC, not to add an entry when a conditional
|
|||
|
branch isn't taken, to show reset and IRQ events/"branches", and to show branch count when repeatedly branching to
|
|||
|
the same target from the same source with no other branches in-between. These changes necessitated reducing the
|
|||
|
number of entries in the branch history from 32 to 24.
|
|||
|
T = timer, 1 = IRQ1, 2 = IRQ2, R = reset.
|
|||
|
|
|||
|
Increased the available area for branch history display in the debugger.
|
|||
|
|
|||
|
Halved the size(and number of bytes displayed) of the memory watch section in the debugger when the disassembly
|
|||
|
list is selected(and offseted the watch address by -0x80 when the register list is selected).
|
|||
|
|
|||
|
Jun 26, 2011:
|
|||
|
Replaced the old CPU flag testing code with newer code from libavutil from ffmpeg.
|
|||
|
|
|||
|
Restructured architecture detection code in configure.ac.
|
|||
|
|
|||
|
Jun 19, 2011:
|
|||
|
Fixed a minor(it's unlikely to have noticeably affected any commercial games) LFO emulation bug in the HuC6280 sound
|
|||
|
core emulation code, reported by "mic_".
|
|||
|
|
|||
|
Jun 13, 2011:
|
|||
|
GBA: GSF playback now uses new PSF loading code developed for the PS1 emulation module.
|
|||
|
|
|||
|
Changed the music player overlay to use std::string instead of C-strings.
|
|||
|
|
|||
|
Jun 7, 2011:
|
|||
|
Fixed a lack of variable initialization in the WAV recording code, which could cause WAV recordings to have an
|
|||
|
erroneous value in a size field in the header.
|
|||
|
|
|||
|
Jun 5, 2011:
|
|||
|
PC-FX, VB: Implemented a minor CPU optimization that could cause regressions. TODO: Test games.
|
|||
|
|
|||
|
Jun 2, 2011:
|
|||
|
Changed "INLINE" #define in the SoftFloat target definition file from "extern inline" to "static inline" to resolve
|
|||
|
issues user "mziab" reported with gcc 4.6.0.
|
|||
|
|
|||
|
May 30, 2011:
|
|||
|
NGP: Fixed the "ngp.language" setting to work properly with the non-numeric setting values("english" and "japanese")
|
|||
|
(previously it was always Japanese language selection for both strings).
|
|||
|
|
|||
|
May 28, 2011:
|
|||
|
Genesis: Fixed a bug in the 68K emulation core that caused major problems in some games("Instruments of Power",
|
|||
|
"The Lost Vikings", perhaps others) when running on big-endian platforms.
|
|||
|
|
|||
|
May 20, 2011:
|
|||
|
PCE: Loading Games Express CD games will now automatically load the Games Express CD Card BIOS; BIOS filename
|
|||
|
is specified by the new "pce.gecdbios" setting, default value of "gecard.pce".
|
|||
|
|
|||
|
PCE: Added Games Express CD game detection based on CRC32s for the remaining handful of games that the previous
|
|||
|
method didn't detect.
|
|||
|
|
|||
|
May 18, 2011:
|
|||
|
Tweaked CD simulated read ahead to read farther ahead, but incrementally instead of all at once as before.
|
|||
|
|
|||
|
April 28, 2011:
|
|||
|
SNES: Fixed PAL video output size, and frame rate when using netplay.
|
|||
|
|
|||
|
April 27, 2011:
|
|||
|
SexyAL: Rewrote the channel and format conversion code, now allowing for output channel count up to 8; and,
|
|||
|
tweaked the ALSA code to work with devices that only support > 2(but code is limited to <= 8) channels.
|
|||
|
(The Audigy 2's "p16v" sub-device in ALSA can now be used directly by Mednafen)
|
|||
|
|
|||
|
April 23, 2011:
|
|||
|
Fixed a crash on exit when one audio file(FLAC, WAV, Vorbis, etc.) is used for multiple tracks in a CUE sheet.
|
|||
|
|
|||
|
April 17, 2011:
|
|||
|
NES, PCE: Fixed relative branch target address 16-bit wrapping in the debugger's disassembler.
|
|||
|
|
|||
|
PCE: Added "SET" instruction to the debugger's disassembler(can't believe it's been missing all this time).
|
|||
|
|
|||
|
April 15, 2011:
|
|||
|
Fixed "--disable-vb" option to ./configure, thanks to Rakashazi for reporting the bug.
|
|||
|
|
|||
|
April 8, 2011:
|
|||
|
PC-FX: Fixed debugger's timer register text, and hooked up sound chip register setting in the debugger.
|
|||
|
|
|||
|
PCE: Altered VDC line timing to fix raster effects in "Camp California" and "Shape Shifter". The changed way probably
|
|||
|
still isn't right, but it's something commercial games are unlikely to rely on anyway(except in maybe those
|
|||
|
hidden "four-screen" modes), and the previous way WAS breaking commercial games.
|
|||
|
|
|||
|
PCE: Fixed a timing bug in the maximum VDC wait state calculation code(wasn't taking into account VCE-controlled
|
|||
|
events like hsync and vsync changing state).
|
|||
|
|
|||
|
April 5, 2011:
|
|||
|
VB: Fixed register 30 state during and after *bsu instructions. Thanks to blitter for pointing the bug out
|
|||
|
and submitting a patch.
|
|||
|
|
|||
|
PCE: Improved ADPCM emulation based on more tests run on the real system. Fixes a lockup bug in "Hyper Wars".
|
|||
|
(The changes made have the potential to cause regressions, however, if any are found please report them)
|
|||
|
|
|||
|
Mar 7, 2011:
|
|||
|
Hackish fix for problems with CUE/BIN disc images(particularly bad with multiple BIN style images) that contain
|
|||
|
"INDEX 00" statements in the CUE sheet. (Problems ranging from incorrect Q subchannel data for the pregap
|
|||
|
to wrong track start LBAs)
|
|||
|
|
|||
|
February 12, 2011:
|
|||
|
PC-FX, MD: Factored the deinterlacing code out of the individual emulation modules and into the core Mednafen code.
|
|||
|
|
|||
|
PCE: Adjusted ADPCM emulation slightly, fixes massive A/V sync problems with "Sherlock Holmes".
|
|||
|
|
|||
|
January 29, 2011:
|
|||
|
NGP: Masked NGP BIOS syscall code properly, thanks to SANiK for pointing it out.
|
|||
|
|
|||
|
MD: Changed line timings so vertical refresh rates are the same in both 256 and 320-wide modes.
|
|||
|
|
|||
|
PCE: Fixed a Seiya Monogatari ADPCM-related lockup, thanks to Rakashazi for pointing the problem out.
|
|||
|
|
|||
|
January 15, 2011:
|
|||
|
Began adding PlayStation 1 emulation.
|
|||
|
|
|||
|
January 5, 2011:
|
|||
|
Fixed "volatile" placement on several pointer declarations.
|
|||
|
|
|||
|
-- 0.9.16-WIP: --
|
|||
|
|
|||
|
December 31, 2010:
|
|||
|
PCE: Re-enabled the VDC wait-state-limiting kludge, with some tweaks, to prevent hypothetical emulator crashes.
|
|||
|
|
|||
|
PCE: Added a FIFO to buffer the CD subchannel data. Fixes CD+G playback, which was broken when VRAM access wait stating
|
|||
|
was implemented.
|
|||
|
|
|||
|
Adjusted a few setting descriptive texts, for the automatically-generated documentation.
|
|||
|
|
|||
|
December 29, 2010:
|
|||
|
Added setting aliases, allowing old setting names to be used in the settings file(though the new setting name
|
|||
|
will be saved back to the setting file, not the old name) and on the command line. Currently,
|
|||
|
settings renamed since December 15, 2010 have old setting name aliases. (Note: This of course doesn't apply to
|
|||
|
the numerous removed settings since 0.9.15).
|
|||
|
|
|||
|
Renamed settings:
|
|||
|
frameskip -> video.frameskip
|
|||
|
glvsync -> video.glvsync (Might want to rename this to video.opengl.vsync or video.driver.opengl.vsync in the future)
|
|||
|
fs -> video.fs
|
|||
|
vdriver -> video.driver
|
|||
|
|
|||
|
|
|||
|
December 26, 2010:
|
|||
|
Added "gama" atom to recorded QuickTime files.
|
|||
|
|
|||
|
Added setting "qtrecord.vcodec", and added support for the QuickTime PNG codec. Possible values for this setting
|
|||
|
are "raw", "cscd", and "png", with the default being "cscd".
|
|||
|
|
|||
|
Added "ftyp" atom writing to the beginning of QuickTime files created.
|
|||
|
|
|||
|
Class-ified PNG writing code, and fixed a bug from when the filesys.fname_* settings were added that broke
|
|||
|
screen snapshots.
|
|||
|
|
|||
|
Wrote new MS WAV file recording code to replace the old code that relied on libsndfile. This allows sound recording
|
|||
|
to function even when Mednafen is compiled without libsndfile.
|
|||
|
|
|||
|
December 25, 2010:
|
|||
|
Fixed various problems with the QuickTime writing code. VLC and the official Apple QuickTime player can now
|
|||
|
play the files Mednafen produces(though not necessarily the video component in the Apple QuickTime player).
|
|||
|
|
|||
|
open() in the FileWrapper class is now passed with flag O_BINARY if it's defined. Fixes QT recording
|
|||
|
on MS Windows.
|
|||
|
|
|||
|
Creation and modification timestamps in QuickTime files produced are now filled with the time of recording start,
|
|||
|
rather than being left at 0.
|
|||
|
|
|||
|
Adjusted the QuickTime matrix calculation used for aspect ratio correction.
|
|||
|
|
|||
|
Added settings "qtrecord.w_double_threshold" and "qtrecord.h_double_threshold". Users on slower systems, or
|
|||
|
those who are transcoding via full-featured software after recording, may want to set these to 0.
|
|||
|
|
|||
|
December 24, 2010:
|
|||
|
|
|||
|
Mednafen is now compiled with largefile support enabled on 32-bit platforms(Win32 kind of included, its largefile
|
|||
|
support is...DIFFERENT), though it is currently only necessary for QuickTime movie recording.
|
|||
|
|
|||
|
Added experimental QuickTime movie recording support via the -qtrecord command-line switch. Video data
|
|||
|
is encoded via the CamStudio codec(this may cause problems for Apple's QuickTime player software, as this
|
|||
|
codec is typically not used in QuickTime containers AFAIK), audio data is raw. A few auxillary atoms
|
|||
|
were left out, and may or may not need to be implemented in the future.
|
|||
|
MPlayer, ffmpeg, and Youtube seem to be able to handle the files produced, though MPlayer has occasional
|
|||
|
random A/V sync issues(at least for me). The version of VLC I have installed can play the video, but aspect
|
|||
|
ratio correction and audio playback are broken.
|
|||
|
|
|||
|
Removed the custom MMM-format recording and playback.
|
|||
|
|
|||
|
Added lcm_width and lcm_height members to the MDFNGI struct, to aid in video recording(and perhaps other uses
|
|||
|
in the future).
|
|||
|
|
|||
|
December 19, 2010:
|
|||
|
Added "%%" specifier to filesys.fname_* parser.
|
|||
|
|
|||
|
Fixed a couple of deadlock bugs in the signal handler, though the probability of them having been encountered
|
|||
|
during normal Mednafen use is very low.
|
|||
|
|
|||
|
sigaction() will now be used instead of signal(), if available.
|
|||
|
|
|||
|
Fixed strerror_r() usage(AGAIN, hopefully corectly this time) on non-glibc platforms.
|
|||
|
|
|||
|
December 18, 2010:
|
|||
|
Renamed settings:
|
|||
|
nethost -> netplay.host
|
|||
|
netport -> netplay.port
|
|||
|
netpassword -> netplay.password
|
|||
|
netlocalplayers -> netplay.localplayers
|
|||
|
netnick -> netplay.nick
|
|||
|
netgamekey -> netplay.gamekey
|
|||
|
netmerge -> netplay.merge
|
|||
|
netsmallfont -> netplay.smallfont
|
|||
|
|
|||
|
Updated QuickLZ from 1.2.0 to 1.3.1. (1.4.1 seems to have some kind of a performance regression, at least how it's used in Mednafen),
|
|||
|
and changed the default value for the "srwcompressor" setting from "minilzo" to "quicklz".
|
|||
|
|
|||
|
December 17, 2010:
|
|||
|
Renamed settings:
|
|||
|
sounddriver -> sound.driver
|
|||
|
sounddevice -> sound.device
|
|||
|
soundrate -> sound.rate
|
|||
|
soundvol -> sound.volume
|
|||
|
soundbufsize -> sound.buffer_time
|
|||
|
|
|||
|
Added filesys.fname_movie, filesys.fname_state, filesys.fname_sav, and filesys.fname_snap settings. These settings
|
|||
|
contain a format string, and through manipulation of this format string, the previous functionality of
|
|||
|
"dfmd5", filesys.*_samedir, and "snapname" settings can be obtained. For example, remove the "%M" specifier
|
|||
|
to simulate setting the "dfmd5" setting to 0. Available specifiers:
|
|||
|
|
|||
|
%b - Mednafen base directory (no trailing slash)
|
|||
|
%z - Path separator
|
|||
|
%d - Loaded file base directory("/games/nintendo/megaman.nes" -> "/games/nintendo")
|
|||
|
%f - File base("/games/nintendo/megaman.nes" -> "megaman")
|
|||
|
%F - Same as %f, but replaced with emulation module's short name with recognized multi-CD CD sets.
|
|||
|
%m - MD5 hash of the currently loaded game.
|
|||
|
%M - Empty for first evaluation per full path construction, then filled with the game's
|
|||
|
MD5 hash(or the game set's MD5 hash ID for multi-CD CD sets) followed by a period.
|
|||
|
%e - Loaded file extension("/games/nintendo/megaman.nes" -> ".nes")
|
|||
|
%s - Current emulation module's short name.
|
|||
|
%p - Special parameter(usually a number/numeric counter).
|
|||
|
%x - Default extension for the file type the path will be used for(extension is WITHOUT the period).
|
|||
|
%X - A merging of %p and %x(replaces the last character of %x with %p).
|
|||
|
If the constructed path is relative, it will be appended to the Mednafen base directory and value of the
|
|||
|
filesys.*_path settings automatically. If the constructed path is absolute, this appending will not occur.
|
|||
|
|
|||
|
Removed setting dfmd5.
|
|||
|
|
|||
|
December 16, 2010:
|
|||
|
Removed the filesys.*_samedir settings, as they're largely unnecessary, can cause file corruption in certain
|
|||
|
cases, and generally cause filesystem clutter.
|
|||
|
|
|||
|
Removed the "snapname" setting(it's now hardcoded-on, effectively), and altered the snapshot naming template to
|
|||
|
produce filenames that will be sorted correctly when in a list(IE in a file browser).
|
|||
|
|
|||
|
NES: Added hashes of alternate VS SMB and VS The Goonies ROM images into the internal VS Unisystem database.
|
|||
|
|
|||
|
NES: Cleaned up palette-handling code, and updated the VS System palettes.
|
|||
|
|
|||
|
December 15, 2010:
|
|||
|
NES: Added rudimentary bus conflict emulation to mapper 3, to fix corrupt graphics in Cybernoid.
|
|||
|
|
|||
|
Removed the "pce.colormap", "pce_fast.colormap", "nes.cpalette", and "gba.colormap" settings. Custom palettes
|
|||
|
will automatically be loaded if they're named "pce.pal", "pce_fast.pal", "nes.pal", and "gba.pal" respectively,
|
|||
|
under the "palettes" directory under the Mednafen base directory. All of these systems can now use custom per-game
|
|||
|
palettes by name a palette file as <FileBase>.pal or <FileBase>.<MD5 Hash>.pal, IE "Mega Man 4.pal" or
|
|||
|
"Mega Man 4.db45eb9413964295adb8d1da961807cc.pal". Using the form that includes the MD5 hash is preferred, to
|
|||
|
prevent conflicts between games on different systems with the same filenames, and conflicts with the custom palette
|
|||
|
for all games on an emulated system.
|
|||
|
|
|||
|
Renamed path_snap, path_sav, path_state, path_movie, path_cheat, path_palette, path_firmware to filesys.path_*,
|
|||
|
changed the interpretation of the path so that if the path is relative, it is relative to the Mednafen base directory,
|
|||
|
and filled in the default values for these settings as the Mednafen default directories("sav", "mcs", "mcm",
|
|||
|
"snaps", etc.).
|
|||
|
|
|||
|
Changed the directory used for custom NES palettes from "gameinfo" to "palettes", since that was the only thing the
|
|||
|
directory was being used for.
|
|||
|
|
|||
|
Changed MDFN_Thread and MDFN_Mutex structs to forward declarations.
|
|||
|
|
|||
|
December 13, 2010:
|
|||
|
Fixed a rather insidious bug with the 64-bit little-endian decoding function(bug was due to a misunderstanding of
|
|||
|
implicit type promotion rules). This fixes some (potential) issues with MMM playback, and RTC clock corruption
|
|||
|
when loading the GameBoy MBC3 mapper's RTC data from a sav file.
|
|||
|
|
|||
|
Added MasterClock and MasterCycles fields to the MMM format. This change is incompatible with previously-recorded
|
|||
|
MMM movies.
|
|||
|
|
|||
|
Added MasterCycles setting on the remaining systems.
|
|||
|
|
|||
|
December 12, 2010:
|
|||
|
PCE: Implemented mid-frame synching and input updating(at this point, it only happens twice per frame, IE only once
|
|||
|
"in the middle"), although it can be extended to more points very easily in the future if the need should arise.
|
|||
|
This should reduce input latency by up to 8ms in cases not improved by the previous change(below),
|
|||
|
and allows "Takeda Shingen" to be playable. Mid-frame sync required a lot of code refactoring and kludging, Mednafen
|
|||
|
was definitely not designed nor written with this feature in mind, so it's possible some things may be broken now
|
|||
|
when using the PCE module/emulation; for example, rewinding while movie recording is active might corrupt the movie.
|
|||
|
Also, mid-frame syncing isn't done while netplay is active, so "Takeda Shingen" will remain unplayable in netplay.
|
|||
|
|
|||
|
PCE: Altered frame end timing slightly to reduce input lag on some games by 1 frame.
|
|||
|
|
|||
|
SNES: Reduced input latency by 1 frame(~16.67ms).
|
|||
|
|
|||
|
If the MEDNAFEN_HOME environment variable is either unset or empty, and the HOME environment variable is unset,
|
|||
|
and getuid() and getpwuid() are available, the home directory used in consructing Mednafen's base directory will now be
|
|||
|
obtained from the system password file via getpwuid().
|
|||
|
|
|||
|
Rewrote most of the speed throttling and frameskip determination code to be cleaner, and made a few minor tweaks
|
|||
|
to the algorithms.
|
|||
|
|
|||
|
December 9, 2010:
|
|||
|
Being in the input configuration process will now disable all emulated device input during the process, and until 300ms
|
|||
|
after it ends.
|
|||
|
|
|||
|
December 8, 2010:
|
|||
|
PCE: Rewrote the HES VDC initialization HuC6280 assembly code to work correctly with the new VDC emulation
|
|||
|
accuracy improvements.
|
|||
|
|
|||
|
Fixed a bug that would prevent exiting if physical CD-ROM reading hung, and the exit key was assigned
|
|||
|
to a joystick button or a mouse button.
|
|||
|
|
|||
|
Fixed an old kludge/bug that caused keyboard input latency for emulated devices(IE not command keys) to be
|
|||
|
1 frame(16.7 ms usually) higher than it should have been.
|
|||
|
|
|||
|
PCE: Improved VRAM DMA emulation accuracy, improved wait state emulation accuracy, added kludgy emulation of a
|
|||
|
CPU VRAM-access dead zone tied to HSYNC(fixes "Star Breaker" locking up when leaving a town), and improved VDC
|
|||
|
horizontal timing register emulation.
|
|||
|
|
|||
|
-- 0.9.15-WIP: --
|
|||
|
|
|||
|
November 12, 2010:
|
|||
|
SNES: Reworked a floating-point compare to work correctly with x87 FPU math on gcc(and probably most 32-bit x86
|
|||
|
compilers). TODO: Audit code to find and correct any other instances of similar problematic floating-point code.
|
|||
|
|
|||
|
November 11, 2010:
|
|||
|
MasterCycles field of EmulateSpecStruct is now assigned in more emulated systems.
|
|||
|
|
|||
|
November 10, 2010:
|
|||
|
Genesis: Converted the "md.region" and "md.reported_region" settings to enum types, to allow for automatic document
|
|||
|
generation for the various values for these settings.
|
|||
|
|
|||
|
Genesis: Fixed various issues that were preventing emulation from working properly on big-endian systems.
|
|||
|
|
|||
|
SNES: Updated the PowerPC code in libco with "blargg_libco_ppc64-5".
|
|||
|
|
|||
|
November 9, 2010:
|
|||
|
VB: Fixed an endian-related bug with joystick input state decoding.
|
|||
|
|
|||
|
VB: Made the VIP emulation code big-endian-compatible.
|
|||
|
|
|||
|
VB, PC-FX: Made the V810 core's "fast" mode work on big-endian platforms.
|
|||
|
|
|||
|
Genesis: Fixed a major problem with illegal instruction handling; executing a long string of illegal instructions
|
|||
|
will no longer lock up Mednafen. Thanks to Zombie for pointing out the lockup problem.
|
|||
|
|
|||
|
November 8, 2010:
|
|||
|
|
|||
|
Fixed(hopefully) OpenGL pixel shader initialization error detection.
|
|||
|
|
|||
|
Fixed "supereagle" special scaler crashing when the source surface was large.
|
|||
|
|
|||
|
VB: Added setting "vb.sidebyside.separation", which controls the number of pixels between the L/R view(pixel count is
|
|||
|
pre-scaling by xscale(fs)), with a default value of 0. Previously, the effective separation for the sidebyside
|
|||
|
was 16, so if you want to replicate the behavior of previous versions, set this setting's value to 16.
|
|||
|
|
|||
|
November 7, 2010:
|
|||
|
NGP, SMS, NES: const-ified some const data.
|
|||
|
|
|||
|
NGP, PC-FX, NES, WonderSwan: Fixed various initialization issues(they're not a problem now, but it's done for future-proofing).
|
|||
|
|
|||
|
WonderSwan: Fixed internal EEPROM initialization to not persist across game loadings(this doesn't apply to Mednafen...
|
|||
|
yet ;)). TODO: Evaluate removing persistence across power events.
|
|||
|
|
|||
|
MDFND_DestroyMutex() now actually frees the memory for the mutex wrapper.
|
|||
|
|
|||
|
Fixed a few initialization and deinitialization bugs in cdrom/cdromif.cpp (thanks to Rakashazi for pointing them out)
|
|||
|
|
|||
|
-- 0.9.14-WIP: --
|
|||
|
|
|||
|
November 6, 2010:
|
|||
|
Corrected the last updated dates in the auto-generated documentation files.
|
|||
|
|
|||
|
VB: Uncommented out important save state code that was commented out for debugging purposes(and was accidentally left
|
|||
|
that way).
|
|||
|
|
|||
|
-- 0.9.13-WIP: --
|
|||
|
November 5, 2010:
|
|||
|
PCE: The timestamp displayed in the debugger is now counted from when a virtual power off->on occurred, rather
|
|||
|
than the start of the Mednafen video frame. However, the displayed value wrap when it reaches 2^32 due to limitations
|
|||
|
in the debugger code(TODO: fix in the future).
|
|||
|
|
|||
|
PCE: Fixed default mouse L/R button assignments(they were reversed). (You'll need to delete the Mednafen configuration
|
|||
|
file for the new defaults to take effect, or reconfigure the mouse in Mednafen, with the correct L/R button
|
|||
|
assignment)
|
|||
|
|
|||
|
PCE: Fixed a bug that caused the debugger to corrupt Arcade Card state in certain common situations while the debugger
|
|||
|
was open or breakpoints were enabled.
|
|||
|
|
|||
|
PCE, PCE_FAST: Reworked and fixed the ADPCM code to closer match a real system(based on hardware tests). Previously,
|
|||
|
ADPCM playback IRQ generation was sooooo wrong. These changes finally fix the broken battle voices in "Langrisser",
|
|||
|
yay.
|
|||
|
|
|||
|
October 17, 2010:
|
|||
|
Fixed 2xSaI family filters to not crash; the 2xSaI filter source image data is now from a temporary video buffer
|
|||
|
created from the original source video buffer, but with padding on all sides to handle 2xSaI's lack of source
|
|||
|
video buffer coordinate bounds checking.
|
|||
|
|
|||
|
October 14, 2010:
|
|||
|
Re-disabled physical CD unreadable sector testing code, as it causes too long of a delay at startup. A
|
|||
|
different solution will need to be found.
|
|||
|
|
|||
|
October 4, 2010:
|
|||
|
PCE: Optimized debugger PC and opcode breakpoint testing during emulation.
|
|||
|
|
|||
|
October 3, 2010:
|
|||
|
PCE: Fixed CD register reads with side effects when the debugger is open, and changed PCE_InDebug from bool to uint32,
|
|||
|
to allow for ++/-- pairs instead of = true, = false, to handle potential recursion.
|
|||
|
|
|||
|
September 30, 2010:
|
|||
|
PCE_FAST: Fixed a emulator crash in the case that a game didn't initialize MPRs properly.
|
|||
|
|
|||
|
PCE_FAST: Made a small optimization to the HuC6280 core.
|
|||
|
|
|||
|
PCE_FAST: Rewrote a bit of HES playback code so it works at a lower-level, allowing the removal/privatization of some
|
|||
|
HuC6280 state setting functions.
|
|||
|
|
|||
|
September 29, 2010:
|
|||
|
PCE_FAST: Fixed a reversed-tile issue with BG drawing on big-endian platforms(thanks to Rakashazi for pointing it out).
|
|||
|
|
|||
|
PCE_FAST: Added 16bpp rendering support.
|
|||
|
|
|||
|
NES: Added 16bpp rendering support.
|
|||
|
|
|||
|
Added 16bpp support to MDFN_Surface and MDFN_PixelFormat. However, most internal components in Mednafen currently
|
|||
|
can't handle 16bpp, emulation modules included.
|
|||
|
|
|||
|
September 25, 2010:
|
|||
|
Altered the text for the "sound" setting to better match what it actually does.
|
|||
|
|
|||
|
September 19, 2010:
|
|||
|
The destination blit rectangle in the video output code now has the lowermost bits of the X and Y coordinates cleared,
|
|||
|
as a quick kludge to fix potential issues with the VB emulation's "hli" and "vli" video modes. A cleaner
|
|||
|
solution may be prudent in the future.
|
|||
|
|
|||
|
VB: Added setting "vb.liprescale".
|
|||
|
|
|||
|
Optimized the "hli" video mode drawing code slightly.
|
|||
|
|
|||
|
September 18, 2010:
|
|||
|
VB: Added setting "vb.3dreverse".
|
|||
|
|
|||
|
VB: Renamed "pbarrier" 3dmode to "vli".
|
|||
|
|
|||
|
VB: Added 3dmode "hli".
|
|||
|
|
|||
|
September 16, 2010:
|
|||
|
When -force_module is used with an unknown/invalid system, Mednafen will print an error stating so, rather
|
|||
|
than stating that the file format is unrecognized. If the system is recognized, but the system only supports CDs
|
|||
|
and the file being loaded is not a CD image, a message will be printed to that effect.
|
|||
|
|
|||
|
September 13, 2010:
|
|||
|
PCE_FAST: HDS is now used in calculating the screen viewable area position, fixing the "Final Blaster" intro
|
|||
|
sequence.
|
|||
|
|
|||
|
September 12, 2010:
|
|||
|
Fixed a significant memory leak in the video output code(the leak would increase every time fullscreen is toggled
|
|||
|
while Mednafen is running).
|
|||
|
|
|||
|
PCE_FAST: Fixed a benign(in Mednafen as it is now) memory leak.
|
|||
|
|
|||
|
PCE_FAST, PCE: IsSGX variable is now explicitly initialized to 0 correctly.
|
|||
|
|
|||
|
Updated the AX_CFLAGS_GCC_OPTION autoconf macro.
|
|||
|
|
|||
|
PCE_FAST: Renamed various identifiers in the HuC6280 emulator code to avoid conflicting with C reserved identifier
|
|||
|
conventions.
|
|||
|
|
|||
|
PCE_FAST: Removed unused VDC debug code.
|
|||
|
|
|||
|
NES: An error while attempting to open the file specified by setting "nes.cpalette" will no longer cause Mednafen
|
|||
|
to crash.
|
|||
|
|
|||
|
SCSI CD:
|
|||
|
Refactoring and code cleanups.
|
|||
|
|
|||
|
Added various command error condition checks, and corrected various error codes(NEC uses a few
|
|||
|
nonstandard ASC values). (INCOMPLETE)
|
|||
|
|
|||
|
Specific command fixes for PCE CD:
|
|||
|
Command 0xD8: If the command is executed with the same address as when it was previously executed,
|
|||
|
and the previous execution was < 190ms ago, then the new execution
|
|||
|
is ignored(this occurs regardless if the previous command was ignored). This is more
|
|||
|
of a kludge than a proper fix, and it is intended to fix the silent CD-DA problem
|
|||
|
with "Steam Heart's".
|
|||
|
|
|||
|
Specific command fixes for PC-FX:
|
|||
|
MODE SENSE and MODE SELECT:
|
|||
|
Added support for block descriptor(incomplete), and the DBD bit for MODE SENSE.
|
|||
|
Added support for all the mode pages present on a PC-FX(though most don't actually do anything
|
|||
|
in emulation yet, as I do not know their function or their function is irrelevant at the current
|
|||
|
level of CD emulation accuracy).
|
|||
|
|
|||
|
Command 0x25: Corrected returned data when PMI bit is set.
|
|||
|
Command 0x42: Fixed the relative address returned when the address results are expressed as LBA.
|
|||
|
Command 0xD8: Proper support for play bit.
|
|||
|
Command 0xD9: Improved play mode evaluation, and play mode 0x1 is no longer erroneously
|
|||
|
interpreted as loop mode(only 0x4 is).
|
|||
|
Command 0xDD: The control/adr field is now returned in the data.
|
|||
|
Command 0xDE: Added emulation of returned data mode 0x03(there was a dummy stub before, to get the PhotoCD
|
|||
|
player to work).
|
|||
|
|
|||
|
September 11, 2010:
|
|||
|
Changed hqxx's sole supported pixel format to match the new OpenGL texture pixel format used(in the future, changing
|
|||
|
its hardcoded pixel format based on an #ifdef MSB_FIRST may be warranted).
|
|||
|
|
|||
|
WonderSwan: Re-enabled(and fixed) debugger's graphics viewer.
|
|||
|
|
|||
|
PCE_FAST: Reduced fb_height from 256 to 242.
|
|||
|
|
|||
|
September 10, 2010:
|
|||
|
If Mednafen is running with an OpenGL implementation of OpenGL >= 1.2, and is on an x86 or x86_64 platform,
|
|||
|
it will now upload texture data in GL_BGRA GL_UNSIGNED_INT_8_8_8_8_REV format rather than GL_RGBA GL_UNSIGNED_BYTE.
|
|||
|
This may need to be tweaked for older video cards. Would it have killed the OpenGL developers to have
|
|||
|
included a means of querying the fastest formats for texture uploading?
|
|||
|
|
|||
|
September 8, 2010:
|
|||
|
todo: make sure tblur works right with surface->pitch32 != gameinfo->fb_width and player
|
|||
|
|
|||
|
Converted MDFNGI pitch(in bytes) to fb_width(in pixels).
|
|||
|
|
|||
|
Fixes for incorrectly using MDFNGameInfo->fb_width instead of the surface's pitch:
|
|||
|
gb
|
|||
|
gba
|
|||
|
lynx(was hardcoded)
|
|||
|
nes
|
|||
|
ngp
|
|||
|
pce_fast(was hardcoded)
|
|||
|
player
|
|||
|
wswan
|
|||
|
mmrecord.cpp
|
|||
|
tblur.cpp
|
|||
|
|
|||
|
Reduction of fb_width to minimum acceptible for the module(the driver-side can still round up to a power of 2 when
|
|||
|
creating the MDFN_Surface, of course):
|
|||
|
gb
|
|||
|
gba
|
|||
|
lynx
|
|||
|
ngp
|
|||
|
pce_fast(required a bit of work in vdc.cpp to eliminate non-visible-area surface rendering)
|
|||
|
vb
|
|||
|
wswan
|
|||
|
|
|||
|
|
|||
|
September 5, 2010:
|
|||
|
PC-FX: Implemented an optimization to the FX VCE layer mixing priority evaluation code, that will also allow further
|
|||
|
optimization in the future.
|
|||
|
|
|||
|
September 4, 2010:
|
|||
|
NES: Replaced "femms" inline assembly generated when compiling for x86_64 with "emms", as not all x86_64
|
|||
|
processors are made by AMD.
|
|||
|
|
|||
|
August 24, 2010:
|
|||
|
PC-FX: Track numbers in READ TOC(10) are now returned in hex instead of BCD(fixes BIOS handling of discs
|
|||
|
with a large number of tracks; no PC-FX games are like this, but it may be useful for playing audio CDs or audio
|
|||
|
portions of PCE CD). The bug was present in 0.8.x, but due to a design decision/bug elsewhere, it didn't
|
|||
|
cause the BIOS to be unable to play the CD-DA tracks.
|
|||
|
|
|||
|
August 22, 2010:
|
|||
|
Re-enabled raw MMC command usage for reading physical discs(it had been disabled for debugging purposes).
|
|||
|
|
|||
|
PC-FX: A PhotoCD disc will now automatically be detected as being handled by the PC-FX module.
|
|||
|
|
|||
|
L-EC correction code is now called external to cdromfile.cpp, and with PC-FX/PCE CD emulation, will generate
|
|||
|
a SCSI error if it fails.
|
|||
|
|
|||
|
August 20, 2010:
|
|||
|
SNES: Applied a patch from Jonas Quinn to fix a Cx4 emulation bug.
|
|||
|
|
|||
|
VB: Mednafen will no longer automatically recognize files with the ".bin" extension as Virtual Boy games,
|
|||
|
as the extension conflicts with Sega Genesis/Megadrive. If you have any such files, they will need to be renamed
|
|||
|
to have an extension of ".vb" or ".vboy".
|
|||
|
|
|||
|
VB: Files with the extension ".vboy" are now automatically recognized as Virtual Boy games.
|
|||
|
|
|||
|
VB: Altered timer emulation to fix digital sound and voice playback in "Virtual Bowling". The change has the
|
|||
|
possibility of causing regressions with other games, but none were detected in very quick and not thorough testing.
|
|||
|
|
|||
|
August 14, 2010:
|
|||
|
Cleaned up git.h slightly.
|
|||
|
|
|||
|
-- 0.9.12-WIP: --
|
|||
|
August 13, 2010:
|
|||
|
Updated internal copy of "libmpcdec" library from 1.2.5 to 1.2.6.
|
|||
|
|
|||
|
Updated internal copy of "trio" library to 1.14(I believe the previous version was a pull from CVS between the 1.10
|
|||
|
and 1.11 releases).
|
|||
|
|
|||
|
August 12, 2010:
|
|||
|
PCE_FAST: Added setting "pce.correct_aspect", default value of 1. When disabled(value of 0), no aspect correction
|
|||
|
will take place(other than in the 10MHz dot clock mode to halve its width), and overscan color will be used to
|
|||
|
fill in the empty space when in 5MHz/10MHz dot clock modes.
|
|||
|
|
|||
|
PCE_FAST: Corrected aspect ratio when playing HES files.
|
|||
|
|
|||
|
PC-FX, VB: Fixed CPU operand order for FPU subops in the disassembler.
|
|||
|
|
|||
|
VB: Hooked up more debugger functionality.
|
|||
|
|
|||
|
PC-FX, VB: Fixed V810 read/write breakpoints in "fast" V810 emulation mode.
|
|||
|
|
|||
|
August 9, 2010:
|
|||
|
Mednafen's now compiled with -Wempty-body and -Wignored-qualifiers.
|
|||
|
|
|||
|
NES: Removed a typoed semicolon in sound.cpp.
|
|||
|
|
|||
|
August 8, 2010:
|
|||
|
Added "math.h" header order inclusion check to "types.h", and fixed a few instances of incorrect #include order.
|
|||
|
|
|||
|
Fixed C68K code generator dependency when building on/for a platform that has an extension for executables(AKA MS Windows).
|
|||
|
|
|||
|
Fixed a structure initialization problem in the input setting generation code that could cause crashing under
|
|||
|
certain circumstances.
|
|||
|
|
|||
|
Fixed Makefile.am to actually link against SDL(somehow it was working anyway on Linux, probably through
|
|||
|
an indirect linkage through SDL_net).
|
|||
|
|
|||
|
August 5, 2010:
|
|||
|
Debugger settings *.debugger.disfontsize and *.debugger.memcharenc are now automatically generated, the latter based on the system's DebuggerInfoStruct.
|
|||
|
|
|||
|
Renamed *.debugger.memcharset settings to *.debugger.memcharenc
|
|||
|
|
|||
|
PC-FX: Added settings "pcfx.input.port1.multitap" and "pcfx.input.port2.multitap". These settings shouldn't be enabled by average users.
|
|||
|
|
|||
|
August 4, 2010:
|
|||
|
PC-FX: Added RAINBOW buffer data to save states.
|
|||
|
|
|||
|
Added a variable to save states whose absence was breaking save states made in the middle of a CD-ROM transfer.
|
|||
|
|
|||
|
Switched to using the internal copy of Tremor to decode Ogg Vorbis files during CD emulation preferentially over libsndfile, as libsndfile has
|
|||
|
an unacceptably slow seek implementation for Ogg Vorbis.
|
|||
|
|
|||
|
August 3, 2010:
|
|||
|
PC-FX: Added emulation of the 2 gamepad switches.
|
|||
|
|
|||
|
Fixed a bug that caused a crash if input type of "none" was selected for a virtual input port.
|
|||
|
|
|||
|
Input device state is now saved in save states(missing a call before).
|
|||
|
|
|||
|
Fixed mouse emulation(previously, cursor movement was totally broken).
|
|||
|
|
|||
|
Disabled various debug printf statements.
|
|||
|
|
|||
|
Removed "bios.fastboot" setting and the HuEXE loading code(both of which have been broken for a while). The fastboot code likely
|
|||
|
won't return(it'd be better as an external patch to the BIOS ROM image), and the HuEXE loading may return when PIO emulation is added(requiring
|
|||
|
the use of the PC-FXGA BIOS most likely).
|
|||
|
|
|||
|
August 2, 2010:
|
|||
|
PC-FX: Fixed the horizontal position of the VDC layers vs KING BG and RAINBOW layers when VDC is in 7MHz dot clock mode.
|
|||
|
|
|||
|
PC-FX: Disabled a few unknown memory address read/write debug printf()s.
|
|||
|
|
|||
|
August 1, 2010:
|
|||
|
PC-FX: Writing 0 to D0 of KING register 0x40 while a RAINBOW transfer is in process will now abort it. Fixes background flickering in "Tonari
|
|||
|
no Princess Rolfee".
|
|||
|
|
|||
|
PC-FX, VB: Values written to system registers EIPSW, FEPSW, EIPC, and FEPC by instruction "ldsr" are now masked properly.
|
|||
|
|
|||
|
PC-FX: Added emulation of the TIMER TIREQ bit.
|
|||
|
|
|||
|
PC-FX: Interrupt controller level/priority register writes are now ignored unless all 7 bits in the interrupt mask register are set. This matches
|
|||
|
tests done on a real system(done by writing the priority registers, and then reading back the values; wouldn't catch the case of there being shadow
|
|||
|
registers, however, given that this ignoring behavior is documented in the hardware documentation, this seems highly unlikely). This *finally* fixes
|
|||
|
the PC-FX BIOS PhotoCD player!
|
|||
|
|
|||
|
PC-FX: Fixed interrupt controller register value masks.
|
|||
|
|
|||
|
July 31, 2010:
|
|||
|
PCE: Removed a (mostly benign) debug addition left in the extended SF2 mapper size calculation code.
|
|||
|
|
|||
|
July 30, 2010:
|
|||
|
NES: Removed/Disabled some debug(not debugger :b) code.
|
|||
|
|
|||
|
NES: Fixed the FDS written-disk shadow copy code. Previously, the FDS loading code was updating the MD5 hash improperly, causing
|
|||
|
the filename of the shadow copy to be different when it was written than it was when a shadow copy was to be opened.
|
|||
|
|
|||
|
NES: Altered FDS IRQ emulation to fix "Druid".
|
|||
|
|
|||
|
NES: Fixed a bug that caused the entire file pathname to be evaluated when determining system type, now only the filename is examined.
|
|||
|
|
|||
|
NES: Added strings "(Europe)", "(Germany)", "(USA)", and "(Japan)" to the filename scanning code for system determination.
|
|||
|
|
|||
|
NES: Prettified the NES filter.cpp debug printf()s a little.
|
|||
|
|
|||
|
PCE: Fixed HES player screen dimensions.
|
|||
|
|
|||
|
PCE: Removed debug printf on bad opcode execution.
|
|||
|
|
|||
|
PCE: HES playback code now initializes the VDC horizontal and vertical timing registers before calling the song initialization routine. Interestingly,
|
|||
|
this seems to have broken the Cosmic Fantasy IV HES, but that it even sort-of worked in the first place was probably a fluke given the quality of the rip...
|
|||
|
|
|||
|
PCE: Altered HuC6270 reset code to reset the horizontal and vertical timing registers to 0(which is closer to the real system than setting them to 0xFF, but
|
|||
|
real reset values are unknown, though they might just be 0).
|
|||
|
|
|||
|
PCE: When in LFO(FM) mode, excessive playback frequency for channel 0(carrier) is handled more gracefully(but still not "correct",
|
|||
|
as it would be too CPU intensive).
|
|||
|
|
|||
|
PCE: Rolled the LFO counter into the normal channel counter. On a real system, the LFO counter(pre-divider) and the normal channel counter may be
|
|||
|
resetable independently, however, rolling them into one shouldn't cause any audible differences and simplifies the code(and fixes a bug due to how
|
|||
|
it was implemented before in that if the modulator channel's volume was in the audible range, the waveform would have been distorted for larger LFO pre-divider
|
|||
|
reload values).
|
|||
|
|
|||
|
July 25, 2010:
|
|||
|
Fixed Ogg Vorbis playback when libsndfile doesn't support it(I'd accidentally inverted the ov_open() success test during the change to AudioReader()).
|
|||
|
|
|||
|
PCE: PSG channel numbering in the debugger's memory editor is now from 0 instead of 1.
|
|||
|
|
|||
|
July 24, 2010:
|
|||
|
Fixed libsndfile linkage with mingw32 target(it was broken when we added --with(out)-libsndfile configure option).
|
|||
|
|
|||
|
July 22, 2010:
|
|||
|
PCE: The 2MiB of arcade card RAM is now defined as an array that's allocated along with the ArcadeCard object, rather than a pointer that's manually
|
|||
|
allocated off the heap.
|
|||
|
|
|||
|
PCE: Added support for HES files that load data into banks 0x80-0x87.
|
|||
|
|
|||
|
PCE: Fixed HES controls(song increment/decrement) to not lose responsiveness if the frame is being skipped.
|
|||
|
|
|||
|
July 21, 2010:
|
|||
|
PCE: Added a setting to select the PSG revision, "pce.psgrevision".
|
|||
|
|
|||
|
PCE, PCE_FAST, PC-FX: Added revision selection functionality(only supporting HuC6280 and HuC6280A revisions currently) to the PSG emulation code, and
|
|||
|
altered the volume table slightly to mimic the PCE's actual volume reduction limits. Also, hooked up the PSG register setting code for the debugger.
|
|||
|
|
|||
|
July 17, 2010:
|
|||
|
PCE: Fixed inconsistencies in how an emulated "power toggle" affects timestamps, correcting a failed assert in the CD-ROM emulation code if the user
|
|||
|
tries to reset/power in the debugger under certain conditions. (TODO: Make similar fixes to PC-FX emulation code)
|
|||
|
|
|||
|
PCE, PCE_FAST, PC-FX: Revamped and refactored PCE PSG core code to implement new details obtained through tests on a real SuperGrafx(HuC6280A)
|
|||
|
and on a PC Engine(HuC6280). However, the emulation is closer to the HuC6280A revision. It may be necessary in the future to run tests on a PC-FX
|
|||
|
to determine what differences, if any, are in its PSG core vs the HuC6280A's sound core.
|
|||
|
|
|||
|
July 10, 2010:
|
|||
|
PC-FX, PCE: SCSI CD-ROM emulation code cleanup and minor tweaks.
|
|||
|
|
|||
|
July 7, 2010:
|
|||
|
PCE: Improved mouse emulation greatly; previously, emulation of two buttons was missing. The two newly-emulated buttons "Select" and "Run" are mapped to
|
|||
|
keyboard keys "Tab" and "Enter" by default. However, the L/R mapping may be backwards, and there are still problems with using the mouse with at least
|
|||
|
one game("Lemmings").
|
|||
|
|
|||
|
July 5, 2010:
|
|||
|
Fixed a temporal blur code bug that was causing an unblurred section of the screen on PCE games.
|
|||
|
|
|||
|
Renamed the <system>.vblur* settings to <system>.tblur* (for temporal blur) to reduce confusion.
|
|||
|
|
|||
|
July 3, 2010:
|
|||
|
PCE: Adjusted DMA timing again to fix an extremely long delay at the beginning of Takeda Shingen(TODO: make sure the delay doesn't exist on a real PCE).
|
|||
|
|
|||
|
The core CD reading functions now always put CD-DA data in the buffer in little-endian form.
|
|||
|
|
|||
|
Separated and refactored the audio format decoding code out of cdromfile.cpp into audioreader.cpp
|
|||
|
|
|||
|
July 2, 2010:
|
|||
|
PCE_FAST: Scrapped the old arcade card code in favor of the modularized code from the "pce" emulation module.
|
|||
|
|
|||
|
PCE: Moved arcade_card.* to hw_misc/arcade_card/arcade_card.*, and made its save state section names more verbose.
|
|||
|
|
|||
|
July 1, 2010:
|
|||
|
PCE_FAST: Corrected the aspect ratio.
|
|||
|
|
|||
|
PCE_FAST: Scrapped the old PSG code in favor of the new modularized PSG code already being used by the regular "pce" module.
|
|||
|
|
|||
|
June 27, 2010:
|
|||
|
PCE: Fixed PRAM poking in the debugger to not allow unused bits to be set.
|
|||
|
|
|||
|
June 26, 2010:
|
|||
|
GBA: Including a line containing "rtc" in the save-game "type" file(refer to the GBA module documentation) will now enable realtime clock emulation for
|
|||
|
that game.
|
|||
|
|
|||
|
June 22, 2010:
|
|||
|
SNES: Hooked up backup memory loading.
|
|||
|
|
|||
|
Fixed the "autosave" option to work instead of causing a crash on exit.
|
|||
|
|
|||
|
June 21, 2010:
|
|||
|
The IPS patch loading code now checks for file read errors, and is no longer tolerant of IPS patches that end without an "EOF" patch/chunk header.
|
|||
|
|
|||
|
Removed support for automatically patching with compressed IPS patches, as it causes a problem with at least one patch that has semi-hidden
|
|||
|
PKZIP-format data in it that was confusing the file loader.
|
|||
|
|
|||
|
June 20, 2010:
|
|||
|
SNES: Hooked up multitap and mouse input emulation code(you'll need to manually enable multitap by setting "snes.input.port2.multitap" to "1"
|
|||
|
because it can cause problems if it's enabled by default.
|
|||
|
|
|||
|
SNES: Updated to bsnes v0.59(for SA-1 and SuperFX save state support).
|
|||
|
|
|||
|
June 17, 2010:
|
|||
|
NES: Added cart WRAM to mapper 18 emulation to fix "Jajamaru Gekimaden".
|
|||
|
|
|||
|
PCE: Altered VRAM-to-VRAM DMA operation to fix Ankoku Densetsu/Legendary Axe II(and without breaking Langrisser), though stage 5 in LAII/AD may still
|
|||
|
randomly have graphics corruption in certain conditions.
|
|||
|
|
|||
|
June 11, 2010:
|
|||
|
PC-FX: Fixed a bug that caused only half of the VDC BG tiles to be displayed in the debugger's graphics viewer.
|
|||
|
|
|||
|
Fixed segfault on 0-entry setting enum lists.
|
|||
|
|
|||
|
Wrote some simple PHP scripts to automatically generate portions of the individual emulation module documentation based on templates and the
|
|||
|
settings definition file produced by -dump_settings_def.
|
|||
|
|
|||
|
Added a command-line option "-dump_settings_def", which will dump definition data for all possible settings in Mednafen.
|
|||
|
|
|||
|
June 8, 2010:
|
|||
|
PCE: Adjusted VDC VDW start timing to fix vibrating screen in World Court Tennis.
|
|||
|
|
|||
|
June 7, 2010:
|
|||
|
PCE: Fixed "pce.h_overscan" setting to actually work right.
|
|||
|
|
|||
|
PCE: Fixed screenshot width.
|
|||
|
|
|||
|
June 6, 2010:
|
|||
|
Finally got rid of the old FSettings global, moving SndRate to SoundRate of EmulateSpecStruct.
|
|||
|
|
|||
|
Video frames are now recorded before temporal blur effect is applied(rationale: external movie encoders will have a wider variety of filters, whose
|
|||
|
quality and parameters are not constrained by being able to run in realtime).
|
|||
|
|
|||
|
June 5, 2010:
|
|||
|
CDPLAY: Fixed a crash if playback when past the last audio track, and the last audio track was not the last track of the disc.
|
|||
|
|
|||
|
PCE: Added more missing data to save states.
|
|||
|
|
|||
|
June 2, 2010
|
|||
|
PCE: Altered vblank IRQ start timing to fix occasional massively-glitchy frames in Street Fighter II.
|
|||
|
|
|||
|
PCE: Fixed a bug that could cause a crash(due to an incorrect parameter to memcpy()) if trying to load a large ROM image(>= 2MiB) that was
|
|||
|
not padded to the Street Fighter II mapper size.
|
|||
|
|
|||
|
PCE: Fixed missing intialization of many VDC variables on reset.
|
|||
|
|
|||
|
PCE: Added support for a hypothetical extended Street Fighter II mapper.
|
|||
|
|
|||
|
June 1, 2010:
|
|||
|
Revamped CD-ROM system determination code.
|
|||
|
|
|||
|
PCE: Altered VDC BXR/BYR latch timing again to fix Seiya Monogatari, and probably breaking another game in exchange though. :/
|
|||
|
|
|||
|
PC-FX: Fixed a problem caused by V810 optimization changes that broke CD ROM emulation in save states.
|
|||
|
|
|||
|
Fixed loading of game cheats when loading a CD game(PCE CD, PC-FX).
|
|||
|
|
|||
|
May 31, 2010:
|
|||
|
PCE: Added a few missing variables to save states.
|
|||
|
|
|||
|
May 29, 2010:
|
|||
|
|
|||
|
Fixed a bug that could cause crashing on invalid save states(or with a state variable name >= 128 chars in length).
|
|||
|
|
|||
|
NES: Added a few missing sound variables to save states, and added a missing CPU state variable to save states that could cause netplay
|
|||
|
desync(unlikely, but still possible).
|
|||
|
|
|||
|
PCE_FAST: Fixed broken frameskip behavior in regards to sprite overflow IRQs(which caused netplay desyncs).
|
|||
|
|
|||
|
PCE_FAST: Added missing variables to save states(whose absence caused netplay desyncs).
|
|||
|
|
|||
|
May 26, 2010:
|
|||
|
Made an optimization to the V810 emulation code in order to improve performance on RISC CPUs(TODO: Make sure this didn't break anything).
|
|||
|
|
|||
|
Fixed compiling when the configure script was passed "--disable-debugger".
|
|||
|
|
|||
|
May 25, 2010:
|
|||
|
Added support for compiling without libcdio and without libsndfile, by passing --without-libcdio and --without-libsndfile to the configure script,
|
|||
|
respectively. Compiling without either is not recommended for general use of course, but may be of use to porters(especially compiling without libcdio).
|
|||
|
|
|||
|
May 23, 2010:
|
|||
|
Lynx: Fixed a few pieces of poorly-formed(and possibly undefined) code in the UART emulation code.
|
|||
|
|
|||
|
Fixed an incorrect object creation bug in cdrom/pcecd.cpp
|
|||
|
|
|||
|
SMS: Fixed a couple of strict aliasing violations.
|
|||
|
|
|||
|
GBA: Fixed code causing gcc to issue warnings(listed here in the ChangeLog in the case I broke something, I'll know what did it) in the BIOS emulation code.
|
|||
|
|
|||
|
May 22, 2010:
|
|||
|
Moved MDFN_Rect typedef from types.h to video.h.
|
|||
|
|
|||
|
Removed an extraneous semicolon after an if statement in the V810 save state code.
|
|||
|
|
|||
|
Fixed a few code constructs causing compiler warnings.
|
|||
|
|
|||
|
Added various macros(to force no inlining, force arbitrary alignment, etc.) to allow for an easier time getting the code to compile on
|
|||
|
non-gcc-compatible compilers.
|
|||
|
|
|||
|
May 21, 2010:
|
|||
|
NES: Fixed a bug that could cause Mednafen to crash if the game crashed or intentionally executed off the end of the 16-bit address space without an immediate
|
|||
|
absolute branch afterwards.
|
|||
|
|
|||
|
VB: Hooked up settings "vb.disable_parallax", "vb.default_color", "vb.anaglyph.preset", "vb.anaglyph.lcolor", "vb.anaglyph.rcolor", and "vb.input.instant_read_hack"
|
|||
|
to a SettingChanged() notification function so that those settings can be changed during emulation runtime. "vb.cpu_emulation" and "vb.3dmode"
|
|||
|
are not hooked up, and can not be due to current Mednafen architectural limitations(and even if those weren't present, "vb.cpu_emulation" would still
|
|||
|
require a virtual power toggle).
|
|||
|
|
|||
|
May 15, 2010:
|
|||
|
Began work on expanding the information in the setting definition structures, so that the documentation on settings can eventually be mostly auto-generated.
|
|||
|
|
|||
|
Altered the help screen accessible via command-line option "-help" to not display any settings. There are far too many settings to list all at once.
|
|||
|
Perhaps we'll add additional command-line options in the future to list settings according to a simple filter.
|
|||
|
|
|||
|
May 14, 2010:
|
|||
|
PC-FX: Added setting "pcfx.disable_bram". Only set this to 1 if you know what you're doing, as it's enabling an illegal/broken state.
|
|||
|
|
|||
|
PCE: Added setting "pce.disable_bram_cd" and "pce.disable_bram_hucard". Only set "pce.disable_bram_cd" to 1 if you know what you're doing, as it's enabling
|
|||
|
an illegal/broken state. pce.disable_bram_hucard is more useful, as it will make HuCard game run as if they're on a plain-Jane PC Engine/TurboGrafx without
|
|||
|
CD-style backup memory.
|
|||
|
|
|||
|
May 13, 2010:
|
|||
|
NES: Moved read/write handler installation from the Power function to the Init function for input emulation, PPU emulation, and VS Unisystem emulation.
|
|||
|
|
|||
|
NES: Corrected the power-up state(values) of internal RAM.
|
|||
|
|
|||
|
NES: Fixed mapper 99 emulation(hopefully, I'm unable to test it currently).
|
|||
|
|
|||
|
Fixed #include order(for config.h, basically) in many files.
|
|||
|
|
|||
|
May 7, 2010:
|
|||
|
Added a new fullscreen stretch mode that preserves the aspect ratio(at least in the same way that keeping xscalefs == yscalefs does), courtesy of donb04.
|
|||
|
|
|||
|
May 6, 2010:
|
|||
|
NES: Fixed PPU rendering code to use the real pitch of the output surface, rather than the requested pitch as specified in the MDFNGameInfo struct.
|
|||
|
This should fix garbled video with "overlay" vdriver in some circumstances.
|
|||
|
|
|||
|
NES: Fixed clear color during PPU startup/reset, such that the screen will no longer be briefly green after a reset using the "overlay" vdriver.
|
|||
|
|
|||
|
NES: Added a (slow) kludge so that the output image is not totally wrong when NTSC blitter is enabled while using the "overlay" vdriver.
|
|||
|
|
|||
|
April 30, 2010:
|
|||
|
Altered the strerror_r() implementation detection preprocessor code to hopefully work correctly on non-GNU platforms.
|
|||
|
|
|||
|
April 29, 2010:
|
|||
|
GBA: Fixed a small bug that totally broke GSF loading.
|
|||
|
|
|||
|
PCE_FAST: Added padding to memory mapped into the HuC6280 virtual address space to avoid potential emulator crashes if a game crashes.
|
|||
|
|
|||
|
VB: Implemented more of the debugger.
|
|||
|
|
|||
|
April 27, 2010:
|
|||
|
Added 2xSaI, Super 2xSai, and Super Eagle scaling filters courtesy of a code submission from "donb04".
|
|||
|
|
|||
|
Fixed fatal bugs in the IPS patching code(the bugs were introduced from the refactoring of the file loading code).
|
|||
|
|
|||
|
Genesis: Removed various debug calls to exit() so that games crashing should no longer cause Mednafen to crash/exit.
|
|||
|
|
|||
|
Genesis: Fixed interlaced mode to not be totally broken.
|
|||
|
|
|||
|
April 23, 2010:
|
|||
|
VB: Fixed brightness calculation bug that resulted in very dark images instead of completely black images.
|
|||
|
|
|||
|
April 12, 2010:
|
|||
|
SMS: Encapsulated in a namespace.
|
|||
|
|
|||
|
SMS: Added missing state to save states to fix netplay and movie desynchs.
|
|||
|
|
|||
|
April 11, 2010:
|
|||
|
VB: Null-terminated the anaglyph preset list.
|
|||
|
|
|||
|
April 11, 2010:
|
|||
|
VB: Changed nominal width in pbarrier 3dmode to 768.
|
|||
|
|
|||
|
Removed stale build files.
|
|||
|
|
|||
|
April 7, 2010:
|
|||
|
Removed unused PulseAudio option from configure.ac.
|
|||
|
|
|||
|
Genesis: Encapsulated more code in a namespace.
|
|||
|
|
|||
|
April 6, 2010:
|
|||
|
PCE_FAST: Changed "inc" instructions to the equivalent "add" forms in inline assembly for better performance.
|
|||
|
|
|||
|
April 5, 2010:
|
|||
|
Replaced MDFN_FastU32MemsetM8() with code that doesn't violate strict aliasing(at least when an array with 32-bit elements is passed...which
|
|||
|
is not exactly the case in every place it's called), and with inline assembly for x86 and x86_64.
|
|||
|
|
|||
|
April 4, 2010:
|
|||
|
VB: Fixed graphics output when "vdriver" is set to "overlay", and "vb.3dmode" is set to "anaglyph".
|
|||
|
|
|||
|
Fixed command-line argument "-force_module" handling.
|
|||
|
|
|||
|
PC-FX: Renamed setting "pcfx.adpcm.restrict_range" to "pcfx.adpcm.emulate_buggy_codec", since it now does more than effectively restrict the range,
|
|||
|
thanks to David Michel's analysis of an official PC-FX ADPCM encoder.
|
|||
|
|
|||
|
April 3, 2010:
|
|||
|
Settings are now sorted before being saved to disk.
|
|||
|
|
|||
|
Invalid/Unknown settings are now saved back to the configuration file on exit rather than being discarded.
|
|||
|
|
|||
|
PCE: Fixed input port definitions so that Tsushin Keyboard can only be enabled on input port 1(which reduces the number of input mapping settings
|
|||
|
automatically generated by about 400).
|
|||
|
|
|||
|
PCE: Multitap emulation is now automatically disabled when Tsushin Keyboard is selected on input port 1(TODO: document this fact).
|
|||
|
|
|||
|
NES: Fixed a few memory leaks in filter.cpp.
|
|||
|
|
|||
|
March 30, 2010:
|
|||
|
VB: Added a hack, enabled by default, that will return the current pad state when reading from SDR, rather than the latched state, to reduce latency
|
|||
|
by 20milliseconds in some games. Perhaps remove this option when everyone has 240Hz monitors and we don't have much emulator and PC-caused latency. ;)
|
|||
|
|
|||
|
VB: Fixed input automatic reading code to read 16 bits, not 32. Stupid typos.
|
|||
|
|
|||
|
VB: Changed VB_SetEvent() to take the timestamp of the next event, rather than the number of cycles until the next event. The input code was erroneously
|
|||
|
calling it with a timestamp before this change, so this change should fix potential input lag issues.
|
|||
|
|
|||
|
March 29, 2010:
|
|||
|
Factored some cheat management function calls out of individual emulation module code.
|
|||
|
|
|||
|
March 26, 2010:
|
|||
|
Added support for "enum" setting type.
|
|||
|
|
|||
|
Added support for recognizing integer settings expressed as hexadecimal, with a 0x prefix.
|
|||
|
|
|||
|
March 19, 2010:
|
|||
|
PCE: Added (untested) emulation of Arcade Card register 0x1AE5, based on information from FluBBa.
|
|||
|
|
|||
|
PC-FX, VB: Fixed "DIV" and "DIVU" instruction emulation when the destination register is "r30".
|
|||
|
|
|||
|
March 18, 2010:
|
|||
|
VB: Began adding Virtual Boy emulation.
|
|||
|
|
|||
|
March 17, 2010(FIXME/TODO these changelogs):
|
|||
|
Reorganized sufficiently-abstracted chip hardware emulation into directories hw_cpu, hw_sound, and hw_video.
|
|||
|
|
|||
|
PC-FX: Fixed V810system register "PIR" value.
|
|||
|
|
|||
|
|
|||
|
March 16, 2010:
|
|||
|
PC-FX: Scrapped the old PC-FX-specific VDC code, in favor of the new abstracted VDC code originally written for the new more accurate
|
|||
|
PC Engine emulation.
|
|||
|
|
|||
|
Removed KING KRAM mode masks(they were pretty much disabled, anyway, and only served to bloat the code).
|
|||
|
|
|||
|
Moved the KRAM arrays to the end of the king_t struct, so that commonly-used variables don't require 1MB+ offsets.
|
|||
|
|
|||
|
Added page setting cache pointers to speed up rainbow and DMA operations slightly.
|
|||
|
|
|||
|
The V810 event handler and memory+IO read/write functions are now accessed via pointers(small speed penalty, unfortunately).
|
|||
|
|
|||
|
Minor V810 optimizations.
|
|||
|
|
|||
|
FINALLY fixed the ADPCM decoding algorithm for the most part(I'm still unsure about loss of precision in interpolation mode, though),
|
|||
|
removing that ugly hack that ran a DC-bias removal filter on the ADPCM predictors themselves. However, it turns out PC-FX games
|
|||
|
are somewhat glitchy, so the following settings have been added(implemented as hacks that can improve sound quality over that
|
|||
|
of an actual PC-FX):
|
|||
|
pcfx.adpcm.restrict_range (Default: Disabled)
|
|||
|
Hack that restrict ADPCM predictor to 50% normal range. Can improve sound in some games whose ADPCM was encoded
|
|||
|
improperly(for example, in Miraculum FMV), but will make sound worse in other games(for example, Nirgends).
|
|||
|
|
|||
|
pcfx.adpcm.suppress_channel_reset_clicks (Default: Enabled)
|
|||
|
Hack to suppress clicks caused by forced channel resets. This will MURDER those nasty clicks that occur
|
|||
|
when games reset the ADPCM predictor values when they are off-center. It shouldn't harm anything(except in
|
|||
|
pathological cases, and even then, only minimally), thus it is enabled by default. However, people developing
|
|||
|
new code for the PC-FX may wish to disable it for testing their programs.
|
|||
|
|
|||
|
|
|||
|
March 7, 2010:
|
|||
|
PC-FX, PCE CD: Fixed SCSI commands 0xD8 and 0xD9 to work properly when passed a track value of last_track + 1(leadout in this cae).
|
|||
|
|
|||
|
PC-FX: V810 event handling revamp.
|
|||
|
|
|||
|
March 5, 2010:
|
|||
|
PC-FX: Added untested V810 bitstring search instructions.
|
|||
|
|
|||
|
PC-FX: Fixed the FPU precision degradation flag when an overflow exception occurred(it was never being set, even in cases where it should have).
|
|||
|
|
|||
|
PC-FX: Fixed CY and S flags when an FPU overflow exception occurred(they were erroneously being set in EIPSW, due to V810_Exp() being
|
|||
|
called before SetFlag()).
|
|||
|
|
|||
|
March 4, 2010:
|
|||
|
PC-FX: The result of an FPU operation that overflows is now written to the output register(instead of discarded). Additionally, to get the correct
|
|||
|
value on overflows required hacking the SoftFloat code to "wrap" the exponent on overflows, instead of transforming the value into an infinity.
|
|||
|
|
|||
|
March 3, 2010:
|
|||
|
PC-FX: Fixed the value returned on reads from the "PIR" V810 system register.
|
|||
|
|
|||
|
PC-FX: Fixed the exception generated when an invalid FP instruction is executed.
|
|||
|
|
|||
|
PC-FX: Scrapped most of the old V810 FPU emulation code, and switched from glibc's FPU emulation code to using "SoftFloat". SoftFloat has a well-defined
|
|||
|
interface(even if it does pollute the namespace with globals :b), documentation, and has a license that will allow the V810 code to eventually be
|
|||
|
backported to RealityBoy. The new V810 emulation code also has much more accurate FPU flag calculation and exception handling.
|
|||
|
|
|||
|
February 27, 2010:
|
|||
|
PC-FX: Fixed TRNC.SW and CVT.SW to set the FIV flag instead of the FRO flag in the event the result is too large to fit in an integer
|
|||
|
register.
|
|||
|
|
|||
|
PC-FX: Fixed unused variable warnings in the V810 emulator.
|
|||
|
|
|||
|
PC-FX: Fixed lastop variable in V810 emulation code after a bitstring instruction is executed. Fixed bitstring handling so that the emulator
|
|||
|
won't malfunction if an unhandled/illegal bitstring instruction is executed.
|
|||
|
|
|||
|
|
|||
|
February 15, 2010:
|
|||
|
PCE: Reworked HES playback code to be lower-level.
|
|||
|
|
|||
|
PCE_FAST: Copied more CPU state to local variables in the execution loop.
|
|||
|
|
|||
|
PCE_FAST: Added a "Page1" pointer that ZP and stack accessess now go through, instead of directly to RAM(for the case the game changes
|
|||
|
what RAM is mapped into $2000-$3FFF). Note that this doesn't have any write protection mechanism, so if a game maps in ROM and then writes to ZP
|
|||
|
or stack, the ROM data will be trashed. FIXME.
|
|||
|
|
|||
|
February 10, 2010:
|
|||
|
PCE: Added VCE and VPC registers to the debugger.
|
|||
|
|
|||
|
February 8, 2010:
|
|||
|
PCE_FAST: Optimized the SuperGrafx VPC mixing code a bit.
|
|||
|
|
|||
|
February 5, 2010:
|
|||
|
PCE_FAST: Refactored the HuC6280 cycle counting code to reduce CPU usage, and made a simple event system to reduce CPU usage further by
|
|||
|
factoring timer updates out of the per-instruction execution loop.
|
|||
|
|
|||
|
PCE_FAST: Increased the maximum overclock value accepted to "100", for testing purposes. TODO: Decrease this to a sane value
|
|||
|
(or not, if 100 will work correctly even with PCE CD emulation) for 0.9.0 final.
|
|||
|
|
|||
|
January 27, 2010:
|
|||
|
PCE: Removed a bit of preprocessor abuse in the HuC6280 CPU core, and altered the HuC6280 CPU core emulator to not have dependencies on the main PC Engine
|
|||
|
emulation code.
|
|||
|
|
|||
|
PCE: Fixed CPU reset while in step mode(and a few other related problems) by altering the semantics of the debugger step mode with a pending IRQ.
|
|||
|
(TODO: This needs to be documented in detail later when my thoughts are more collected)
|
|||
|
|
|||
|
January 25, 2010:
|
|||
|
Fixed a bug that would cause the emulator to crash if any opcode breakpoints triggered when the debugger screen was disabled and no other
|
|||
|
breakpoints were active.
|
|||
|
|
|||
|
January 24, 2010:
|
|||
|
PCE: Encapsulated HuC6280 emulation in a class, and fixed(mostly) the debugger-related code.
|
|||
|
|
|||
|
January 22, 2010:
|
|||
|
|
|||
|
Changed save state format to save variable/array names somewhat like PASCAL strings in the file(maximum 255 bytes per name), instead of a fixed-width
|
|||
|
field.
|
|||
|
|
|||
|
On save state loading, each of the section definition arrays are now parsed and copied into a std::map, before the data in each section is
|
|||
|
loaded, changing variable name search algorithmic complexity in the actual loading code from O(n^2) to O(log n)(ignoring any overhead that loading
|
|||
|
into the std::map incurs).
|
|||
|
|
|||
|
January 20, 2010:
|
|||
|
|
|||
|
Fixed a couple of remotely-exploitable(if connected to a malicious server) stack manipulation bugs in the network play code.
|
|||
|
|
|||
|
January 18, 2010:
|
|||
|
|
|||
|
PCE: Removed settings "pce.ocmultiplier" and "pce.cdspeed", as they break games and cause code obfuscation(especially the overclocking option).
|
|||
|
They will still be available in the PCE_FAST module, though(with no plans to remove them from it).
|
|||
|
|
|||
|
PCE: Fixed the SF2 bank mask value to prevent invalid memory accesses.
|
|||
|
|
|||
|
PCE: Altered multitap emulation slightly to fix input in "Strip Fighter".
|
|||
|
|
|||
|
PCE: Fixed a bug that was causing CPU cycles to be lost as far as the VCE is concerned due to failing to synchronize the VCE emulation before
|
|||
|
the timestamp was reset.
|
|||
|
|
|||
|
PCE: Fixed a similar bug with lost cycles in timer emulation. (TODO: Maybe refactor the forced synchronization code so that it's all in one
|
|||
|
spot instead of scattered about).
|
|||
|
|
|||
|
PCE: Reverted VDC wait states to multiples of the 7MHz CPU clock instead of the 21MHz master clock, as after thinking about it more, I highly
|
|||
|
doubt the wait states are done with 21MHz granularity.
|
|||
|
|
|||
|
January 17, 2010:
|
|||
|
|
|||
|
PCE: Altered VRAM DMA so that it will only run outside of VDW(or inside if in burst mode), and only when SAT DMA is not in progress. Fixes
|
|||
|
status bar glitches in Langrisser.
|
|||
|
|
|||
|
PCE: Removed VRAM DMA running shadow variables to fix "Fushigi no Yume no Alice"(setting SOUR to the value of DMA_SOUR, LENR to the value of DMA_LENR, etc.
|
|||
|
works too, but I prefer the solution that uses the least number of extra registers/variables; to see which way is correct, though, we would
|
|||
|
need to try to write LENR/SOUR/DESR while VRAM DMA is in progress on a real PC Engine).
|
|||
|
|
|||
|
PCE: Adjusted horizontal line timing slightly to fix a broken scanline in Aoi Blink.
|
|||
|
|
|||
|
PCE: Removed various debug print statements.
|
|||
|
|
|||
|
PCE: Dot clock mode changes will now reset the VCE's clock divider. This is done, in combination with
|
|||
|
VDC wait states being in 21MHz master cycles, to synchronize the VDC with the CPU when in 7MHz dot clock(and not possibly be in an unsynchronized state
|
|||
|
dependent on when the dot clock change occurred). This may not be what happens on the real system, but it *shouldn't* hurt anything(commercial
|
|||
|
games at least), and it should make it easier to get scanline timing right for emulating raster effects without glitches when in 7MHz dot clock.
|
|||
|
|
|||
|
PCE: VDC wait states are now done in terms of 21MHz master cycles(TODO: confirm this is how it is on a real PCE or not).
|
|||
|
|
|||
|
January 16, 2010:
|
|||
|
|
|||
|
PCE: Added a lot of missing VDC variables to save states.
|
|||
|
|
|||
|
PCE: Adjusted horizontal line timing slightly to fix a jittery problem with Shin Megami Tensei.
|
|||
|
|
|||
|
January 15, 2010:
|
|||
|
|
|||
|
PCE: Fixed arcade card state loading(it wasn't saving and loading the ACRAMUsed variable, causing the actual RAM contents to not be loaded
|
|||
|
unless the arcade card RAM was written to before the state was loaded).
|
|||
|
|
|||
|
PCE: Fixed the end of VRAM DMA code to actually commit any pending reads/writes(fixes an assert() failure in Crest of Wolf).
|
|||
|
|
|||
|
January 14, 2010:
|
|||
|
PCE: Added a semi-hack to fix VRAM and screen corruption in Asuka 120%'s split-resolution screen.
|
|||
|
|
|||
|
January 10, 2010:
|
|||
|
|
|||
|
PCE: Mostly figured out the Tsushin Keyboard layout, and mapped the best keys on a standard western "Windows key"-style keyboard I could think of
|
|||
|
to the emulated keyboard. It turns out the keyboard is very similar to later(?) PC-88 keyboards(I used source code from "M88 - PC8801 Series Emulator"
|
|||
|
as a guide to some of the more exotic keys I was having trouble with).
|
|||
|
|
|||
|
January 9, 2010:
|
|||
|
|
|||
|
PCE_FAST: Fixed CD BIOS loader to look in the "firmware" directory with non-absolute paths.
|
|||
|
|
|||
|
PCE_FAST: Changed the default setting for "pce_fast.cdbios" from a warning string to "syscard3.pce".
|
|||
|
|
|||
|
PCE_FAST: Fixed CD emulation crash.
|
|||
|
|
|||
|
January 8, 2010:
|
|||
|
|
|||
|
Added very basic support for threading functions on the driver side(which right now are just basic wrappers around SDL's threading support). This
|
|||
|
was done to get the SDL dependency out of the new multi-threaded CD-ROM reading code.
|
|||
|
|
|||
|
January 7, 2010:
|
|||
|
|
|||
|
PCE: Fixed graphics rendering to use the actual pitch of the MDFN_Surface, instead of the hard-coded requested pitch/framebuffer width in
|
|||
|
EmulatedPCE.
|
|||
|
|
|||
|
Fixed a compilation problem with MINGW in src/cdrom/lec.h
|
|||
|
|
|||
|
SNES, MMPlay, PCE_FAST: Fixed sound emulation to use driver-side supplied buffer.
|
|||
|
|
|||
|
PCE, PC-FX: lastts is now initialized in the PCE_PSG constructor.
|
|||
|
|
|||
|
WonderSwan: EEPROM is now initialized to 0 on startup(it wasn't being initialized at all before).
|
|||
|
|
|||
|
Fixed a bug in the overlay blitting code that was causing graphics corruption on some PCE games(it was essentially assuming the source width was always
|
|||
|
a multiple of 2). This bug made apparent another bug(reading beyond the source rect width, and possibly beyond the buffer in the worst-case. FIXME.).
|
|||
|
|
|||
|
Overloaded the Open() method of the MDFNFILE class to allow for passing a "std::string" type for the path argument.
|
|||
|
|
|||
|
PCE: Fixed the base path used in CD BIOS loading.
|
|||
|
|
|||
|
PCE: Fixed loading of CD BIOS ROM images with 512-byte headers(broken in the HuCLoadCD->HuCLoad merge).
|
|||
|
|
|||
|
SNES: Fixed compilation with (at least old) mingw32. byuu will include the fix in future bsnes.
|
|||
|
|
|||
|
Fixed link order of libintl and libiconv.
|
|||
|
|
|||
|
Fixed the include dir for config.h in intl/Makefile.in
|
|||
|
|
|||
|
January 6, 2010:
|
|||
|
Moved the "<sysname>.forcemono" setting functionality out of individual emulator modules, into the core Mednafen code. The new way will be slightly
|
|||
|
less efficient, but only when the user changes the setting from the default of 0, and most users PROBABLY won't do this. The benefit is simplification
|
|||
|
of sound emulation in the emulation modules.
|
|||
|
(This definitely breaks/changes the music format player's waveform visualization, which we might want to fix in the future)
|
|||
|
|
|||
|
PCE: Merged HuCLoadCD() into HuCLoad().
|
|||
|
|
|||
|
PCE, PC-FX: Abstracted the core PCE PSG code in a class. The PCE and PC-FX PSG emulation now use this class(but not pce_fast, at least not yet...).
|
|||
|
|
|||
|
PCE: Fixed CD sound emulation(broken in the PCE PSG refactoring).
|
|||
|
|
|||
|
PCE: Stuffed arcade card emulation into a class.
|
|||
|
|
|||
|
SMS: Fixed YM2413 detection(though I'm not sure it's 100% correct, games that can use it actually do use it now).
|
|||
|
|
|||
|
SMS: Fixed an output overflow bug in the YM2413 emulation code.
|
|||
|
|
|||
|
SNES: 15-bit SNES RGB to the host system video format now uses a 32768-entry uint32 LUT, instead of calling the output surface's MakeColor() method
|
|||
|
for every pixel(which was especially slow in YCbCr mode).
|
|||
|
|
|||
|
SNES: Updated to BSNES v058.
|
|||
|
|
|||
|
January 5, 2010:
|
|||
|
Added a "slow-forwarding" feature. It's like FAST forwarding, but you go SLOWER. Which kind of goes without saying, but I felt like saying it anyway.
|
|||
|
It is controlled via the new settings "sftoggle" and "sfspeed", which behave similarly to "fftoggle" and "ffspeed", except that "sfspeed" can be
|
|||
|
set to < 1 values(the actual range is 0.25 <= value <= 1). Fast-forwarding is activated by the backslash key(I first thought about using SHIFT+BACKQUOTE,
|
|||
|
but that would probably make Mednafen worse on foreign keyboards, and we don't need any more of that...)...though this will probably break on some
|
|||
|
Frussiranistanadengia keyboard somewhere.
|
|||
|
If fast-forwarding and slow-forwarding are activated simultaneously(YOU MONSTER), the fast-forwarding speed multiplier will have precedence over the
|
|||
|
slow-forwarding multiplier.
|
|||
|
...and since we recently moved to resampling the audio post-emulation-module-...emulation, slow-forwarding won't bring inaudible frequencies down
|
|||
|
to the audible frequency range(since they were already filtered out). This has both good and bad sides, but probably mostly good(so no non-tubular sounds
|
|||
|
caused by games "silencing" sound channels by setting their playback rates extremely high will be heard).
|
|||
|
|
|||
|
GB: Fixed a bug(still many left) in the external RAM handling code, fixing an
|
|||
|
emulator crash with "Wizards & Warriors - Chapter X". (I think! TODO: confirm)
|
|||
|
|
|||
|
Added support for "lurkers" on the network play server. Previous versions of Mednafen don't lack support for this per se, but there
|
|||
|
would be cosmetic issues with status messages printed to the internal console.
|
|||
|
|
|||
|
Lynx, GBA, PC-FX, MD, SMS: Fixed sound emulation to use the driver-side allocated buffer.
|
|||
|
|
|||
|
January 4, 2010:
|
|||
|
|
|||
|
PC-FX: Added more checks to error conditions during fast booting, and cleaned up and added a few error messages.
|
|||
|
|
|||
|
MDFND_PrintError() and MDFN_Message() will now lock a mutex around access to stdout, instead of queueing the messages to be sent to stdout in the
|
|||
|
main thread. This is what I should have done in the first place... (This change fixes, among other things, dropped status/error messages
|
|||
|
when CD-ROM loading fails).
|
|||
|
|
|||
|
SMS: Fixed video output, broken during the transition to MDFN_Surface.
|
|||
|
|
|||
|
January 3, 2010:
|
|||
|
PCE: Fixed broken Soldier Blade title screen by altering the conditions of when D6 is set(TODO: alter/rename VDC_IS_BSY).
|
|||
|
|
|||
|
Finished implementing priorities for emulation modules when loading a game. The priorities are, from highest to lowest:
|
|||
|
External_high
|
|||
|
Internal_high (All modules but pce_fast are currently set to this)
|
|||
|
External_low
|
|||
|
Internal low (pce_fast is set to this)
|
|||
|
|
|||
|
Added <sysname>.enable settings(type boolean, default value of 1) for all emulation modules. Setting the setting for an emulation module to 0
|
|||
|
will cause that module to not be considered when trying to determine which module to load the game with(it will still be used if explicitly
|
|||
|
specified via -force_module or -loadcd).
|
|||
|
|
|||
|
Added TestMagic() to Lynx, NES, GG, SMS, SNES.
|
|||
|
|
|||
|
Removed SetSoundVolume() from the emulation modules, it's handled in the core code now, but the emulation modules can handle it themselves
|
|||
|
if speed is critically important.
|
|||
|
|
|||
|
Removed SetSoundMultiplier() from the emulation modules, sound is now resampled in the main core if fast-forwarding is in effect. However,
|
|||
|
there still is a provision to handle it in the emulation modules if speed is critically important.
|
|||
|
|
|||
|
The sound buffer emulation modules write to is now allocated on the driver side, but Mednafen still supports the old method of having the sound
|
|||
|
buffer allocated in emulation modules. Currently, the following modules have been converted to the new system:
|
|||
|
GameBoy
|
|||
|
Neo Geo Pocket
|
|||
|
NES
|
|||
|
WonderSwan
|
|||
|
|
|||
|
January 2, 2010:
|
|||
|
Updated the documentation to reflect the additions and changes made between 0.8.5 and 0.8.D.
|
|||
|
|
|||
|
GBA: Fixed a bug that would cause data corruption and the loaded game to crash whenever a state was
|
|||
|
saved(but the state itself, and loading it, was fine) on a big-endian platform.
|
|||
|
|
|||
|
NES: Removed support for sound quality setting "-3". It's too low-quality(Solstice sounds awful) and is unlikely to give a significant % performance
|
|||
|
boost over quality -2.
|
|||
|
|
|||
|
December 31, 2009:
|
|||
|
Replaced more instances of usage of strerror() and "%m" in format strings with usage of the ErrnoHolder class.
|
|||
|
|
|||
|
Lynx: The boot ROM is now loaded through MDFNFILE instead of stdio f*().
|
|||
|
|
|||
|
PC-FX: ROM BIOS and FX-SCSI ROM are now loaded through MDFNFILE instead of stdio f*().
|
|||
|
|
|||
|
Lynx: Fixed a bug in the cart loader code that would cause a crash if the ROM bank size was larger than the actual data available in the
|
|||
|
file(as is the case with some homebrew programs). Thanks to "Wookie" for the patch.
|
|||
|
|
|||
|
GB: Fixed colors when "vdriver" is set to "overlay".
|
|||
|
|
|||
|
Fixed strerror_r() usage in error.cpp/error.h
|
|||
|
|
|||
|
SexyAL: Fixed a bug affecting the return value from RawCanWrite() in the ALSA driver. The returned value was typically too
|
|||
|
small by a factor of 4. The effects of this bug included potential long periods of garbled sound
|
|||
|
during netplay.
|
|||
|
|
|||
|
Fixed the return value from RawCanWrite() in the JACK driver. It was being clamped to a value
|
|||
|
that was too small by a factor of 4; however, the clamp value was already excessively large in a way
|
|||
|
that this bug would should have only been triggered if the "soundbufsize" setting was excessively large.
|
|||
|
The effects of this bug would be similar to the ALSA RawCanWrite() bug.
|
|||
|
|
|||
|
The ALSA and OSS drivers will now try to set audio output to 2 channels if the source data only has 1 channel, and 16-bit signed if the
|
|||
|
source data is 8-bit(automatic conversion is done). This is done to allow for lower period/fragment sizes, as, in ALSA's internals at least,
|
|||
|
the minimum period sizes are expressed in bytes, not sound frames.
|
|||
|
|
|||
|
The ALSA and OSS drivers will now try to set lower period/fragment sizes than previous versions of Mednafen did. With default settings, for
|
|||
|
ALSA, the new period/fragment size is 50% of what it was before, and for OSS, 25%. Also, there's a new setting to override
|
|||
|
the SexyAL's driver's preferred period/fragment sizes, named "sound.period_time"(default value of 0: no override).
|
|||
|
The period/fragment size is expressed in microseconds. If the new, lower fragment sizes cause problems, the setting can be changed to "2666"
|
|||
|
to approximate the fragment size selection in previous versions of Mednafen when using ALSA output, and "5333" when using OSS output.
|
|||
|
|
|||
|
Added a workaround to the OSS driver for a bug in ALSA(and hence, ALSA's in-kernel OSS emulation) that could cause the emulator to run far
|
|||
|
too fast for a short period of time if a buffer underflow occurred.
|
|||
|
|
|||
|
The ALSA's driver's RawCanWrite() method now(finally) uses snd_pcm_avail_update() instead of snd_pcm_delay().
|
|||
|
This should improve performance and frameskipping behavior when the ALSA output is not routed directly to a physical device, such as the case with
|
|||
|
PulseAudio(though PulseAudio is still not recommended :b).
|
|||
|
|
|||
|
If an invalid "sounddriver" is selected, Mednafen will now print an error message and not initialize sound
|
|||
|
instead of silently selecting the default sound driver.
|
|||
|
|
|||
|
SexyAL: Altered the argument order of SexiALI_Convert() to make more sense.
|
|||
|
|
|||
|
Fixed the broken conversion code used when the frame count passed to Write() is greater than 2048.
|
|||
|
|
|||
|
Fixed a bug/design flaw in the SexyAL SDL sound driver that can cause a crash during program
|
|||
|
deinitialization.
|
|||
|
|
|||
|
Added support for "float" output format to the ALSA driver.
|
|||
|
|
|||
|
The ALSA driver will now try all formats that SexyAL's conversion code supports if the desired
|
|||
|
format is not supported by the output device, rather that simply erroring out as before.
|
|||
|
|
|||
|
Added support for converting to 24-bit and 32-bit PCM output formats from the source format(which
|
|||
|
is still fixed to signed 16-bit).
|
|||
|
|
|||
|
The driver function RawCanWrite() is now passed a pointer to a uint32_t, which it sets to the number
|
|||
|
of bytes that can be written without blocking, rather than returning the value directly, so that
|
|||
|
the return value can be used as a success/failure indicator.
|
|||
|
|
|||
|
The driver function RawWrite(), and the "user" function Write(), will now return 1 on success, 0 on
|
|||
|
(fatal) error, rather than returning the amount of data written.
|
|||
|
|
|||
|
The OSS driver was testing the return value of open() incorrectly. Fixed.
|
|||
|
|
|||
|
SexyAL is now compiled as C++(but doesn't use many C++ features yet), which necessitated
|
|||
|
adding several explicit casts in various code, and fixing some inconsistent function prototypes and
|
|||
|
declarations.
|
|||
|
|
|||
|
JACK: Fixed a stereo playback crashing problem(a loop count was being calculated incorrectly).
|
|||
|
|
|||
|
JACK: Switched to using jack_client_open() instead of the deprecated jack_client_new().
|
|||
|
|
|||
|
JACK: The "sounddevice" setting is now used, to specify the JACK server to connect to.
|
|||
|
|
|||
|
JACK: Fixed a possible race condition in RawCanWrite().
|
|||
|
|
|||
|
JACK, SDL: Changed the inter-thread ringbuffer setup to be less likely to underrun, while not hurting
|
|||
|
latency.
|
|||
|
|
|||
|
JACK, SDL: Additional playback position precision is now obtained by using
|
|||
|
jack_get_time()/SDL_GetTicks(). This will improve Mednafen's performance with larger fragment sizes
|
|||
|
with these drivers, but smaller fragment sizes are still preferred for latency-to-underrun-occurrence-ratio
|
|||
|
reasons.
|
|||
|
|
|||
|
Renamed the "byteorder" field of SexyAL_format to "revbyteorder", and changed it to a boolean type,
|
|||
|
to avoid confusion over what it actually represents.
|
|||
|
|
|||
|
December 30, 2009:
|
|||
|
Altered autogen.sh to force updates(copy to Mednafen's source dir) of automake standard files.
|
|||
|
|
|||
|
Added usage of the AM_SILENT_RULES macro to the autoconf script, allowing pretty compile output via:
|
|||
|
./configure --enable-silent-rules
|
|||
|
or
|
|||
|
make V=0
|
|||
|
|
|||
|
PCE: Fixed the BRAM initialization(it was wrong, and generated from when Mednafen erroneously emulated 8KiB of BRAM).
|
|||
|
Fixes lockups in "Sorcerian".
|
|||
|
Note that if you have any existing save states or battery-backed RAM files for "Sorcerian" in "sav" or "mcs" under
|
|||
|
Mednafen's base directory from when you attempted to run "Sorcerian", you will need to delete them
|
|||
|
for this fix to have any effect.
|
|||
|
|
|||
|
Fixed:
|
|||
|
joystick.cpp:141: warning: format ‘%016llx’ expects type ‘long long unsigned int’, but argument 4 has type ‘uint64’
|
|||
|
|
|||
|
|
|||
|
November 30, 2009:
|
|||
|
Fixed some PC-FX interlaced compile errors(resulting from an earlier effort to fix 0-width source rect blits
|
|||
|
|
|||
|
due to not verifying that the variables for the previous field contained valid data).
|
|||
|
|
|||
|
Fixed a minor typo in NGPGFX_CLASS::reset()
|
|||
|
|
|||
|
GB: Fixed initialization of "HRAM" on virtual power toggle/reset.
|
|||
|
|
|||
|
SMS: Fixed the input and reset emulation when the territory was
|
|||
|
set to "domestic"(Japan) and FM emulation was enabled; the emulated system was erroneously
|
|||
|
being treated as a Game Gear in a few places when those conditions were met.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
November 8, 2009:
|
|||
|
Reran ./autogen.sh, under Ubuntu 9.10
|
|||
|
|
|||
|
Reverted drivers/opengl.cpp and drivers/opengl.h to pre-PBO experimentation copies.
|
|||
|
|
|||
|
Fixed incorrect(and excessively complex, old code nearby) usage of MDFNI_DispMessage() in drivers/input.cpp in
|
|||
|
the input configuration process.
|
|||
|
|
|||
|
Removed archaic and unused(but still being compiled!) files drivers/config.cpp and drivers/config.h.
|
|||
|
|
|||
|
Fixed cases of file I/O return values being ignored in:
|
|||
|
mempatcher.cpp
|
|||
|
mmmreader.cpp (not complete)
|
|||
|
|
|||
|
Fixed some strict-aliasing-conflicting code in nes/ppu/ppu.cpp, and somewhat ambiguous parentheses.
|
|||
|
TODO: Clean it up more.
|
|||
|
|
|||
|
Reverted PC-FX KING/FXVCE rendering/mixing code to pre-black-bias-optimization attempt. It was convoluting the
|
|||
|
code too much.
|
|||
|
|
|||
|
|
|||
|
Before(some of these changes listed below are seriously out of order from when they occurred, development was kind of chaotic and haphazard):
|
|||
|
|
|||
|
Altered the netplay protocol, adding "INTEGRITY", "SERVERTEXT", and "ECHO" commands. Added "/ping" and "/integrity" commands to the netplay
|
|||
|
text console.
|
|||
|
|
|||
|
CD emulation:
|
|||
|
Added new multi-threaded CD image and physical drive reading code, with a small readahead buffer.
|
|||
|
This new code will also allow sector read hints to be given, which should alleviate
|
|||
|
emulation freezes once we emulate CD seek delays in cdrom/scsicd.cpp.
|
|||
|
|
|||
|
Simplified the base CD reading code, to always fetch 2352+96 bytes of data.
|
|||
|
|
|||
|
Physical CD reads will now read semi-"raw" data(2352 bytes per sector regardless of sector type),
|
|||
|
along with 96 bytes of subchannel data per sector.
|
|||
|
|
|||
|
extra commands(WIP)
|
|||
|
|
|||
|
requires_medium
|
|||
|
|
|||
|
Added "ErrnoHolder" class, to be instantiated immediately after a function that modifies errno(passed "errno" as the constructor argument).
|
|||
|
It holds the errno value in a safe place(so future calls to any printf or whatever functions won't change it), and it has a StrError() function,
|
|||
|
which is essentially a wrapper that will use strerror_r(), or if not available, strerror(), and return a const char * pointer to a buffer
|
|||
|
internal to the ErrnoHolder class.
|
|||
|
|
|||
|
|
|||
|
PC-FX: (August 30, 2009) Fixed stupid ASC value bug in DoPAUSERESUME that broke PC-FX CDDA player
|
|||
|
|
|||
|
PC-FX, PCE: (August 30, 2009) Fixed stupid CD-DA playback volume bug
|
|||
|
|
|||
|
PC-FX: Fixed ADPCM IRQ handling(fixes random lockups in Sparkling Feather during the initial period of FMVs).
|
|||
|
|
|||
|
NES: Changed DMC IRQ emulation to fix "Apple Town Story".
|
|||
|
|
|||
|
NES: Greatly improved FDS sound emulation(thanks to Disch's document, and VirtuaNES source code).
|
|||
|
|
|||
|
The framebuffer that emulation modules render to is now abstracted behind the "MDFN_Surface" class, instead of having naked pointers and
|
|||
|
various video format global variables out the wazoo. Adding the "overlay" output driver/method necessitated this change, too.
|
|||
|
|
|||
|
Added support for SDL Y'CbCr overlays(USUALLY hardware accelerated). Enabling this video output method can be achieved by setting the "vdriver"
|
|||
|
setting to "overlay". This is a very experimental video output method, it may not work properly on all operating systems and video cards.
|
|||
|
|
|||
|
Added a special case faster 5x scaler for the "SDL soft" video driver.
|
|||
|
|
|||
|
Added a faster generic integer scaler for the "SDL soft" video driver.
|
|||
|
|
|||
|
PCE: Added the ability to load a custom colormap(palette) by setting "pce.colormap" to the path of the colormap
|
|||
|
file. The colormap consists of either 512 or 1024 RGB triplets, 8-bits per color component,
|
|||
|
in the order R,G,B,R,G,B,R,G,B,... .
|
|||
|
It is recommended that the colormap provide all 1024 entries(the first 512 entries are for normal mode,
|
|||
|
the second 512 entries are for grayscale/strip-colorburst mode). If it doesn't, Mednafen will calculate
|
|||
|
the grayscale colors using a formula similar to that used with the real VCE, but with more precision.
|
|||
|
The colormap may be disabled by setting the "pce.colormap" setting to an empty string, or 0. Command-line
|
|||
|
examples:
|
|||
|
mednafen -pce.colormap /path/to/blueblue.cmap /yarr/pirate/booty.pce [Enable]
|
|||
|
|
|||
|
mednafen -pce.colormap 0 /some/where/over/the/rainbow/islands.cue [Disable]
|
|||
|
|
|||
|
Added a (convoluted) compiler bug test to tests.cpp, to guard against buggy gcc versions when
|
|||
|
compiling with -fno-strict-overflow with optimizations enabled.
|
|||
|
|
|||
|
Added "frameskip" setting to disable internal frameskip for speed testing(because we invariably forget
|
|||
|
to disable manual frameskip disabling code changes after we're done running tests).
|
|||
|
|
|||
|
Fixed a crashing problem when entering an invalid menu choice("0") in the cheat interface. Thanks to
|
|||
|
tsenart for reporting the bug.
|
|||
|
|
|||
|
Fixed several instances of mismatches between format strings and passed argument types, which could cause
|
|||
|
nonsensical information to be printed on big-endian platforms, and perhaps some little-endian platforms as well.
|
|||
|
|
|||
|
Fixed the minimum field-width specifier on the statements that print the loaded game's CRC32 in several
|
|||
|
places.
|
|||
|
|
|||
|
Added the "format(...)" function attribute to the MDFN_DispMessage(), MDFN_PrintError(), and MDFN_printf()
|
|||
|
function prototypes to catch format string errors.
|
|||
|
|
|||
|
Changed the INLINE define to always force an inline with gcc(contrast with 0.8.x, where we introduced
|
|||
|
a new ALWAYS_INLINE in addition to INLINE).
|
|||
|
...and added a blip_inline that does the same for Blip_Buffer.
|
|||
|
...and changed various "inline" statements to INLINE and blip_inline, where appropriate.
|
|||
|
TODO: Audit our INLINE statements to make sure we're using them only in speed-critical code and with
|
|||
|
smallish functions. Looking at Lynx and NES code here especially...
|
|||
|
|
|||
|
NES: Fixed an intialization bug in mapper 193.
|
|||
|
|
|||
|
NGP: Fixed an unaligned memory access bug in the memory r/w handlers, causing crashes on platforms
|
|||
|
that do not support unaligned memory accesses.
|
|||
|
|
|||
|
Removed erroneous dependency on CD-ROM emulation when WonderSwan emulation is enabled in the configure script.
|
|||
|
|
|||
|
The included Tremor is now compiled with "-fvisibility=hidden" to work around a dynamic symbol collision
|
|||
|
problem with libsndfile(BUT, -fvisibility is only available in gcc 4.0 and newer).
|
|||
|
This solution may not be correct...
|
|||
|
|
|||
|
Updated Tremor to the latest SVN version.
|
|||
|
|
|||
|
Upped the minimum playback rate to 22050 Hz, from 8192 Hz. The lower rates aren't tested very often,
|
|||
|
and the sound resampling code works very poorly at such low rates(not to mention sound quality in general is
|
|||
|
going to be pretty bad at such low rates anyway).
|
|||
|
|
|||
|
Added sanity checks to the first track number and total track count returned from libcdio, to prevent
|
|||
|
a crash in Mednafen if the libcdio driver fails and returns nonsensical values.
|
|||
|
|
|||
|
Removed unused file sms/state.h.
|
|||
|
|
|||
|
Fixed a very-old bug that caused joystick unique ID collisions if more than 2 of the same "type" of physical
|
|||
|
joystick were available.
|
|||
|
|
|||
|
Mednafen is now compiled with -fsigned-char, to prevent any potential problems on systems with an "unsigned" char
|
|||
|
type as default.
|
|||
|
|
|||
|
Reworked the setting code to use a multimap with a 32-bit key(CRC32 of the setting name) instead of a vector
|
|||
|
that was iterated over(TODO: Sort settings written to the configuration file).
|
|||
|
|
|||
|
PC-FX: Adjusted the range of the I/O map mirror access range in the memory map, and added emulation of reads from it.
|
|||
|
|
|||
|
PC-FX: Refactored the KING BG drawing code, adding support for BG0 subscreen. Fixes problems with
|
|||
|
"Angelique Special". (We'll add a simple hack/very limited subscreen code to 0.8.x to fix this problem)
|
|||
|
|
|||
|
PCE, PC-FX: Fixed the emulation of SCSI command 0xDE, mode 0x1. The value returned was too small by
|
|||
|
2 seconds.
|
|||
|
|
|||
|
PCE, PC-FX: Fixed the sector count for the last track(which influences the leadout track start position/total
|
|||
|
sector count) in multi-track CUE/BIN CDROM images.
|
|||
|
|
|||
|
PC-FX: Greatly improved the KING->RAINBOW block transfer logic(previously a hacky buggy mess).
|
|||
|
Fixes some minor glitches in Zenki.
|
|||
|
|
|||
|
Fixed several problems in file.cpp, including buggy and overly-complicated MDFN_read*le() functions,
|
|||
|
and a problem with the const-ness of the return value of strrchr() with gcc 4.4.
|
|||
|
|
|||
|
PC-FX: Fixed the exception code set when an FPU divide-by-zero occurs(previously, it was being set to the
|
|||
|
integer divide-by-zero exception code).
|
|||
|
|
|||
|
PC-FX: Fixed the handler address called when a TRAP instruction is executed.
|
|||
|
|
|||
|
PC-FX: Added boolean setting "pcfx.rainbow.chromaip", default enabled, that controls whether or not
|
|||
|
the chroma channel of the RAINBOW chip's YUV output(usually used when decoding still full-color or moving images)
|
|||
|
should be interpolated bilinearly. Turning it off will make the output image appear blockier and slightly
|
|||
|
less blurry, and closer to what a real PC-FX displays. For a good example of its effect, look at the scrolling
|
|||
|
red letters in "Kishin Douji Zenki" with it on, and then with it off.
|
|||
|
|
|||
|
GBA: An error loading the custom colormap file is now treated as fatal.
|
|||
|
|
|||
|
Increased the maximum X scale and Y scale sanity check value from 20 to 50.
|
|||
|
|
|||
|
Fixed an off-by-one error in the software SDL graphics rotation code(used for Lynx and WonderSwan).
|
|||
|
|
|||
|
SexyAL: The return values of ALSA functions are now treated as errors only if they're less than 0, rather
|
|||
|
than non-zero as before. Thanks to R.L. for pointing this out.
|
|||
|
|
|||
|
The default "nethost" setting is now "fobby.net" instead of "mednafen.com". The latter was allowed to
|
|||
|
expire and lost to domain squatters some time ago. Domain squatters cause desires to commit grievous face-stabbing.
|
|||
|
However, the netplay server on "fobby.net" is not guaranteed to be up. :p
|
|||
|
|
|||
|
Fixed the rectangle calculation for screen rotation with Lynx and WonderSwan to use X scale and Y scale
|
|||
|
values appropriately(they were reversed before; also, assuming square pixels on your monitor ;)).
|
|||
|
Rotation still poses a problem in fullscreen with the default settings, however.
|
|||
|
|
|||
|
Added new entries to "InputDeviceInputInfoStruct" concerning rotated inputs, and removed the Lynx and WonderSwan
|
|||
|
partially-specific rotation code in drivers/input.cpp
|
|||
|
|
|||
|
WonderSwan: Fixed a bug that made it impossible to push a direction on one D-pad while the opposing direction
|
|||
|
was being pressed on the other D-pad.
|
|||
|
|
|||
|
fflush(stdout) is now called after printing status messages or errors(may be nominally slower, but should
|
|||
|
provide more information if something goes kaka on some platforms).
|
|||
|
TODO: Synchronous error messages and status messages from the game thread, rather than asynchronous.
|
|||
|
|
|||
|
Z80(SMS, NGP, MD): Ported the following changes from the FUSE SVN repository:
|
|||
|
Unhalt on NMI (thanks, Simon Owen).
|
|||
|
|
|||
|
Changed how firmware is located. Firmware is now searched in several locations, in this order:
|
|||
|
MEDNAFEN_BASE_PATH/firmware/SYSTEM_SPECIFIC_FIRMWARE_FILENAME_SETTING
|
|||
|
MEDNAFEN_BASE_PATH/SYSTEM_SPECIFIC_FIRMWARE_FILENAME_SETTING (for backwards compatibility)
|
|||
|
...or, if SYSTEM_SPECIFIC_blahblahblah has been set to an absolute path by the user, it will only search
|
|||
|
there. Also, the firmware path override "path_firmware" setting has been added. Note that setting "path_firmware"
|
|||
|
to a non-default value will cause Mednafen to only try to open SYSTEM_SPECIFIC_FIRMWARE_FILENAME_SETTING in
|
|||
|
that path, it won't look anywhere else.
|
|||
|
TODO: Document all this in the primary documentation.
|
|||
|
|
|||
|
Fixed a race condition that could cause rapid oscillation between fullscreen and windowed when trying to
|
|||
|
toggle it.
|
|||
|
...and fixed a race condition that could cause oscillations when rotating the screen with Lynx and WonderSwan
|
|||
|
emulation.
|
|||
|
|
|||
|
Changed the name of the mednafen configuration file to "mednafen-09x.cfg", to prevent conflicts with 0.8.x
|
|||
|
and older(when going back and forth).
|
|||
|
|
|||
|
NES: Renamed the misnamed Famicom input device "Quiz King Buzzers" to the correct name, "Party Tap".
|
|||
|
|
|||
|
Fixed a bug when creating an SDL source surface, whose negative effects(clipping rightmost columns) could be
|
|||
|
triggered when the "sdl" vdriver setting was used with certain xscale and yscale settings that would
|
|||
|
cause a 1:1 pixel copy operation.
|
|||
|
|
|||
|
PCE: Altered the Street Fighter 2 autodetection code to be data-agnostic. The SF2 mapper will now be enabled for
|
|||
|
any ROM images 2MiB and over in size.
|
|||
|
|
|||
|
Fixed string constant-to-(char *) problems in drivers/cheat.cpp
|
|||
|
|
|||
|
PC-FX: Fixed bugs in "Play Audio Track Index" and "Read Subchannel" MMC commands, fixing the totally broken
|
|||
|
cinematic sequences in "Boundary Gate". There may still be bugs in these commands that don't cause any known
|
|||
|
problems with games, so I will need to run tests on a real system.
|
|||
|
|
|||
|
PCE: Fixed ST0, ST1, and ST2 instruction timings(they were too low by 1 cycle).
|
|||
|
|
|||
|
(Autoconf/automake cleanups and fixes)
|
|||
|
|
|||
|
NES: Fixed "Time Lord" by altering the PPU startup sequence timing.
|
|||
|
|
|||
|
Netplay (New commands, WIP)
|
|||
|
|
|||
|
PC-FX: Chroma keying is now disabled in the 7.16MHz dot-clock mode(the problem that making this change
|
|||
|
caused with Nirgends before was apparently a bug in the handling of RAINBOW's non-endless scroll mode,
|
|||
|
which was fixed during optimizations).
|
|||
|
|
|||
|
PC-FX: Made various optimizations:
|
|||
|
Altered how chip linebuffer transparencies are expressed. They are now expressed simply by the pixel
|
|||
|
being 0(along with layer number reorganization, the layer number in the upper bits of the internal
|
|||
|
pixel prevents a YUV-triplet of "0" erroneously being interpreted as transparent).
|
|||
|
|
|||
|
Reworked the VDC layer mixing code to be simpler, and have separate optimized(if the compiler works
|
|||
|
properly :b) versions for the 4 different VDC 240-color-mode-enable settings.
|
|||
|
|
|||
|
Rewrote pieces of the RAINBOW Huffman decoder to use LUTs.
|
|||
|
|
|||
|
Rewrote the RAINBOW chroma-key evaluation code on suggestion of Exophase, and added several
|
|||
|
special-case faster versions for common simple chroma-key settings.
|
|||
|
|
|||
|
PC-FX: Modified the ADPCM play back code to use linear interpolation, with respect for the enable bits
|
|||
|
in the control register, and to use the OKI/Dialogic ADPCM decoder class originally written for
|
|||
|
PCE CD ADPCM emulation.
|
|||
|
|
|||
|
NES: Cleaned up the iNES loading code a bit, and added support for WRAM on a few mappers that nominally shouldn't
|
|||
|
have WRAM, enabled if the battery-backed bit is set in the iNES header. Fixes "Family BASIC", and probably
|
|||
|
a few bootleg games as well.
|
|||
|
|
|||
|
Added configure script option "--enable-altivec/--disable-altivec (default: enabled)" for compiling on
|
|||
|
PowerPC architectures where AltiVec is not supported, or causes problems.
|
|||
|
|
|||
|
Fixed a call to putenv(), to pass a static character array initialized to a string constant instead of a string
|
|||
|
constant directly.
|
|||
|
|
|||
|
SMS: Removed the old unused Z80 emulator code from when SMS Plus was assimilated.
|
|||
|
|
|||
|
NES: Added support for mapper 163(TODO).
|
|||
|
|
|||
|
NES: Added support for mapper 241.
|
|||
|
|
|||
|
PCE, PC-FX: Improved LFO emulation again, fixing vibratto effects in the intro of "Hanii in the Sky".
|
|||
|
|
|||
|
Debugger: Fixed a bug in the trace log code. It would cause the emulator to lock up if the user pressed
|
|||
|
Enter/Return in the prompt popup without any text in the input field.
|
|||
|
|
|||
|
Fixed a few argument descriptions(invoked with the -help command-line switch) that weren't properly gettextized.
|
|||
|
|
|||
|
TODO-itemize? Added Sega Genesis emulation:
|
|||
|
Based on cgfm2's Genesis Plus.
|
|||
|
Uses YM2612 emulator from Gens
|
|||
|
Uses Stef's C68k emulator(still needs more bug fixes for "The Lost Vikings").
|
|||
|
Uses blargg's Sms_Apu.
|
|||
|
Some code based on/imported from Genesis Plus GX.
|
|||
|
|
|||
|
PCE: Revamped input emulation:
|
|||
|
Individual devices(exluding multitap) are now in their own classes.
|
|||
|
Added incomplete emulation of the Tsushin Keyboard.
|
|||
|
Added setting "pce.input.multitap" to allow for disabling the multitap(enabled by default).
|
|||
|
|
|||
|
Fixed a few deprecated const string to char* conversions in:
|
|||
|
v810_cpuD.cpp:188: warning: deprecated conversion from string constant to ‘char*’
|
|||
|
romdb.cpp:21: warning: deprecated conversion from string constant to ‘char*’
|
|||
|
|
|||
|
(More driver interface changes)
|
|||
|
|
|||
|
GB: Corrected a lack of address masking in most of the cart RAM emulation code. Fixes a few Chinese GameBoy
|
|||
|
Color games.
|
|||
|
|
|||
|
GBA: Fixed a buffer overflow in the ROM image loading code.
|
|||
|
|
|||
|
NES: (Re?)-added support for mapper 240(it was erroneously listed in the documentation as being supported...).
|
|||
|
|
|||
|
PC-FX: Several variables related to subchannel reading weren't being saved in save states. Fixed. (This fixes
|
|||
|
save states made within the BIOS' CD-DA player)
|
|||
|
|
|||
|
Changed default key assignments for d-pads on emulated input devices from WASZ style to WASD.
|
|||
|
|
|||
|
Altered the save state format and file extensions. Save states made from previous versions of Mednafen will obviously be
|
|||
|
completely incompatible with this version. (Support for older save states may be readded later...)
|
|||
|
|
|||
|
Added setting "osd.state_display_time", to control the length of time, in milliseconds, the save state/movie
|
|||
|
screen is displayed after selecting a save state or movie.
|
|||
|
|
|||
|
Added a save state function to the base Z80 emulation code(since the Z80 emulation is now used in 3 places).
|
|||
|
|
|||
|
Added <string.h> to the global include list in mednafen.h.
|
|||
|
|
|||
|
Moved the multi-byte single-variable decoding/encoding functions from endian.cpp to endian.h as inline functions.
|
|||
|
|
|||
|
PC-FX: Emulated gamepad button presses weren't being decoded from the driver-side data correctly(causing problems on big-endian
|
|||
|
platforms). Fixed.
|
|||
|
|
|||
|
SMS: SMS pause and 2-player support were erroneously commented out. Fixed.
|
|||
|
|
|||
|
NES: Fixed CNROM emulation initialization bug.
|
|||
|
|
|||
|
PCE: Added the VDC register select register to the debugger.
|
|||
|
|
|||
|
PCE: Reads from the timer count register the cycle it is set to reload after expiring will now return 0x7F. Fixes "Battle Royale".
|
|||
|
|
|||
|
PCE: Rewrote arcade card emulation based on information from David Shadoff, and a tip from Exophase. The ADPCM sound effects
|
|||
|
in Garou Densetsu II work correctly now.
|
|||
|
|
|||
|
PCE: ADPCM: Combined the two dividers into one.
|
|||
|
|
|||
|
Rewrote the ADPCM nybble decoder.
|
|||
|
|
|||
|
Fixed an off-by-one-nybble playback bug.
|
|||
|
|
|||
|
Altered how the read and write addresses are set. Fixes the Super CD version of "Tengai Makyou Ziria", and
|
|||
|
"CD Mahjong Bishoujo Chuushinha".
|
|||
|
|
|||
|
|
|||
|
PCE, PC-FX: Improved PSG LFO emulation.
|
|||
|
|
|||
|
PC-FX: Disassembly of the "nop" instruction will no longer show the virtually meaningless operand.
|
|||
|
|
|||
|
PC-FX: Fixed alignment and prettified the disassembly of LDSR and STSR instructions.
|
|||
|
|
|||
|
Added boolean setting "debugger.autostepmode" that, when set to 1, will cause Mednafen to automatically start
|
|||
|
the debugger in step mode after a game is loaded(only if Mednafen has a debugger for the emulated system, of course).
|
|||
|
|
|||
|
The most recently-saved save state slot will now be colored differently when selecting a save state slot.
|
|||
|
Increased the brightness of non-empty save state slots.
|
|||
|
Empty save state slots are now black instead of being partially transparent.
|
|||
|
|
|||
|
PCE: Fixed emulation of a few VDC vertical timing registers when in SuperGrafx mode(this change shouldn't affect the released
|
|||
|
commercial SuperGrafx games at all, but it will fix a few graphical emulation problems when trying to play normal PCE games
|
|||
|
in SuperGrafx mode).
|
|||
|
|
|||
|
PCE: ADPCM software reset was erroneously also resetting the playback frequency. Fixed. (Fixes ADPCM voices in Gulliver Boy)
|
|||
|
|
|||
|
Added magic testing functions to the MDFNGI structure.
|
|||
|
|
|||
|
Added known file extensions to the MDFNGI structure.
|
|||
|
|
|||
|
PC-FX: KING BG and CG offset registers are now emulated as 8-bit instead of 9-bit. This shouldn't affect emulation at
|
|||
|
all(these registers were write-only to the game code, and the background rendering code already
|
|||
|
effectively masked these to 8-bits when rendering), but it will fix potential confusion when using the debugger's register
|
|||
|
viewer.
|
|||
|
Also, did the same to the soundbox ADPCMControl register(limiting it to 6-bits, in this case).
|
|||
|
|
|||
|
PC-FX: Improved the logging of the ROM font system call in the debugger, to also include the callee address and the size of the
|
|||
|
glyph being requested.
|
|||
|
|
|||
|
PCE: Fixed disassembly of the JMP $(AAAA, X) instruction.
|
|||
|
|
|||
|
GBA: Fixed a startup crashing bug on big-endian platforms.
|
|||
|
|
|||
|
Removed unnecessary indirection of sound buffer variables in EmulateSpecStruct.
|
|||
|
|
|||
|
Changed many instances of *printf() and *scanf() to their trio equivalents.
|
|||
|
|
|||
|
Changed instances of fprintf() in mempatcher.cpp to trio_fprintf() to work around major issues with pre-C99 standard C libraries.
|
|||
|
|
|||
|
WonderSwan: Added rudimentary support for playing back WSR(ripped WonderSwan music) files.
|
|||
|
|
|||
|
Cleaned global header files.
|
|||
|
|
|||
|
NES: Replaced the old FIR+Blip_Buffer resampler with an experimental new, all-in-one, polyphase resampler, written with some code and help
|
|||
|
from blargg. Two new settings were added to control its characteristics:
|
|||
|
nes.soundq - An arbitrary sound quality setting, default of 0. Higher values will increase sound quality(decreasing
|
|||
|
passband width and increasing stopband attenuation), while lower values will decrease sound quality. The maximum is 3,
|
|||
|
and the minimum is -3. Going below sound quality -1 is not recommended
|
|||
|
|
|||
|
nes.sound_rate_error - The error tolerance of the polyphase resampler's output rate versus the real output rate.
|
|||
|
Lower values will cause the resampler's output rate to come closer to the real output rate, at
|
|||
|
the cost of more memory usage(and possibly cache thrashing), while higher values will do the opposite.
|
|||
|
The default is 0.00005. The range is 0.0000001(most accurate) to 0.01(least accurate, will likely
|
|||
|
cause sound to sound out of tune).
|
|||
|
Changing this setting is not recommended for normal usage, though it may make sense to set it
|
|||
|
to its minimum value if you are recording Mednafen's sound output.
|
|||
|
|
|||
|
The setting <system>.scanlines now takes the opacity of scanlines directly, in percent(range 0-100), instead of the old totally-fubar
|
|||
|
formula.
|
|||
|
WARNING: THIS CHANGE BREAKS BACKWARDS COMPATIBILITY FOR THIS SETTING IN EXISTING CONFIGURATION FILES AND ANY FRONTENDS OR SCRIPTS.
|
|||
|
|
|||
|
GBA: Cleaned up a few benign shadowed-variables.
|
|||
|
|
|||
|
GBA: DMA registers were being saved as 32-bit arrays instead of 16-bit arrays in save states, potentially causing memory
|
|||
|
corruption, and broken save states on big endian platforms. Fixed.
|
|||
|
|
|||
|
Abused C++ function overloading to force the SFARRAY16, SFARRAY32, etc. macros in state.h to force a compiler error if they
|
|||
|
are passed arrays of an unknown/invalid type. Updated GBA, Lynx, NES... to not save invalid types(usually with a typecast to
|
|||
|
the appropriate type, for union'd types).
|
|||
|
|
|||
|
Added support in state.cpp and state.h for saving/loading bool types properly.
|
|||
|
|
|||
|
Removed the hackish "bool8" type.
|
|||
|
|
|||
|
Changed instances of manual SFORMAT structure creation in a lot of old system emulation code to use the SF* macros instead.
|
|||
|
|
|||
|
GB, GBA: Upgraded Gb_Apu and replaced Gba_Apu(a Mednafen-specific hacked-up ancient version of Gb_Apu) to a newer version
|
|||
|
provided by blargg, that includes builtin support for GBA's legacy sound channels. This change breaks save states for GB and GBA
|
|||
|
created in previous versions of Mednafen(though this shouldn't happen again, at least not for updates to the sound code).
|
|||
|
|
|||
|
Added a "fullname" member to the MDFNGI struct.
|
|||
|
|
|||
|
PCE CD, PC-FX: Fixed display of CDROM data tracks in the debugger's memory viewer(it was broken sometime between 0.8.2 and 0.8.4).
|
|||
|
|
|||
|
GBA: The Load() function was returning a largeish integer, instead of 1, after successfully loading a ROM image. Fixed.
|
|||
|
|
|||
|
Removed the "fb" variable from the MDFNGI struct.
|
|||
|
|
|||
|
Renamed "width" and "height" in the MDFNGI struct to "nominal_width" and "nominal_height", fixed NES and PCE emulation code to set nominal_height
|
|||
|
correctly, and modified save state code to use these variables for generating and displaying save state previews(TODO: rewrite
|
|||
|
save state preview resize code to resize vertically when DisplayRect.h != nominal_height, though this should never occur at the moment,
|
|||
|
it may if we add support for systems with selectable interlaced video modes).
|
|||
|
|
|||
|
Removed the save state preview width variable from the MDFNGI struct.
|
|||
|
|
|||
|
Added an fb_height member to the MDFNGI struct.
|
|||
|
|
|||
|
Fixed header include order in the JACK audio driver.
|
|||
|
|
|||
|
GB: Corrected loading/saving of MBC3 time values in save files(this will cause incompatibility with MBC3 RTC save games created in previous
|
|||
|
versions of Mednafen, unless they were created running on a 64-bit little-endian system).
|
|||
|
|
|||
|
GB: The setting "filesys.disablesavegz" will now affect GameBoy save files.
|
|||
|
|
|||
|
MDFN_DumpToFile() now checks for errors in fclose().
|
|||
|
|
|||
|
Added preliminary movie(audio+video) recording support to a custom format. A secondary
|
|||
|
|
|||
|
0.8.6:
|
|||
|
PCE: Removed a statement, that was used for debugging, that broke PC Engine multiplayer support in 0.8.5. (I'm not sure
|
|||
|
how it got there in the first place...).
|
|||
|
|
|||
|
0.8.5:
|
|||
|
|
|||
|
Fixed a crashing bug when loading an uncompressed file and using the automatic IPS-patching feature when mmap() is available.
|
|||
|
|
|||
|
PCE, PC-FX: All SCSI CDROM commands are now logged in the debugger's log viewer(when logging is enabled, of course).
|
|||
|
|
|||
|
Added group support to the debugger's log viewer.
|
|||
|
|
|||
|
PC-FX: Renamed the type of BIOS ROM font calls in the debugger's log viewer from "BIOS" to "ROMFONT".
|
|||
|
|
|||
|
PC-FX: BIOS filesystem syscall(for backup memory access) calls are now logged in the debugger's log viewer.
|
|||
|
|
|||
|
PC-FX: Added internal backup memory and external backup memory address spaces to the debugger's memory editor.
|
|||
|
|
|||
|
PC-FX: In the 263-line mode, line 262 is now reported as being during blanking time(as on a real PC-FX). Fixes the annoying transparency layer
|
|||
|
flickering and other weird graphical glitches in Der Langrisser FX.
|
|||
|
|
|||
|
Added setting "filesys.disablesavegz", to disable gzip compression when saving save states and backup memory.
|
|||
|
(In the case of backup memory, disabling gzip compression isn't supported for GB yet)
|
|||
|
|
|||
|
0.8.4:
|
|||
|
|
|||
|
PC-FX: Some RAINBOW registers weren't being reset on emulated system reset. Fixed.
|
|||
|
|
|||
|
PC-FX: Added dummy support for the external bus reset register.
|
|||
|
|
|||
|
PC-FX: Altered the way garbage data is handled by RAINBOW to fix a graphics bug in the Tengai Makyu options screen.
|
|||
|
|
|||
|
PC-FX: Reworked a large part of the KING SCSI emulation code, and parts of the CDROM device emulation code. Previously non-working-at-all games
|
|||
|
"Battle Heat" and "Tengai Makyu" work now.
|
|||
|
The non-anime game mode in "Tyoushin Heiki Zeroigar" works now. "Der Langrisser FX" no longer locks up if you skip the intro movie.
|
|||
|
"Yuna FX" no longer locks up in one of the intro movies.
|
|||
|
These changes will cause some save state incompatibilities with previous versions of Mednafen.
|
|||
|
(Some of the SCSI changes also affect the PCE CDROM emulation, which may also result in save-state incompatibility issues, particularly if
|
|||
|
the save state occurred during a CDROM data transfer operation.)
|
|||
|
|
|||
|
PC-FX: Added setting "pcfx.cdspeed". If you want to change this, read the documentation first!
|
|||
|
|
|||
|
Cleaned up the video deinitialization code slightly, and fixed a few bugs in the OpenGL deinitialization code.
|
|||
|
|
|||
|
PC-FX: Reads from the dummy KING register 0x07 will now return 0xFF, per the devkit docs.
|
|||
|
|
|||
|
PC-FX: Reads from KING register 0x0B will now return the "DMA end" bit in D0 set correctly(at least, according to the developer docs).
|
|||
|
|
|||
|
Fixed a compilation error after running configure with --disable-nes.
|
|||
|
|
|||
|
PC-FX: Reads from I/O port 0xFC0 will *now* return the current timer counter value. The switch statement mask value was wrong...
|
|||
|
|
|||
|
Removed the warning in the documentation about error correction of raw data track rips, as Mednafen will now perform simple correction
|
|||
|
using the EDC and L-EC data(since 0.8.4-rc3). This could conceivably cause problems with naive hacks/translations/patches that neglect to update
|
|||
|
the EDC and L-EC data, so it can be disabled by setting the setting "cdrom.lec_eval" to 0.
|
|||
|
L-EC correction is based off code from dvdisaster(http://dvdisaster.net/).
|
|||
|
|
|||
|
PCE, PC-FX: Removed some debug printf()'s that were left in 0.8.4-rc3 by mistake.
|
|||
|
|
|||
|
0.8.4-rc3:
|
|||
|
|
|||
|
PCE: Added preliminary(it works, but the code needs to be cleaned) ADPCM support for HES rips.
|
|||
|
|
|||
|
PCE: Interrupts will be enabled with a CLI after a HES' init routine is called, to fix rips that neglect to do it themselves.
|
|||
|
|
|||
|
PCE: Added support for HES rips that try to write data where it really shouldn't be written(some CD-ROM game rips do this), though a warning
|
|||
|
will be printed the first time this occurs after loading.
|
|||
|
|
|||
|
PCE: Added sanity checks to the HES loader to prevent crashes if invalid data is present.
|
|||
|
|
|||
|
PCE: Reads from the I/O port will now return D7 as clear when emulating a PCE CD game.
|
|||
|
|
|||
|
PCE: ADPCM RAM is now reset(to 0) on emulated PCE reset.
|
|||
|
|
|||
|
PCE: Sprites trying to pull tile data from $8000-FFFF of VRAM will now be invisible(probably not correct, but trying to emulate indeterminate
|
|||
|
effects is too difficult :b). Fixes a minor sprite garbage issue in Camp California.
|
|||
|
|
|||
|
PCE, PC-FX: Fixed VRAM DMA source/dest increment/decrement bits(the source and dest were flipped). Fixes a problem with Fushigi no Yume no Alice.
|
|||
|
|
|||
|
Moved some code in the source root directory to appropriate subdirectories.
|
|||
|
|
|||
|
Added setting <system>.debugger.disfontsize, valid settings being "xsmall", "small"(default), "medium", and "large", to control the font
|
|||
|
size used to draw the disassembly text. Note that there may be overlap with other parts of the debugger at font sizes larger than the default.
|
|||
|
|
|||
|
Refactored a few address space and register group debugger support functions out of individual system code.
|
|||
|
|
|||
|
Fixed various low-impact memory leaks.
|
|||
|
|
|||
|
The version of Mednafen last run is now stored in the configuration file as a comment(this will be necessary for changes in 0.8.5 or later
|
|||
|
that will involve proper escaping/unescaping and quoting of strings, to prevent problems with extra whitespace added by manually editing
|
|||
|
the configuration file).
|
|||
|
|
|||
|
Fixed state rewinding on big-endian machines, and removed some unnecessary operations from the state rewinding code path.
|
|||
|
|
|||
|
Mednafen will now refuse to try to load ROM images larger than 64MiB, as a sanity check.
|
|||
|
|
|||
|
mmap() and madvise() will now be used to load ROM images, assuming they're available(UN*X only, generally).
|
|||
|
|
|||
|
Errors during automatic IPS patching are now fatal.
|
|||
|
|
|||
|
Sped up loading gzip'ed ROM images.
|
|||
|
|
|||
|
Removed a global variable from the NES emulation code that had invaded state.cpp. Though, this makes the error message when trying to use
|
|||
|
save states with authentic Game Genie emulation very unhelpful...
|
|||
|
|
|||
|
GBA: Added support for loading a real GBA BIOS ROM image, using the setting "gba.bios".
|
|||
|
|
|||
|
GBA: Added the ability to specify the backup memory type for games by creating a file with the same name as the ROM image,
|
|||
|
with the extension replaced with "type", in the "sav" directory under the Mednafen base directory.
|
|||
|
Example: SexyPlumbers.gba -> SexyPlumbers.type
|
|||
|
|
|||
|
One or more of the following strings(on separate lines) may appear in the file:
|
|||
|
sram
|
|||
|
flash
|
|||
|
eeprom
|
|||
|
sensor
|
|||
|
|
|||
|
Additionally, the flash size can be specified by specifying the size(real size, or divided by 1024) after the type, like "flash 128" or
|
|||
|
"flash 131072".
|
|||
|
|
|||
|
PCE: Improved noise LFSR and volume emulation, thanks to cgfm2 for the detailed information.
|
|||
|
|
|||
|
0.8.4-rc2:
|
|||
|
|
|||
|
Added meaningful descriptions to the command.* settings.
|
|||
|
|
|||
|
PC-FX: Added an experimental feature to use mmap() to create a virtual 32-bit address space to speed up V810 instruction reads.
|
|||
|
Enable by setting "pcfx.use_mmap" to 1. Of course, it won't work on 32-bit CPUs! Please read the documentation, there are caveats!
|
|||
|
|
|||
|
PC-FX: Removed some redundant logic in the KING BG 8x1 drawing functions.
|
|||
|
|
|||
|
PC-FX: FX VCE and VDC port access are now emulated as 16-bit, as in the real PC-FX, instead of 8-bit.
|
|||
|
|
|||
|
PC-FX: Altered the debugger's memory peek and disassembly functions to not read the emulated memory map in the 0x80000000-0xEFFFFFFF region.
|
|||
|
(Reading those addresses can cause side effects, and this is a temporary workaround)
|
|||
|
|
|||
|
PC-FX: Changed the V810 memory read handlers to read RAM faster than BIOS ROM. This will probably increase host CPU usage while in the BIOS
|
|||
|
loading screen, but decrease it in the actual game.
|
|||
|
|
|||
|
PC-FX: Altered the V810 opcode fetch logic to do 16-bit reads instead of 32-bit, fixing potential crash issues
|
|||
|
when Mednafen is run on CPUs that don't support unaligned memory accesses.
|
|||
|
|
|||
|
PC-FX: Factored-out a few address masks in the memory read and write handlers.
|
|||
|
|
|||
|
PC-FX: Replaced most of the V810 signed-variable bit-size converting code that uses conditional branches to code that uses 2 shifts,
|
|||
|
taking advantage of modern 2's-complement CPU's arithmetic right-shift capabilities. It reduces generated machine code size slightly,
|
|||
|
and should provide a slight speed boost as well.
|
|||
|
|
|||
|
PC-FX: Optimized V810 address mode decoding by removing an unnecessary conditional jump.
|
|||
|
|
|||
|
Added an important warning to the documentation regarding Mednafen's ripped CD image support:
|
|||
|
|
|||
|
Mednafen does *not* correct bit errors in the user data of "raw" data track rips. It is strongly recommended to use
|
|||
|
"cooked" data track rips(2048 bytes/sector for mode 1, not counting any subchannel data) with Mednafen.
|
|||
|
|
|||
|
PC-FX: Improved exception handling, and added untested emulation of the TRAP instruction.
|
|||
|
|
|||
|
Debugger: Rewrote the memory load and dump functions to be faster, and also to fix a bug in the load function that would
|
|||
|
trash memory if the user tried to load more data than the specified file contained.
|
|||
|
|
|||
|
Debugger: Using the Goto function will no longer cause memory edit mode to be exited.
|
|||
|
|
|||
|
Debugger: Fixed a bug that occurred when entering a prompt(goto, change charset, etc.) while in editing mode, that caused
|
|||
|
keyboard focus to be misdirected.
|
|||
|
|
|||
|
SexyAL: The ALSA driver will try to set smaller period sizes when lower playback rates are used.
|
|||
|
|
|||
|
GBA: Changed the heuristics used to detect SRAM/Flash usage, though they're still not perfect...if a game tries to use flash
|
|||
|
memory improperly, it could be detected as using SRAM instead, or silently corrupt parts of flash memory...
|
|||
|
|
|||
|
GB: Fixed sound register initialization on reset, fixes missing sound in A Boy and His Blob
|
|||
|
|
|||
|
GB: Slightly increased the contrast of GBC colors.
|
|||
|
|
|||
|
GB: Reworked blitting of mono GB colors for future features.
|
|||
|
|
|||
|
GB: Removed a redeclaration of a variable in the same scope in a function in gfx.cpp.
|
|||
|
|
|||
|
Debugger: Fixed PCE VRAM breakpoints to work with block memory transfer instructions.
|
|||
|
|
|||
|
Debugger: Fixed parsing of single-address breakpoints after range breakpoints.
|
|||
|
|
|||
|
Mednafen will now print out SDL version information when it starts.
|
|||
|
|
|||
|
(The Win32 build will now be distributed with SDL 1.2.12)
|
|||
|
|
|||
|
Debugger: Fixed -/+ opacity adjustment to not be done when entering text(such as in a dialog).
|
|||
|
|
|||
|
Debugger: Fixed null termination of the ASCII string buffer displayed in the memory watch section.
|
|||
|
|
|||
|
PCE, PC-FX: Fixed the frequency of the highest-frequency noise generation register setting, hopefully!
|
|||
|
|
|||
|
PCE, PC-FX: Changed the LFSR to 16-bit, and to use a maximized tap configuration, to make the noise sound a bit closer to a real
|
|||
|
PC Engine's(at least, in my opinion! It still sounds slightly more bassy than a real PC Engine, but that might be due to filters
|
|||
|
on the PC Engine's sound output...).
|
|||
|
|
|||
|
Non-power-of-2-sized-textures will not be used when a pixel shader is selected and enabled, to prevent a severe graphical corruption
|
|||
|
regression introduced in 0.8.3-beta. I'm not sure if it's a problem with Mednafen's pixel shaders or the graphics card...
|
|||
|
|
|||
|
SMS: Fixed soft reset.
|
|||
|
|
|||
|
SexyAL: Removed smallc.c, and modified the OSS driver to use snprintf() instead of the single function smallc.c provided.
|
|||
|
|
|||
|
SexyAL: "sexyal.h" is now included before all other header files.
|
|||
|
|
|||
|
SexyAL: Revamped parts of the ALSA driver to fix reported lockup issues under certain conditions.
|
|||
|
|
|||
|
0.8.4-rc1:
|
|||
|
|
|||
|
Added preliminary support for inputting text directly into the selected address space in the debugger's memory editor.
|
|||
|
|
|||
|
Moved the temporal video blurring code in mednafen.cpp to vblur.cpp
|
|||
|
|
|||
|
Added settings "filesys.snap_samedir", "filesys.sav_samedir", "filesys.state_samedir", and "filesys.movie_samedir", default 0, that when
|
|||
|
set to 1, will read/write the respective files from/to the same directory the game was loaded from. If you want
|
|||
|
to use these, PLEASE read the documentation first, there are caveats!
|
|||
|
|
|||
|
PCE CD, PC-FX: Added support for MS WAV file offsets and lengths in TOC files.
|
|||
|
|
|||
|
PCE CD, PC-FX: Fixed a bug that caused CD-DA playback to be off by one sector(the first sector specified was being skipped).
|
|||
|
|
|||
|
Began work to allow settings to be temporarily overridden during netplay and movie playback.
|
|||
|
|
|||
|
PCE, PC-FX: Added settings "pce.disable_softreset" and "pcfx.disable_softreset", default 0, which when set to 1 will disable
|
|||
|
simultaneous pressing of RUN and SEL. The current implementation kind of abuses the driver-side code that disallows opposing diagonal buttons
|
|||
|
being pressed at the same time, so if we ever change that (undocumented) feature to go with the last-pressed direction rather than
|
|||
|
clearing both, the description of these settings in the documentation will need to be updated.
|
|||
|
|
|||
|
PCE CD, PC-FX: Read operations and CD-DA playback will now be stopped when the RST signal is asserted(fixes soft reset issues on PCE CD
|
|||
|
games).
|
|||
|
|
|||
|
0.8.3-beta:
|
|||
|
|
|||
|
Fixed an OpenGL function typedef in drivers/opengl.h.
|
|||
|
|
|||
|
PC-FX: Writes and reads to the KING and FXVCE chips "mapped" in parts of 0xA0000000 through 0xBFFFFFFF will now go through the respective
|
|||
|
data port write handlers, instead of directly to KRAM or palette RAM.
|
|||
|
|
|||
|
If non-power-of-2-sized OpenGL textures are not available, and bilinear interpolation or a pixel shader is enabled, and the emulated
|
|||
|
system resolution changes(such as on the PCE), two lines of black pixels will be written to the texture buffer to prevent the display
|
|||
|
of multi-colored garbage at borders, though the right+bottom borders will still be slightly darker than they should be...
|
|||
|
|
|||
|
PC-FX: Added support for VDC data port writes via writes to 0xB4000000-0xB7FFFFFF and 0xB8000000-0xBBFFFFFF in the V810's
|
|||
|
memory map. Fixes major graphical problems in "Super Power League FX".
|
|||
|
|
|||
|
Updated the srwcompressor description in mednafen.cfg.
|
|||
|
|
|||
|
PC-FX: KING BG1-3 scroll registers are now emulated as 10-bit instead of 11-bit(BG0's are still 11-bit), and BG1-3 virtual
|
|||
|
screen size is now limited to 512x512(BG0 is still 1024x1024), per the official developer documents.
|
|||
|
|
|||
|
Non-power-of-2-sized OpenGL textures will now be used if the "GL_ARB_texture_non_power_of_two" extension is detected.
|
|||
|
|
|||
|
Fixed a bug that sometimes would cause black screens when using the "sdl"(non-default) video driver(SDL surface per-pixel alpha blending
|
|||
|
was enabled when it shouldn't have been).
|
|||
|
|
|||
|
PCE: Fixed a line clearing bug when BG is disabled that was causing some minor graphical garbage on some games that
|
|||
|
use multiple horizontal resolutions per frame.
|
|||
|
|
|||
|
Changed some nonsensical #ifdef statements that were intended to always evaluate as false with "#if 0".
|
|||
|
|
|||
|
Renamed SYSTEM_CLOCK to System_Clock in scsicd.cpp to work around a potential macro conflict on OSX.
|
|||
|
|
|||
|
PC-FX: Added partial support for NEC's "scan" SCSI command, used in the BIOS' CD-DA player screen.
|
|||
|
|
|||
|
PC-FX, PCE CD: Revamped parts of the subchannel emulation code. The PC-FX BIOS CD player screen's time display works now. Also, an important
|
|||
|
note regarding cdrdao "TOC" files and "RW_RAW" subchannel data was added to the documentation.
|
|||
|
|
|||
|
PC-FX: Fixed a bug in the KING BG0 scrolling+rotation code for 16-color and 4-color backgrounds with BATs that was causing graphical
|
|||
|
corruption in the PC-FX BIOS CD player screen.
|
|||
|
|
|||
|
Fixed a compilation error when --disable-debugger was passed to the configure script.
|
|||
|
|
|||
|
0.8.2-beta:
|
|||
|
|
|||
|
Added blargg's experimental blz compressor, for use with state rewinding(change the setting "srwcompressor" to use it).
|
|||
|
(This was added a while back, after 0.8.1, but I forgot to document it)
|
|||
|
|
|||
|
SMS,GG: Added missing default key configurations.
|
|||
|
|
|||
|
PC-FX: Added untested emulation of scaling+rotation in 4-color KING BG mode.
|
|||
|
|
|||
|
PC-FX: Added emulation of scaling+rotation in 16-color KING BG mode. Fixes a problem with the background in the last stage of Zenki.
|
|||
|
|
|||
|
PCE: Added VRAM size constants to the beginning of vdc.cpp, and modified the code to use them, to allow a certain crazy person to compile
|
|||
|
a custom version of Mednafen which emulates extra VDC VRAM.
|
|||
|
|
|||
|
PCE: Removed 0xEB as SBC immediate in the disassembler(it was left over from the 6502 disassembler).
|
|||
|
|
|||
|
Changed setting type of setting "vdriver" to a string, with possible values "opengl" and "sdl"(and "0" and "1" for backwards compatibility,
|
|||
|
of course).
|
|||
|
|
|||
|
PCE: Set the default char set in the debugger's memory viewer to shift_jis.
|
|||
|
|
|||
|
PCE: Fixed a missing #include <iconv.h> in debug.cpp.
|
|||
|
|
|||
|
2007-6-17:
|
|||
|
|
|||
|
PC-FX: Improved VCE<->VDC<->KING scanline timing to fix a lockup issue in Anime Freak Vol 4(polling the FX VCE raster counter register
|
|||
|
vs VDC VBlank IRQs). Unforunately, this change has caused some 1-line graphical glitches in games that do "raster effects". This
|
|||
|
may be solved once/if V810 emulation has accurate cycle counts, which would require emulating instruction cache and prefetch logic. -_-;
|
|||
|
|
|||
|
Fixed branch traces display in the debugger, it was broken to only display half of them twice sometime since 0.8.1.
|
|||
|
|
|||
|
PC-FX: Optimized RAINBOW JPEG-like decoding by using a static implementation of bit fetching functions(instead of a class).
|
|||
|
|
|||
|
PC-FX: Added untested emulation of the CAXI V810 instruction.
|
|||
|
|
|||
|
PC-FX: The RAINBOW transfer block count register is now emulated as being 5-bits instead of 16-bits, fixes screen issues(blue blue!)
|
|||
|
after defeating the snake monster in Zenki.
|
|||
|
|
|||
|
PC-FX: If a KING BG is set to BAT+CG mode, but is missing a BAT fetch microprogram, it will now be drawn in CG mode(previously, the BAT
|
|||
|
data was simply being forced to 0, which was wrong). It's confirmed on a real system. Fixes missing graphics in "Tonari Princess no Rolfee".
|
|||
|
|
|||
|
PC-FX: Fixed transparency testing with 16M color KING backgrounds(only 1 Y component of every 2 pixels was being checked, now
|
|||
|
both are checked).
|
|||
|
|
|||
|
PC-FX: Implemented back cellophane support. Fixes fadeouts in "Lunatic Dawn", fadeins in "Team Innocent", and screen darkening issues
|
|||
|
during dialogue in "Last Imperial Prince"(and also exposes a bug that LIP probably has on a real system too, wherein CCR isn't reset
|
|||
|
to black after the dialogue is over, leaving the upper and lower parts of the screen outside the play area slightly dark greenish).
|
|||
|
The hindmost color when mixing the layers is now set to palette entry #0, except when all layers are disabled(set to black),
|
|||
|
or front cellophane(set to black) or back cellophane(set to value in CCR) is enabled.
|
|||
|
|
|||
|
PC-FX: Added emulation of the expansion backup RAM. While not particularly necessary since Mednafen already emulated backup memory
|
|||
|
separately for each game, it does give a few extra save slots to some games(such as Miraculum ^_^).
|
|||
|
|
|||
|
Added opacity control(-/+) to the debugger.
|
|||
|
|
|||
|
Added an always-on zero page view to the CPU debugger for NES and PC Engine.
|
|||
|
|
|||
|
Reduced the size of the game thread event queue to a somewhat saner size, and added extra buffering so that its mutex is only locked for
|
|||
|
a minimal amount of time to eliminate the chances of deadlock with this mutex.
|
|||
|
|
|||
|
GBA: Fixed a bug that caused only half of the legacy wave sound channel's sample data to be saved.
|
|||
|
|
|||
|
GB: Updated to Gb_Snd_Emu 0.1.5, fixes hanging note problems on some games, and cleaned up the sound save state code.
|
|||
|
|
|||
|
2007-5-30:
|
|||
|
|
|||
|
Added preliminary Sega Master System and Game Gear emulation based off of SMS Plus.
|
|||
|
|
|||
|
Factored the remaining state rewinding code out of the individual systems' code.
|
|||
|
|
|||
|
Fixed a minor visual bug when using state rewinding(also with save states, but it's not really visible) with the NTSC blitter.
|
|||
|
|
|||
|
Simplified how state rewind requests are passed to the emulation code, and fixed a small bug when using state rewinding with
|
|||
|
frame advance(now, a rewind will only occur if the state rewind button is held down while the frame advance button is pushed).
|
|||
|
|
|||
|
Changed a local variable name in selblur.cpp to fix compilation on OS/X(and maybe PPC in general?), thanks to Matt Beaumont
|
|||
|
for pointing out the conflict with a definition in altivec.h.
|
|||
|
|
|||
|
PCE: Fixed cycle counts for BRA and BSR(they were 1 too high).
|
|||
|
|
|||
|
PC-FX: Reads from I/O port 0xFC0 now return the current timer counter value.
|
|||
|
|
|||
|
Parameters to MDFNI_Emulate() and the internal system Emulate() functions are now passed through a structure, to allow
|
|||
|
for easier future expansion.
|
|||
|
|
|||
|
PCE, PC-FX: Fixed audio track reading from physical CDs on big-endian platforms.
|
|||
|
|
|||
|
NES: Fixed a bug that caused an emulator crash if Game Genie-style cheats were enabled at the same time as authentic Game Genie
|
|||
|
emulation was enabled.
|
|||
|
|
|||
|
Added setting "srwframes", which controls the number of save states to keep when state rewinding is enabled.
|
|||
|
|
|||
|
Debugger: Fixed a bug that caused a crash if a PC breakpoint was triggered while the debugger screen was disabled.
|
|||
|
|
|||
|
Added an experimental logging feature to the debugger, currently only used by the PC-FX emulation code, to log CD-ROM read commands
|
|||
|
and calls to the PC-FX BIOS' glyph bitmap address function, both of which should be quite helpful in translation work...
|
|||
|
|
|||
|
PCE, PC-FX: Moved the mouse sensitivity adjustments to the driver side to fix mouse emulation with network play and movies
|
|||
|
when using non-default pce.mouse_sensitivity/pcfx.mouse_sensitivity settings.
|
|||
|
|
|||
|
Added a few more entries to the in-emulator help screen.
|
|||
|
|
|||
|
PC-FX: Increased the keyport latch delay, and added emulation of the PC-FX mouse.
|
|||
|
|
|||
|
PC-FX: The keyport data ready flag is now reset only on low reads from the keyport data registers.
|
|||
|
|
|||
|
PCE: Fixed disassembly of the BSR instruction.
|
|||
|
|
|||
|
NGP: Fixed Z80 emulation cycle counts(they were far too low), and fixed emulation of the EI delay.
|
|||
|
|
|||
|
GB: Reworked various things, including Z80 interrupt and HALT emulation. GameBoy emulation will be a bit more CPU intensive now,
|
|||
|
and save states from older versions won't work with this version(sorry!). These changes could easily break some games, but...at least
|
|||
|
"A Boy and His Blob" works now!
|
|||
|
|
|||
|
GBA: Changed the file type detection code to reduce the chance of false positives.
|
|||
|
|
|||
|
PCE: Files with the extension "sgx" will now be treated as raw SuperGrafx ROM image files(AKA SuperGrafx emulation will be enabled).
|
|||
|
|
|||
|
NES: Refactored the file type detection code, so that emulation data structures and memory won't be initialized unless it's
|
|||
|
a recognized file type.
|
|||
|
|
|||
|
NES: NSF(but not NSFE) game/album name, artist, and copyright strings are now trimmed of leading and trailing whitespace.
|
|||
|
|
|||
|
Added MDFN_trim(), MDFN_rtrim(), and MDFN_ltrim() functions.
|
|||
|
|
|||
|
WonderSwan: Fixed a buffer overflow bug in the sprite drawing code.
|
|||
|
|
|||
|
GBA: Flash and SRAM save games are now stored gzip-compressed.
|
|||
|
|
|||
|
PCE: Fixed raw bytes display of relative branch instructions in the disassembler.
|
|||
|
|
|||
|
PC-FX: Added CD-ROM data tracks to the memory debugger/viewer, read-only, however.
|
|||
|
|
|||
|
The selected character set in the memory debugger/viewer will now be saved for that emulated system when exiting.
|
|||
|
|
|||
|
Fixed text search in the memory debugger/viewer(iconv() was being called before the variables passed to it were initialized, oopsie).
|
|||
|
|
|||
|
Simplified the scrolling code in the memory debugger/viewer, the line containing the cursor will now always be centered vertically
|
|||
|
on the screen.
|
|||
|
|
|||
|
PCE: Fixed an ambiguous if() statement in huc.cpp in the BRAM emulation code.
|
|||
|
|
|||
|
GB: Fixed a semi-ambiguous boolean math statement in the cpu emulation code.
|
|||
|
|
|||
|
Fixed an ambiguous else statement in the throttling code in drivers/main.cpp
|
|||
|
|
|||
|
NGP: Neo Geo Pocket emulation code is now compiled with -fno-strict-aliasing to work around issues in the TLCS-900h code.
|
|||
|
|
|||
|
GBA: Removed unused ELF code.
|
|||
|
|
|||
|
Fixed some implicit conversions of const char * to char *. (stupid putenv() prototype grumble mumble)
|
|||
|
|
|||
|
<stdlib.h> is now included in "mednafen.h", added notes to README about system header files automatically included,
|
|||
|
and removed inclusions of such header files in source code files that include mednafen.h(most do, and should). This change
|
|||
|
was brought about by gcc 4.3...it may not be the best way in regards to compile-performance wise, but it is more convenient
|
|||
|
and safer than #include'ing the system headers manually(and forgetting to >_>).
|
|||
|
|
|||
|
Modified instances of "Makefile.am" to stop including the top directory in the include search path, and removed the symlink of
|
|||
|
config.h to include/config.h, and fixed the references to "config.h" in intl/Makefile.in.
|
|||
|
|
|||
|
PCE: Made hes.cpp use MDFN_de32lsb() and MDFN_de16lsb() from endian.cpp.
|
|||
|
|
|||
|
PCE: Changed some instances of free() to MDFN_free().
|
|||
|
|
|||
|
GBA: Un-inlined the CPUWriteMemory() function.
|
|||
|
|
|||
|
GBA: Rewrote parts of the save-game(flash, eeprom, sram) code to make more sense! EEPROM data is now stored with a file extension "eep".
|
|||
|
|
|||
|
|
|||
|
0.8.1:
|
|||
|
|
|||
|
PC-FX: Added more registers/SetRegister() support to the debugger.
|
|||
|
|
|||
|
Trying to edit a register in a debugger register groups with a NULL SetRegister method will no longer crash Mednafen.
|
|||
|
|
|||
|
NES: Fixed a misnamed save state variable in the FME-7 code.
|
|||
|
|
|||
|
Mednafen will now be compiled with "-fno-strict-overflow" if the C compiler supports that option, for the upcoming gcc 4.2 release,
|
|||
|
as I'm not sure this optimization is safe with Mednafen's code(it may be, but better safe than somewhat sorry!).
|
|||
|
|
|||
|
PCE CD, PC-FX: Added partial support for cdrdao "TOC" files, including support for rips with subchannel data, but it must be in the "RW_RAW"
|
|||
|
format. Ripped CD+G CDs can be played back this way in the PCE CD and PC-FX BIOS CD players.
|
|||
|
|
|||
|
0.8.0-beta:
|
|||
|
|
|||
|
PC-FX: Improved VDC chain/256-color mode emulation.
|
|||
|
|
|||
|
PC-FX: Altered FXVCE->VDC vsync emulation.
|
|||
|
|
|||
|
PC-FX: Revamped RAINBOW code, adding support for JPEG-like encoded content, thanks to David Michel's help.
|
|||
|
|
|||
|
WonderSwan: Fixed a bug in the debugger(HAH) regarding the display of HBTimerPeriod and VBTimerPeriod(they were erroneously listed as 1-byte
|
|||
|
variables, when they should've been listed as 2-byte variables, which caused the values to wrap around to the other side of the screen if they
|
|||
|
were >= 0x100).
|
|||
|
|
|||
|
GBA: Structurized free-floating various variables...there shouldn't be any regressions, aside from save state incompatibility, unless
|
|||
|
typos were made(if so, please tell me!).
|
|||
|
|
|||
|
PC-FX: Added support for scrolling/rotation in 64K color mode.
|
|||
|
|
|||
|
PC-FX: The KING data structure(including KRAM) is now dynamically allocated.
|
|||
|
|
|||
|
GB, GBA: The memory for the color map/filter is now dynamically allocated.
|
|||
|
|
|||
|
PC-FX: Changed the size of the emulated X tile coordinate register when drawing KING BG, affecting in-range calculation when in
|
|||
|
non-endless scroll mode. Fixes missing eyes and mouths and other craziness in cutscenes in Chip Chan Kick.
|
|||
|
|
|||
|
PC-FX: Fixed playback of the last 4 samples of an ADPCM playback sequence, fixes crazy volume problems in "Team Innocent".
|
|||
|
|
|||
|
PCE: VDC chip data structures(including emulated VRAM) are now dynamically allocated.
|
|||
|
|
|||
|
NES: FDS and several mappers' larger data structures are now dynamically allocated.
|
|||
|
|
|||
|
NES: NSF write handler info structure is now dynamically allocated, which should reduce memory usage by 1 or 2 MiB(depending on the platform)
|
|||
|
on other games/files.
|
|||
|
|
|||
|
PCE: CDROM-related memory is now dynamically allocated, which should reduce Mednafen's memory usage for non PCE-CD games
|
|||
|
by at least 2.25MiB.
|
|||
|
|
|||
|
PCE: Added untested support for the Tsushin Booster's expansion RAM
|
|||
|
|
|||
|
Replaced the hard-coded file extension tests when loading from a ZIP archive in MDFN_fopen() with code that tests extensions passed as
|
|||
|
a double-NULL-terminated(each entry is single-NULL-terminated) string to MDFN_fopen().
|
|||
|
|
|||
|
Added QuickLZ to the codebase, and added the setting "srwcompressor" to specify which compressor to use for staterewinding,
|
|||
|
"minilzo" or "quicklz", with "minilzo" as the default. QuickLZ can be considerably faster at compression than MiniLZO, though QuickLZ is written
|
|||
|
with x86 and x86_64 CPUs in mind, and performance will likely suffer on other platforms, and its compression ratio isn't as good
|
|||
|
as MiniLZO(which itself isn't that great!).
|
|||
|
|
|||
|
PCE: Added the settings "pce.adpcmvolume", "pce.cddavolume", and "pce.cdpsgvolume", for people who like music more than sound effects, or
|
|||
|
vice-versa for some weirdos! ;)
|
|||
|
|
|||
|
PCE: Burst mode will now be tested for when the VDC would enter the active display area.
|
|||
|
|
|||
|
PCE: Altered the relative volume of CDDA vs PSG vs ADPCM with CDROM games, based on tests done on a real system.
|
|||
|
|
|||
|
PCE: ADPCM no longer uses saturated addition for the current output value, instead just wrapping(like apparently occurs on a real system).
|
|||
|
|
|||
|
PCE: Scrapped the old SCSI CDROM code, it now uses code that was previously PC-FX only(and was abstracted to be used for both).
|
|||
|
The Game Express CDROM card image now works, including Game Express CD games(at least Hi-Leg Fantasy ;)). John Madden Duo CD Football
|
|||
|
works. Steam Hearts plays stage music now. 3x3 Eyes doesn't seem to have desynchronized audio anymore during cutscenes...
|
|||
|
|
|||
|
Updated libmpcdec to 1.2.5(I think it was 1.2.2 previously...).
|
|||
|
|
|||
|
PC-FX: Added VRAM and FXVCE palette RAM to the debugger's memory editor.
|
|||
|
|
|||
|
PCE,PC-FX: Fixed CUE+BIN pregap handling, it was totally borked before.
|
|||
|
|
|||
|
PC-FX: Improved byte writes to KING I/O ports, fixes graphics problems in First Kiss Monogatari and Pia Carrot He Youkoso
|
|||
|
|
|||
|
PC-FX: Changed how reads/writes from/to KING registers 0x09 and 0x0A are handled.
|
|||
|
|
|||
|
PC-FX: All writes to 0x80000000-0x80000FFF are now translated to I/O port writes.
|
|||
|
|
|||
|
PC-FX: Reads from "unmapped" areas in the V810's memory address space will now return 0xFF(or 0xFFFF, or 0xFFFFFFFF).
|
|||
|
This fixes a lockup that could occur
|
|||
|
in Power Dolls FX...the game seems to be trying to use 4MiB of RAM when there's only 2MiB of RAM in a PC-FX!
|
|||
|
Also, while this is probably the correct value to return for unmapped areas < 16MiB, it's not correct for at least some higher addresses...
|
|||
|
more tests are called for, but we can't just dump the entire 4GiB address space...can we?
|
|||
|
|
|||
|
PC-FX: D4 of reads from KING register 0x05 will now be set if a SCSI CD interrupt is pending.
|
|||
|
|
|||
|
PC-FX: Fixed READ TOC SCSI command emulation. The starting track field is no longer treated as BCD. Silly me... Fixes
|
|||
|
"Power Dolls FX" ADPCM sounds, and probably other games that have data tracks numbered 10 or above...
|
|||
|
|
|||
|
PC-FX: D0 of reads from the KING DMA status registers is now the only bit returned.
|
|||
|
|
|||
|
PC-FX: D0 of writes to the KING SCSI DMA length register is now ignored.
|
|||
|
|
|||
|
PC-FX: Started work on initial support for for KING's 1M KRAM chip mode...I need to run tests!
|
|||
|
|
|||
|
PC-FX: Reads from KING register/port 0x05 will now return the ATN and ACK SCSI status bits.
|
|||
|
|
|||
|
PC-FX: Reads from KING register/port 0x04 will now return the SCSI status bits.
|
|||
|
|
|||
|
PC-FX: Changed reads to KING registers/ports 0x01, 0x02, and 0x03 to return the last values written to those registers, rather
|
|||
|
than setting the bits returned corresponding to the current SCSI status bits.
|
|||
|
|
|||
|
PC-FX: Improved keyport emulation, fixes Can Can Bunny Extra DX title-screen "lockup".
|
|||
|
|
|||
|
PC-FX: Added support for negative KRAM increment values on read/write(king register 0xE).
|
|||
|
|
|||
|
PC-FX: Fixed the SCSI bits returned on port $600 reads: D17 now returns SEL status, and D23 now returns RST status(instead of ATN).
|
|||
|
|
|||
|
PCE: Block memory transfer instructions are now emulated at 6 cycles per byte transfered(+extra if VDC is accessed) instead of 5, to
|
|||
|
match tests done by malducci. This does break Wonder Momo, unfortunately...
|
|||
|
|
|||
|
Moved the Q-subchannel simulation code to the general CD-ROM reading interfaces, and made PC Engine CD and PC-FX CD emulation both use it.
|
|||
|
Also, the code will now set the index data field to index 0 for pregap areas, but...this is only possible when using disc images, due
|
|||
|
to libcdio(or CD-ROM in general) limitations. :(
|
|||
|
Ideally, on a physical disc, we would read the Q subchannel data directly, but...I'm not sure that all drives can read and return this
|
|||
|
data, and using libcdio's direct MMC functions results in much much more latency(probably because it bypasses the OS's caching
|
|||
|
of CDROM data), which would require an extra CDROM reader thread, which does its own caching and prefetch, in Mednafen. Maybe later!
|
|||
|
|
|||
|
PC-FX: Fixed cmpf.s emulation, fixes lockups in "Pachio Kun FX".
|
|||
|
|
|||
|
PC-FX: Added a tidy structure to contain SCSI command numbers, CDB lengths, and function pointers.
|
|||
|
|
|||
|
PC-FX: Added support for SCSI command 0x08(READ6), which "Mahjong Gokuu Tenjiku" uses.
|
|||
|
|
|||
|
PC-FX: Removed most of the 32-bit I/O and memory read/write functions, which are now handled by calling the 16-bit functions twice.
|
|||
|
|
|||
|
PC-FX: Modified the KING background rendering code to only draw to one buffer, instead of multiple buffers that are later mixed,
|
|||
|
to improve speed slightly.
|
|||
|
|
|||
|
PC-FX: The raster counter returned on reads from FX-VCE now returns correct(I hope...at least according to a simple test I did on a real PC-FX!)
|
|||
|
values in vblank.
|
|||
|
|
|||
|
PC-FX: SCDI CD interrupts on end of CD-DA track playback are now emulated.
|
|||
|
|
|||
|
PC-FX: SCSI CD "Test unit ready" command now expects to receive 6 data bytes total(1+5) instead of 1.
|
|||
|
I'm not sure if this is correct with the PC-FX, but it matches the SCSI specs, so I'll keep it this way until shown otherwise.
|
|||
|
|
|||
|
PC-FX: A17 of the effective KING BG CG and BAT addresses are now fixed to the CG and BAT offset settings, respectively, during rendering.
|
|||
|
|
|||
|
PC-FX: Added support for non-endless-scroll in BG0 rotation mode. Fixes the title screen flipping effect for
|
|||
|
Last Imperial Prince.
|
|||
|
|
|||
|
PC-FX: When a VDC layer has the same VCE priority as a KING BG layer, the VDC layer will now be shown on top. I don't know if this is correct...
|
|||
|
but it does fix a problem with disappearing sprites when leaving the airship in Miraculum.
|
|||
|
|
|||
|
PC-FX: Added KING BG0 scaling/rotation support, but only for 8bpp backgrounds(direct or indirect) in endless scroll mode for now...
|
|||
|
Fixes graphics in Miraculum(yay!) and Konpeki no Kantai.
|
|||
|
|
|||
|
PC-FX: Fixed direct CG mode width mask, corrects graphics bugs in "Boundary Gate" and others.
|
|||
|
|
|||
|
PC-FX: Added partial microprogram emulation, fixes junk graphics in Megami Paradise II.
|
|||
|
|
|||
|
PC-FX: Combined the different KING background non-endless/endless and direct/indirect rendering codepaths. This will make it
|
|||
|
a bit slower, but much more maintainable and...changeable!
|
|||
|
|
|||
|
SexyAL: Added support for sound cards that don't support interleaved stereo samples...probably.
|
|||
|
|
|||
|
Changed the font glyph cache to use an array of pointers instead of 2-dimensional array. This reduces resident memory
|
|||
|
usage considerably, even on systems with 64-bit pointers.
|
|||
|
|
|||
|
Readded the old 6x13 and 12x13 fonts for future usage in the debugger.
|
|||
|
|
|||
|
Fixed the documentation to list the controls for configuring virtual devices as ALT+SHIFT+1, ALT+SHIFT+2, etc. instead of ALT+1.
|
|||
|
Oops.
|
|||
|
|
|||
|
PC-FX: Made fairly invasive minor optimizations/refactoring to the cellophane code...
|
|||
|
I *have* tested it, and hopefully it won't break anything that worked before!
|
|||
|
|
|||
|
PC-FX: Fixed a clipping bug in KING BG non-endless scrolling mode in regards to X scroll wrapping. Fixes the disappearing boss problem in
|
|||
|
Stage 2 of Tyoushin Heiki Zeroigar!
|
|||
|
|
|||
|
PCE: The soft reset function(F10 key by default) no longer soft-resets the PCE, as such a button doesn't exist on a real unit, and
|
|||
|
could cause problems with some games, so it causes a hard reset(the same as the F11 key) now.
|
|||
|
|
|||
|
PCE: Added PSG registers to the debugger.
|
|||
|
|
|||
|
Enclosed many strings in _() or gettext_noop() for translation purposes.
|
|||
|
|
|||
|
Altered po/Makefile.in.in to pass "-N" to msgmerge, to disable fuzzy string matching. Fuzzy strings are braindead I say!
|
|||
|
|
|||
|
Reworked MDFN_malloc(), it now takes a purpose, and on error, will print out the number of bytes attempted to be allocated,
|
|||
|
the purpose of the allocation, and the file and line number in which the allocation was attempted(through macro magic!).
|
|||
|
|
|||
|
PC-FX: Changed the 7.16MHz dot-clock emulation mode to use an internal layer 1024-pixels wide(the least-common multiple of the
|
|||
|
2 different screen resolutions that are mixed by the video chip), rather than having 2 different
|
|||
|
layers that are merged by the video code(which causes problems on edges). This new method is much slower, unfortunately...
|
|||
|
The overlay code that supported this in the driver code and the interfaces have also been removed, as it is not used, and will not be used.
|
|||
|
ADDITIONALLY, a setting "pcfx.high_dotclock_width" has been added. The default is, of course, 1024, but other accepted values
|
|||
|
are 341 and 256, though I REALLY don't recommend using 256, as it will cause dropped pixels, whereas 341 will only cause somewhat
|
|||
|
distorted pixels horizontally. The advantage of using 341 over the default of 1024 is SPEED, and bilinear interpolation(if enabled) will
|
|||
|
work much better as well.
|
|||
|
|
|||
|
PC-FX: Fixed major problems when using more than one breakpoint of a type(read, write, etc.); it also occurred with the PCE debugger,
|
|||
|
but only with Aux breakpoints.
|
|||
|
|
|||
|
PC-FX: Fixed the VDC state restore code to properly recache all the tiles, instead of half of them!
|
|||
|
|
|||
|
GB, GBA: Fixed a few duplicate and misnamed variables in the save state structures.
|
|||
|
|
|||
|
PCE, PC-FX: Fixed a misnamed variable in the VDC save state structures.
|
|||
|
|
|||
|
Lynx: Removed a duplicate variable in the CPU save state structure.
|
|||
|
|
|||
|
PC-FX: Save states are now named so that they can be shared among CDs in recognized multi-disc sets(previously only .sav games were).
|
|||
|
This is intended to emulate "hot-swapping" as far as the game is concerned(though you will need to exit the emulator and load the second
|
|||
|
disc, so it isn't truly hot-swap ;)).
|
|||
|
When a game requests you to change the disc, the procedure is:
|
|||
|
Eject virtual disc(F8 key).
|
|||
|
Save state.
|
|||
|
Exit emulator.
|
|||
|
Load emulator with second CD.
|
|||
|
Load state.
|
|||
|
Wait for the game to load it. :b
|
|||
|
|
|||
|
PC-FX: Implemented virtual CD insert/eject, via the F8 key.
|
|||
|
|
|||
|
PC-FX: Added dummy handling of SCSI command 0x01(rezero unit), Doukyusei II no longer aborts the emulator.
|
|||
|
|
|||
|
PC-FX: Fixed bitstring instructions to fetch from the proper source address, fixes major graphics corruption bugs in "Anime Freak FX Vol. 4"
|
|||
|
and probably some other games as well.
|
|||
|
|
|||
|
PC-FX: Fixed RAINBOW decoding to not begin block decoding until a 0xFF is discovered in the bytestream. Fixes some graphical problems
|
|||
|
in "Ojousama Sousama".
|
|||
|
|
|||
|
PC-FX: Fixed the CD-DA playback speed calculation to match with tests I performed on my own PC-FX with a pure sine wave(interestingly,
|
|||
|
there was some really weird frequency aliasing at +10% playback speed on a real PC-FX...).
|
|||
|
|
|||
|
WonderSwan: Refactored the SRAM and external EEPROM code, and added support for larger SRAM sizes(Dicing Knight works now!).
|
|||
|
|
|||
|
PCE: Extended the Sherlock Holmes 1 hack to Sherlock Holmes 2 as well.
|
|||
|
|
|||
|
The address displayed in the "Cursor position" field in the memory viewer/debugger is now masked properly.
|
|||
|
|
|||
|
PC-FX: Fixed the ADPCM lowpass filter rolloff frequency calculation(forgot to divide by 2!).
|
|||
|
|
|||
|
PC-FX: Changed priority handling of KING background for priorities 5-7, though I don't know if the new way is correct... fixes
|
|||
|
a graphical bug in "Power Dolls FX".
|
|||
|
|
|||
|
PC-FX: The ADPCM volume control registers are now emulated as logarithmic, instead of linear.
|
|||
|
|
|||
|
PC-FX: Modified 256-color VDC sprite and bg palette index calculation, to fix color problems in the 3/4 view of Ojousama Sousamou.
|
|||
|
|
|||
|
PC-FX: Altered ADPCM address emulation so that the "active" play address is 17 bits instead of 18 bits, fixes problems in several
|
|||
|
games(Anime Freak FX Vol. 1, Tenchi Muyo! FX), hopefully it doesn't cause any new ones. ;)
|
|||
|
|
|||
|
PC-FX: Added support for KING bitstring writes and reads, and changed maximum BGn screen dimension setting from 0x9 to 0xA. "Boundary Gate" works
|
|||
|
much much better now due to these changes.
|
|||
|
|
|||
|
|
|||
|
NES:
|
|||
|
NULL-terminated the debugger's list of MMC1 registers, which was apparently forgotten earlier. Oops.
|
|||
|
|
|||
|
Added MMC3 registers to the debugger.
|
|||
|
|
|||
|
Added the current scanline(read-only) to the debugger's list of registers.
|
|||
|
|
|||
|
0.7.2:
|
|||
|
|
|||
|
NES: Added MMC1 registers to the NES debugger.
|
|||
|
|
|||
|
Various cleanups(removing dead code and header declarations).
|
|||
|
|
|||
|
Added settings "vblur.accum", enables motion blur accumulation mode, and "vblur.accum.amount".
|
|||
|
|
|||
|
Added setting "vblur", when enabled, will (motion) blur adjacent video frames 50/50.
|
|||
|
|
|||
|
Added WonderSwan emulation, based on Cygne, but greatly improved, and with a debugger.
|
|||
|
|
|||
|
Modified the time base adjustment code used when sound is disabled to fix fast-forwarding when sound is disabled.
|
|||
|
|
|||
|
"Fixed" a few instances of mostly harmless variable shadowing.
|
|||
|
|
|||
|
Mednafen is now compiled with -Wshadow.
|
|||
|
|
|||
|
Modified the save state preview rescaling code to properly(with interpolation instead of nearest-neighbor) rescale PCE games that use the
|
|||
|
512pixel-width mode, or in other words... the rescaling code will now work where (fb_width / state_preview_width) <= 2 whereas previously
|
|||
|
it only worked properly where (fb_width / state_preview_width) < 2.
|
|||
|
|
|||
|
Errors saving save states are now propagated and reported.
|
|||
|
|
|||
|
NGP: Files with an extension of "npc" are now also treated as Neo Geo Pocket ROM images.
|
|||
|
|
|||
|
PC-FX: Added setting "pcfx.nospritelimit".
|
|||
|
|
|||
|
Removed the memory dump and graphics memory dump functionality from the main debugger. The new memory editor provides the same
|
|||
|
or higher level of functionality.
|
|||
|
|
|||
|
Added a new memory editor to the debugger interface, accessible by pressing ALT + 3 in the debugger.
|
|||
|
|
|||
|
PCE: Added support for reduced-bit-depth background mode.
|
|||
|
|
|||
|
If the ALSA driver code is unable to set stereo or mono sound, it will try mono or stereo sound instead, respectively.
|
|||
|
|
|||
|
PCE: PSG waveform RAM will now only be updated if the channel is turned off.
|
|||
|
|
|||
|
glFinish() will no longer be called every frame in the OpenGL code, which should improve performance(if it causes problems, like
|
|||
|
tearing where there wasn't any before or decreased performance, please file a bug report!).
|
|||
|
|
|||
|
If the "glvsync" setting is 1(the default), and the environment variable "__GL_SYNC_TO_VBLANK" is not set at all(either 0 or any value),
|
|||
|
then it will be set to "1". This has the effect of forcing vblank synchronization when running under Linux with
|
|||
|
NVidia's drivers.
|
|||
|
|
|||
|
Fixed configure script option "--disable-jack".
|
|||
|
|
|||
|
Lynx: Screen rotation now works in non-OpenGL mode(SDL+framebuffer), sans scanlines support.
|
|||
|
|
|||
|
Lynx: Screen rotation now also rotates input sanely, as it did in 0.6.x and earlier versions.
|
|||
|
|
|||
|
Fixed a fatal compilation error in the ALSA driver with ALSA versions < 1.0.9.
|
|||
|
|
|||
|
Fixed a fatal compilation error on GCC < 3.4 in the PC-FX code.
|
|||
|
|
|||
|
Added code to detect the maximum OpenGL texture size, and reworked the OSD code to use tiled drawing if a particular OSD surface is too
|
|||
|
large to fit in a single texture. This is particularly relevant to users of old Voodoo cards. Note that tiled drawing isn't supported for the
|
|||
|
main game framebuffer, so video cards with severe texture size limitations will still have problems with PC Engine and PC-FX games that use
|
|||
|
higher resolution modes.
|
|||
|
|
|||
|
The help screen, debugger, and cheat search interface now use their own surfaces instead of the generic OSD surface.
|
|||
|
|
|||
|
Fixed(hopefully) OSD-clearing in SDL blit mode("-vdriver 1").
|
|||
|
|
|||
|
Removed the option "doublebuf". It is kind of an archaic leftover from when Mednafen did only one blit
|
|||
|
per frame(and had the OSD written to the game's virtual framebuffer). Double buffering must always be enabled,
|
|||
|
or else screen corruption may occur. Also, as a note, double buffering does not imply synchronizing to vblank, though
|
|||
|
this does occur in some situations.
|
|||
|
***NOTE: Please check your scripts and frontends and remove any "-doublebuf" arguments! ***
|
|||
|
|
|||
|
0.7.1:
|
|||
|
Began work on an experimental stdio interface, see drivers/remote.cpp if you are a frontend author and can read C code, though
|
|||
|
it is disabled for now. :)
|
|||
|
Documentation for it will be written when it is closer to completion.
|
|||
|
|
|||
|
Switched to trio_snprintf() from snprintf() in the input configuration code, this should fix problems under Windows(and any
|
|||
|
other OS with a lame snprintf() implementation) with joystick button configurations not saving properly.
|
|||
|
|
|||
|
Fixed parsing of the "sounddevice" setting(it was erroneously being compared to the long,
|
|||
|
descriptive name of the driver instead of the short name).
|
|||
|
|
|||
|
PC-FX: More changes.
|
|||
|
|
|||
|
0.7.0: *** Network play with this release requires Mednafen Server >= 0.3.0 ***
|
|||
|
|
|||
|
PCE: Fixed a timer reload bug.
|
|||
|
|
|||
|
Added the following configure script options:
|
|||
|
--enable-debugger build with internal debugger [default=yes]
|
|||
|
--enable-cjk-fonts build with internal CJK(Chinese, Japanese, Korean)
|
|||
|
fonts [default=yes]
|
|||
|
--enable-gb build with GameBoy emulation [default=yes]
|
|||
|
--enable-gba build with GameBoy Advance emulation [default=yes]
|
|||
|
--enable-lynx build with Atari Lynx emulation [default=yes]
|
|||
|
--enable-nes build with Nintendo Entertainment System emulation
|
|||
|
[default=yes]
|
|||
|
--enable-ngp build with Neo Geo Pocket emulation [default=yes]
|
|||
|
--enable-pce build with PC Engine(TurboGrafx 16) emulation
|
|||
|
[default=yes]
|
|||
|
--enable-pcfx build with PC-FX emulation [default=yes]
|
|||
|
|
|||
|
Moved the save states display and info text message display to blit directly to the framebuffer, rather
|
|||
|
than to the general OSD layer(which is now only used for cheat console and debugger).
|
|||
|
|
|||
|
Reworked the network play console interface to be more...usable. It takes up much less space, is centered at the bottom of the screen,
|
|||
|
the "t" button now activates text input, pressing "Enter" exits netplay console mode, and it will automatically pop
|
|||
|
up(though without user input possible, unless you press "t" while it's up) for 2.5 seconds when a new message is received.
|
|||
|
|
|||
|
Added support for all possible input devices to be used with network play.
|
|||
|
|
|||
|
Command-line arguments can now be prefixed with either "-" or "--".
|
|||
|
|
|||
|
Fixed "--help/-help" parsing from command-line.
|
|||
|
|
|||
|
PC-FX: Increased emulation accuracy, most games still don't work correctly, if at all.
|
|||
|
|
|||
|
PCE: Fixed VRAM->VRAM DMA when destination writes occur outside of VRAM space(they're now ignored). Fixes "Ruin - Kami no Isan".
|
|||
|
|
|||
|
OpenGL page flips will now try(it doesn't seem to work with nvidia's binary driver under Linux, so use "nvidia-settings" utility instead)
|
|||
|
to be synchronized to vertical retrace/blanking period if Mednafen is compiled against SDL >= 1.2.10,
|
|||
|
controllable by the setting "glvsync", enabled by default.
|
|||
|
|
|||
|
The "sounddriver" setting is now honored. Values you can try are "default", "oss", "alsa", "dsound", and "jack".
|
|||
|
|
|||
|
Added support for JACK and ALSA sound output, ALSA sound output is now preferred over OSS.
|
|||
|
|
|||
|
Mednafen will now exit properly if it receives a not-fatal signal, such as SIGTERM or SIGINT.
|
|||
|
|
|||
|
NES: Fixed noise and DMC playback frequencies with PAL emulation. Thanks to blargg for the information.
|
|||
|
|
|||
|
Due to internal changes, and wanting to clean up code, save states created in versions older than 0.6.0 are no longer supported(if you have any
|
|||
|
old save states you absolutely must have, load them in 0.6.5 and save them, then load them in 0.7.0).
|
|||
|
|
|||
|
Added keys to increment(though a predefined list of possible devices) the currently selected device on an
|
|||
|
input port(CTRL+SHIFT+1 through CTRL+SHIFT+5); note that this WILL change the setting for this port saved in the configuration file.
|
|||
|
|
|||
|
PCE: Added mouse support(use "-pce.input1 mouse"). To use it properly in windowed mode, you will need to press the "Scroll Lock"
|
|||
|
key.
|
|||
|
|
|||
|
PCE: Added 6-button pad support. By default, the "M" key will switch between 2-button and 6-button modes(this is necessary
|
|||
|
because most non-supporting games will break horribly in 6-button mode, which happens on a real system as well).
|
|||
|
|
|||
|
Revamped much of the internal input device handling. Important user-visible changes:
|
|||
|
Button configuration order is slightly different, with the rapid-fire instances of buttons immediately coming
|
|||
|
after normal instances of the buttons.
|
|||
|
|
|||
|
More buttons can now be configured for rapid-fire.
|
|||
|
|
|||
|
A virtually unlimited number(instead of 4 in previous versions) of physical buttons may now be assigned to a
|
|||
|
virtual button or command.
|
|||
|
|
|||
|
Input button settings are now saved in the text-format mednafen.cfg file.
|
|||
|
|
|||
|
Famicom input devices that were previously not configurable, such as the Family Keyboard, now are; however,
|
|||
|
it would be unwieldy to configure the Family Keyboard using the in-emulator configuration process, so edit
|
|||
|
the configuration file instead.
|
|||
|
|
|||
|
The NES Zapper and other devices that are emulated using the mouse can now have their buttons configured.
|
|||
|
|
|||
|
The setting to manually set an input device on the Famicom expansion port has changed from "nes.fcexp" to
|
|||
|
"nes.input5".
|
|||
|
|
|||
|
Gameboy and Gameboy Advance pad button configurations are now independent of each other.
|
|||
|
|
|||
|
Save states and movies can't be accessed during HES/NSF/GSF playback anymore(does this hurt anyone?).
|
|||
|
|
|||
|
Button configuration hotkey functions are now mapped to ALT+SHIFT+1 through ALT+SHIFT+5(for input ports 1-5) instead of F3, F4, and various
|
|||
|
convoluted combinations of F3 and F4 with CTRL and SHIFT.
|
|||
|
|
|||
|
The NSF/HES/GSF player graphical code now all use the same resolution and video settings("player.*").
|
|||
|
|
|||
|
Replaced the internal fixed-width 6x13 and 12x13 fonts with 9x18 and 18x18 fonts, respectively, and increased the general OSD layer
|
|||
|
size to 384x336 from 256x224(which has a side effect of allowing more detailed save state previews for NES and PCE).
|
|||
|
The new fonts provide about 10,000 more glyphs(for a total of about 32,000 glyphs), mostly for east-Asian languages(I think this MIGHT be
|
|||
|
slightly overkill, but, eh...*flees*).
|
|||
|
|
|||
|
PCE: The timer counter was being updated one instruction too late. Fixed. (This problem probably didn't affect
|
|||
|
any games, but it could have resulted in confusion while using the debugger.)
|
|||
|
|
|||
|
Remapped the state rewind key to ALT+S, and added a new help screen triggered by pressing "F1".
|
|||
|
|
|||
|
PCE: The disassembler was missing opcode 0x3A, DEC. Fixed.
|
|||
|
|
|||
|
NES: A few sound variables weren't being saved in the VRC6 and FME7 sound code. Fixed.
|
|||
|
|
|||
|
PCE: Fixed disassembler decoding of ZP indirect addressing mode.
|
|||
|
|
|||
|
NES: Fixed unofficial opcode 0xE2 cycle timing.
|
|||
|
|
|||
|
0.6.5:
|
|||
|
|
|||
|
PCE: Made a small optimization to HuC6280 emulation by caching the CPU speed shift-left cycle count adjust value.
|
|||
|
|
|||
|
Removed an old kludge for Win32 that worked around an SDL problem in which the window position would be off-screen when
|
|||
|
switching from fullscreen to windowed mode, as I think the problem is fixed in SDL 1.2.10.
|
|||
|
|
|||
|
Reworked the signal handling code to be included if HAVE_SIGNAL is defined instead of if WIN32 is not defined, and added #ifdefs around
|
|||
|
each possible signal(as some platforms don't provide #define's for some signals).
|
|||
|
|
|||
|
PCE: Added setting "pce.cdspeed" to set a CD-ROM data transfer speed multiplier. PLEASE READ THE DOCUMENTATION FOR CAVEATS.
|
|||
|
|
|||
|
PCE: Fixed CD-DA and ADPCM fadeout speed when setting the "pce.ocmultiplier" setting to a value other than 1.
|
|||
|
|
|||
|
Cleaned up the multi-res blitting code in drivers/video.cpp to not cause crazy compiler warnings(and not be crazy in general!).
|
|||
|
|
|||
|
PCE: Fixed the ADPCM playback rate formula(the result was off by about 0.27%), thanks to Charles MacDonald for detailed information.
|
|||
|
|
|||
|
Began work on implementing several OpenGL pixel shaders, which will be finished in a later release.
|
|||
|
|
|||
|
Mednafen no longers directly links to the OpenGL library, instead it uses SDL's OpenGL library loading and function address functions.
|
|||
|
|
|||
|
Reverted back to pow() and cos() from powl() and cosl() in Blip_Buffer.cpp, due to some platforms not having long double types per se,
|
|||
|
and adjusted the code activated by setting "pce.adpcmlp" to call Blip_Synth::treble_eq() with a "treble" value of a lower magnitude, which
|
|||
|
might result in a slight difference in the ADPCM frequency spectrum produced when "pce.adpcmlp" is enabled.
|
|||
|
|
|||
|
Fixed "Value increased" cheat search method(it was acting the same as "Value decreased", oops -_-).
|
|||
|
|
|||
|
Changed the usage of fix-sized filename component arrays in general.cpp with string objects.
|
|||
|
|
|||
|
MDFN_printf() and MDFN_PrintError() now use trio_vaprintf() instead of trio_vsnprintf().
|
|||
|
|
|||
|
NES: Added setting "nes.n106bs", which when set, will enable less-accurate, but better sounding, Namco 106(mapper 19) sound emulation.
|
|||
|
|
|||
|
NES: Fixed save states for mapper 69 games(mirroring and prg bank setup wasn't being saved and restored).
|
|||
|
|
|||
|
NES: Added support for multiple expansion sound chips used simultaneously in NSFs, including limiting the address space they
|
|||
|
will respond to when multiple expansion sound chips are used(to prevent collisions between VRC6 and VRC7's address space, for example).
|
|||
|
|
|||
|
PCE: Fixed CD-DA playback speed when setting the "pce.ocmultiplier" setting to a value other than 1.
|
|||
|
|
|||
|
NGP: Changed the default full-screen video settings, so that the scaled image size is no longer larger than the
|
|||
|
display area(oops -_-).
|
|||
|
|
|||
|
NES: Added support for UNIF board "UNL-603-5052"(thanks to CaH4e3).
|
|||
|
|
|||
|
NES: Fixed mapper 115, "Thunderbolt 2" now works(thanks to CaH4e3).
|
|||
|
|
|||
|
NGP: Sound emulation now respects global sound volume setting "soundvol".
|
|||
|
|
|||
|
NGP: Added missing setting "ngp.forcemono".
|
|||
|
|
|||
|
PCE: Physical CDROM device names will now be printed on Mac OS/X on startup again. Physical CDROM access seems to work,
|
|||
|
but the DarwinPorts libcdio 0.75 package appears to be horribly broken, so please remove it and install
|
|||
|
libcdio 0.77(or higher) from its source code.
|
|||
|
|
|||
|
NGP: Fixed a few major problems with NGP emulation on big-endian platforms(such as PPC OS/X).
|
|||
|
|
|||
|
0.6.4:
|
|||
|
|
|||
|
Added somewhat experimental Neo Geo Pocket(Color) emulation based off code from NeoPop, heavily modified.
|
|||
|
|
|||
|
GB: Fixed frame rate when sound is disabled.
|
|||
|
|
|||
|
Added →, ←, ↑, and ↓ characters to the Lynx, GB, GBA, and PC Engine directional button names used for button configuration, to match the NES button
|
|||
|
names.
|
|||
|
|
|||
|
PCE: Added setting "pce.adpcmlp", default value 0, that when enabled, will cause Mednafen to apply a lowpass filter to ADPCM sound output
|
|||
|
with a rolloff frequency dependent on the current ADPCM playback frequency. This makes ADPCM voices sound less "harsh", however, the downside
|
|||
|
is that it will cause many ADPCM sound effects to sound a bit muffled.
|
|||
|
|
|||
|
PCE: Moved the OpenGL screen clearing code into the FlipOpenGL() function to fix a problem with some PCE games that use
|
|||
|
multiple resolutions per frame having a partially corrupted screen when the OSD was up.
|
|||
|
|
|||
|
PCE: Fixed save state loading with save states created during a CDROM data transfer.
|
|||
|
|
|||
|
Fixed a bug that was causing flickering OSD remnants to remain onscreen in fullscreen mode if the OSD was drawn outside of
|
|||
|
the game screen area.
|
|||
|
|
|||
|
Fixed a bug in the resizing code for save state previews that was causing save state previews for the NES, GB, GBA, and Lynx to look absolutely
|
|||
|
horrible.
|
|||
|
|
|||
|
Assigned the two keys "-"(not the numpad instance) and "=" to functions "decrement selected save state slot" and "increment selected
|
|||
|
save state slot", respectively.
|
|||
|
|
|||
|
Removed the checks preventing save state usage when playing NSFs, since save states may be useful with NSFs in some circumstances.
|
|||
|
|
|||
|
Added a new setting "ckdelay", which controls the length of time, in milliseconds, that a button/key corresponding to a
|
|||
|
"dangerous" command like power, reset, exit, load state, etc. must be pressed before the command is executed. The default value is 0.
|
|||
|
|
|||
|
Input mapping configuration is now saved after argument parsing if there is no game to be loaded, allowing a command like
|
|||
|
"mednafen -inputcfg pcegamepad1" to work properly.
|
|||
|
|
|||
|
The message "Configuration finished." will now be displayed when button mapping for the selected input device is complete when
|
|||
|
using the in-game configuration process.
|
|||
|
|
|||
|
PCE: Fixed a bug in the debugger involving disassembling block memory transfer instructions(effectively, the length was being
|
|||
|
fetched 1 byte too early).
|
|||
|
|
|||
|
0.6.3:
|
|||
|
|
|||
|
SexyAL: Fixed buffer write memcpy() optimization to also check to make sure the input and output byte orders are the same.
|
|||
|
|
|||
|
PCE: Added setting "pce.forcemono" to force monophonic sound output.
|
|||
|
|
|||
|
Added setting "analogthreshold", which is the threshold for detecting a "button" press on analog axis, in percent. The default
|
|||
|
value is 75(%).
|
|||
|
|
|||
|
Worked around a very odd "bug" in gcc that involved muddling of local-scope structure definitions among different object files(
|
|||
|
the structure previously named "BPOINT" in both NES and PCE emulation code), which led to breakpoints with NES emulation being
|
|||
|
totally fubared.
|
|||
|
|
|||
|
Added graphics memory dumping capabilities to the debugger.
|
|||
|
|
|||
|
PCE, NES: Save states and powers/resets in debugger step mode SHOULD work properly now.
|
|||
|
|
|||
|
Fixed a potential deadlock when exiting.
|
|||
|
|
|||
|
Various debugger fixes. I lost the ChangeLog, sorry. -_-
|
|||
|
|
|||
|
0.6.2:
|
|||
|
|
|||
|
PCE: Physical CDROM device names will no longer be printed on Mac OS/X on startup, due to the code crashing badly(rather than goodly!).
|
|||
|
|
|||
|
OpenGL texture heights are now rounded up to the nearest power of 2(texture widths already had this rounding in previous versions),
|
|||
|
which should fix special scalers on video output devices that don't support non-power-of-2 textures(IE most video cards and Mac boxen).
|
|||
|
|
|||
|
PCE: The libcdio sector reading functions are now checked for return values < 0 as errors, rather than != 0, to fix
|
|||
|
problems under Linux and possibly many other OSes where the return value is something like 2048(the number of bytes read, presumably).
|
|||
|
|
|||
|
PCE: Fixed a bug with disassembling block memory transfer instructions on < 64-bit systems(I had forgot to type-cast a variable
|
|||
|
to uint64 before left-shifting it past 32-bits).
|
|||
|
|
|||
|
PCE: Added the implied form of INC to the disassembler.
|
|||
|
|
|||
|
NES: Removed the PRG mask constraint for UNROM/mapper 2, introduced in version 0.2.0, to fix the Japanese "Maniac Mansion" and possibly
|
|||
|
other games.
|
|||
|
|
|||
|
PCE: Fixed debugger write breakpoints. The code had a logical error in it, with the end effect of preventing stack writes in the IRQ
|
|||
|
sequence, causing games to crash.
|
|||
|
|
|||
|
0.6.1:
|
|||
|
|
|||
|
PCE: The HuC6280 disassembler now gives @ZP hints for BBR and BBS instructions.
|
|||
|
|
|||
|
NES: Increased the effectiveness of frame-skipping.
|
|||
|
|
|||
|
Removed unnecessary sound buffer copying if the source format == device format in SexyAL, which is true most of the time.
|
|||
|
|
|||
|
Fixed a bug that was causing a crash in the cheat interface when trying to list cheats, under Win32.
|
|||
|
|
|||
|
Fixed a bug in the settings loading code that forced the user to resort to manual creation of ~/.mednafen/mednafen.cfg on
|
|||
|
some operating systems(*BSD, OS/X).
|
|||
|
It was being caused by 'errno' being modified between the attempt to open the settings file, and the test 'if(errno == ENOENT)'.
|
|||
|
|
|||
|
Silent sound will now be outputted when in step mode in the debugger. Windows users' ears rejoice!
|
|||
|
|
|||
|
Added a strtod() replacement that recognizes both "." and "," as valid radix characters, regardless of the current
|
|||
|
locale, and modified settings.cpp to use it.
|
|||
|
|
|||
|
Lynx: Removed some unused code.
|
|||
|
|
|||
|
0.6.0:
|
|||
|
The internal sound format has been changed to 16-bit from floating-point to improve performance,
|
|||
|
especially on processors without FPUs. There should be no perceptual nor measurable
|
|||
|
loss in sound quality.
|
|||
|
|
|||
|
Removed fidlib from the source code tree, as it is no longer used.
|
|||
|
|
|||
|
Lynx: Switched over to Blip_Buffer's lowpass("treble") capabilities from fidlib.
|
|||
|
|
|||
|
PCE, NES: Added a debugger of DOOOOOM.
|
|||
|
|
|||
|
PCE: Altered timer emulation slightly.
|
|||
|
|
|||
|
PCE: It is now possible to load CDs simply by specifying the CUE file, or device, as you would with a ROM image, like so:
|
|||
|
mednafen /dev/cdrom
|
|||
|
mednafen /home/sauron/games/Ys/Ys.cue
|
|||
|
|
|||
|
Added MusePack CD-DA playback(IE audio tracks encoded as MPC data) support.
|
|||
|
|
|||
|
Added legal information to the end of the documentation, though it's likely incomplete.
|
|||
|
|
|||
|
Switched over to using an internal copy of the "Tremor" decoder, and dropped dependencies on the ogg and vorbis
|
|||
|
external libraries.
|
|||
|
|
|||
|
The CD-DA reading function now provides sound data as 16-bit signed samples in the endian format native to the
|
|||
|
host platform.
|
|||
|
|
|||
|
PCE: Changed two often-used CDROM timing variables from int64 to int32 to try to improve performance slightly on non-64-bit platforms.
|
|||
|
|
|||
|
PCE: Added a hack that changes subtle CDROM unit behaviour when the game "Sherlock Holmes" is loaded, so that the aforementioned game
|
|||
|
will work. In general, I really, really
|
|||
|
dislike hacks of this nature, but I think it's justified until I have a better understanding of the (complex) PCE CD
|
|||
|
functioning.
|
|||
|
|
|||
|
PCE: Lowered CDROM data transfer rate, and removed the kludgey one-time delay in the sector reading function.
|
|||
|
|
|||
|
PCE: Altered ADPCM write delay to be inversely proportional to the playback frequency selected.
|
|||
|
|
|||
|
GB, GBA and Lynx save-state previews are now saved at native resolution, instead of scaling down to 1/4 of the native resolution.
|
|||
|
|
|||
|
NES: Fixed a mapper 96 initialization problem.
|
|||
|
|
|||
|
NES: Implemented blargg's NTSC graphics filtering code(version 0.2.0).
|
|||
|
|
|||
|
The setting "sounddevice" will now select which filesystem entry(like "/dev/dsp" or "/dev/adsp") to open when using the OSS output driver.
|
|||
|
|
|||
|
NES: Changed the internal sound channels high-frequency mixing buffer to 16-bit, from 32-bit, to try to increase performance
|
|||
|
on cache-starved processors.
|
|||
|
|
|||
|
Added a simple, non-ideal(it increases CPU usage measureably because it dirties the OSD surface and causes it to be redrawn)
|
|||
|
FPS display, toggled with SHIFT+F1.
|
|||
|
|
|||
|
PCE: Added "hes" and "pce" to the file extensions looked for in ZIP archives in the file loader.
|
|||
|
|
|||
|
NES: Added support for iNES mapper 38.
|
|||
|
|
|||
|
Lynx: The lowpass filter can now be optionally disabled by modifying the "lynx.lowpass" setting.
|
|||
|
|
|||
|
ROM sizes, MD5 hashes, and CRC32 checksums are now printed out for all systems emulated
|
|||
|
by Mednafen.
|
|||
|
|
|||
|
Rearranged the file loader detector to attempt to load the file as a GBA game last, since the GBA cart-detection
|
|||
|
code *could* give false positives if the game isn't a GBA game.
|
|||
|
|
|||
|
PCE: The 2KiB of BRAM is no longer mirrored across the 8KiB segment 0xF7, fixing "RAM is full" problems
|
|||
|
with Exile 2.
|
|||
|
|
|||
|
PCE: Fixed MD5 hash calculation for CD data tracks.
|
|||
|
|
|||
|
Added settings "gb.forcemono" and "gba.forcemono".
|
|||
|
|
|||
|
Lynx: Cleaned up the code.
|
|||
|
|
|||
|
The MD5 hash is now calculated for GBA and Lynx games, and the correct MD5 hash is now used in filenames
|
|||
|
(the nibbles in each byte were swapped previously).
|
|||
|
***NOTE***
|
|||
|
Save states and save games created in previous versions of Mednafen will have different filenames than the current version.
|
|||
|
To do a quick-and-dirty fix, simply remove the MD5 hash component from the filename as such:
|
|||
|
rename somegame.7e74d04f2d147f03061d447310b109ec.sav somegame.sav
|
|||
|
|
|||
|
Changed autofire behavior to have the button set on half the frames in the autofire period, rather than just one frame.
|
|||
|
|
|||
|
NES: Changed the background clear color to light blue(from black) when the background is disabled by the user, and
|
|||
|
fixed background and sprite disabling by the user to not lock up some games that depend on sprite hits.
|
|||
|
|
|||
|
GBA: Updates from VBA's CVS:
|
|||
|
- bios.cpp : corrected a bug in registerRamReset.
|
|||
|
- gba.cpp/gbainline.h : corrected the mirroring of Vram.
|
|||
|
- gba.cpp : changed slightly the emulation of gbasavetype.
|
|||
|
- RTC.cpp : vba now ignores rtc command 0x64.
|
|||
|
|
|||
|
GBA: Reduced input latency by one frame.
|
|||
|
|
|||
|
PCE: Reworked the frame/scanline counter loop to run NMI first, and then draw the active frame area, to reduce input
|
|||
|
latency by one frame. Most games keep the vblank starting line outside of the TV's visible display area, but a few(like Dracula X)
|
|||
|
have vblank occurring on a scanline that the VDC is still outputting a signal to the TV for. If a game alters its overscan color regularly,
|
|||
|
and vblank is set to occur rather early, there might be a slight tearing effect at the bottom of the screen. Note that this is a very minor
|
|||
|
problem, and is more than offset by the reduced input latency, though I thought I should mention it so I won't go crazy in the
|
|||
|
future trying to debug the oddball game. ;)
|
|||
|
Note that this change may cause compatibility problems with PCE save states created in older versions of Mednafen.
|
|||
|
|
|||
|
NES: Fixed several PPU sprite RAM and VRAM read and write operations to pass blargg's tests.
|
|||
|
|
|||
|
NES: Altered how the color to be blitted is decided when screen rendering is disabled to fix blargg's 410 color demo.
|
|||
|
|
|||
|
Fixed scanlines to be aligned correctly(scanline darkening over the pixels that are interpolated between rows) when bilinear interpolation is
|
|||
|
used, at least on my nvidia card.
|
|||
|
|
|||
|
Floating-point/real number settings are now validated and checked to be in range.
|
|||
|
|
|||
|
PCE: Rewrote SuperGrafx VPC priority evaluation code to work correctly with http://pcedev.net/demos/Sgx3b.zip which was tested
|
|||
|
on real hardware.
|
|||
|
|
|||
|
Simplified the OpenGL blitting code.
|
|||
|
|
|||
|
0.5.2:
|
|||
|
Modified the PCE code to only include header files that are needed.
|
|||
|
|
|||
|
Fixed a memory leak in the state saving code.
|
|||
|
|
|||
|
PCE: Closing HES music files will no longer produce battery-backed RAM files. x_x
|
|||
|
|
|||
|
Fixed a memory leak in the state loading code.
|
|||
|
|
|||
|
Reduced memory slightly in the text rendering code by using all the bits available in the array(instead of the lower bit of each byte)
|
|||
|
that tells if a glyph is available or not.
|
|||
|
|
|||
|
Modified the internal message display code to allocate and free space for the message being displayed, rather
|
|||
|
than using a rather small static array.
|
|||
|
|
|||
|
PCE: Fixed a small bug that would cause 1/75 second or less of the old CDDA track to play when switching to a new CDDA track.
|
|||
|
|
|||
|
PCE: Changed how reads from $0000 are handled, and made vblank occur slightly later in the frame, to fix Valis 1.
|
|||
|
|
|||
|
PCE: The CD reset function of $1804 now clears more variables, fixing problems with lockups when using the START+SELECT
|
|||
|
soft reset in the middle of a data read.
|
|||
|
|
|||
|
Finally fixed the endian conversion code so that save states(and netplay) are compatible between big-endian and
|
|||
|
little-endian systems.
|
|||
|
**NOTE** Save states created in previous versions of Mednafen on big endian platforms(such as OS/X PPC)
|
|||
|
will no longer work in this version.
|
|||
|
|
|||
|
Removed the tech documentation from the source code distribution.
|
|||
|
|
|||
|
Truncated the ChangeLog to the first Nintencer release.
|
|||
|
|
|||
|
0.5.1:
|
|||
|
Fixed a crashy bug with hq2x, hq3x, and hq4x when using big-endian systems, or when the "vdriver" setting is set to "1".
|
|||
|
|
|||
|
0.5.0:
|
|||
|
Added a frame-advance feature. Press ALT+A to enter frame-advance mode, and subsequently to advance frames, and ALT+R
|
|||
|
to exit frame-advance mode.
|
|||
|
|
|||
|
The current machine state is now saved at the end of movies, to allow for the future implementation
|
|||
|
of the seamless continuation of an already recorded movie.
|
|||
|
|
|||
|
PCE: When loading from a physical disc, auxillary data(save states, movies, etc.) prefixes should now always be "cdrom",
|
|||
|
rather than "cdrom" for the default device and the given name for other devices, because this(previous) behavior
|
|||
|
caused problems under Win32(where colons couldn't be used in filenames).
|
|||
|
|
|||
|
NES: Fixed FDS sound output(it was technically outputting before, but the volume was so low as to be inaudible).
|
|||
|
|
|||
|
NES: The disk system BIOS can now be in iNES format.
|
|||
|
|
|||
|
NES: The Game Genie and FDS ROM image loaders can now load the ROM image from a gzip or zip compressed file.
|
|||
|
|
|||
|
Revised the documentation to remove misleading statements(that applied to FCE Ultra) and add some missing information.
|
|||
|
|
|||
|
Updated the command-line section of the documentation with warnings and notes regarding settings, network play,
|
|||
|
and movies.
|
|||
|
|
|||
|
PCE: Fixed more bugs with CD reading when sound is disabled.
|
|||
|
|
|||
|
Loading a save state while recording a movie will now embed that save state in the movie file.
|
|||
|
|
|||
|
PCE: Save state previews are now generated with correct horizontal linear interpolation, fixing icky
|
|||
|
blockiness.
|
|||
|
|
|||
|
NES: It's now possible to record movies with any virtual input devices(like the Zapper), though the nes.input1,
|
|||
|
nes.input2, and nes.fcexp settings must be set the same as they were at recording time, before playback.
|
|||
|
|
|||
|
NES: All currently used expansion input devices are now saved in save states(before only gamepad data was saved).
|
|||
|
|
|||
|
Added a network play setting to merge all local input into one virtual remote input(via inclusive OR on the
|
|||
|
server), to allow for those UTTERLY SILLY games that support multiple players on one gamepad/joystick.
|
|||
|
|
|||
|
Worked around an SDL bug(or feature? :b) that was causing events to be processed by SDL
|
|||
|
instead of Mednafen when SDL_JoystickEventState() is called.
|
|||
|
|
|||
|
Scrapped the old movie format from FCE Ultra, and replaced it with a simplified version
|
|||
|
that simply writes the joystick inputs to the movie file stream each frame, and
|
|||
|
lets zlib handle the compression and encoding. This is incompatible with the old
|
|||
|
format, sorry.
|
|||
|
|
|||
|
Movies are now stored in the right directory finally(mcm vs mcs).
|
|||
|
|
|||
|
Rewrote most of the on-screen display code to work with a separate 256x224 buffer that is scaled and blitted
|
|||
|
independently of the main game's video output buffer. Note that if you have OpenGL disabled(via "-vdriver 1"),
|
|||
|
the overlay will not be scaled.
|
|||
|
|
|||
|
PCE: Added support for multiple resolutions per frame, as used in such games as "Asuka 120%"
|
|||
|
and "Ryuuko no Ken".
|
|||
|
|
|||
|
PCE: Adjusted the internal resolution(and outputted aspect ratio) slightly when using the ~7MHz dot-clock.
|
|||
|
|
|||
|
PCE: Added movie recording support.
|
|||
|
|
|||
|
PCE: Adjusted ADPCM volume.
|
|||
|
|
|||
|
PCE: Fixed left overscan clearing and disabled background lines clearing.
|
|||
|
|
|||
|
The trio code is no longer compiled with -ffast-math.
|
|||
|
|
|||
|
Removed netplay divider support(it didn't really work all that well anyway), and removed it from the server as well.
|
|||
|
|
|||
|
PCE: Changes to the IRQ masking register are now delayed by one instruction, thanks to D. Michel
|
|||
|
for the information.
|
|||
|
|
|||
|
Status messages are now displayed for 2.5 seconds, rather than 180 frames.
|
|||
|
|
|||
|
Changed save state display timing from frames to seconds, and set it to display for 2 seconds
|
|||
|
after a number is pressed(previously it was around 3).
|
|||
|
|
|||
|
Added the following settings: nes.ggrom, path_snap, path_sav, path_state, path_movie, path_cheat, path_palette.
|
|||
|
|
|||
|
Changed the data types of "bool" variables that are saved in save states to uint8, to address more
|
|||
|
cross-platform save-state compatibility issues.
|
|||
|
|
|||
|
Fixed a problem with save states on big-endian platforms(was dividing by sizeof(uint32) instead of sizeof(uint16)
|
|||
|
in a few places).
|
|||
|
|
|||
|
Fixed hq2x, hq3x, and hq4x filters on big-endian platforms.
|
|||
|
|
|||
|
PCE: Pushing the virtual reset or power button during CD reads will no longer cause the emulator to fail on
|
|||
|
subsequent reads(a few variables weren't being reset properly).
|
|||
|
|
|||
|
0.4.9:
|
|||
|
|
|||
|
GB/GBA: Added configurable rapid fire buttons for virtual buttons A and B.
|
|||
|
|
|||
|
NES: Disabling the background now works properly(it no longer also disables sprites!).
|
|||
|
|
|||
|
PCE: Disabling background layers now replaces that layer with an obnoxious green color that shouldn't be used by any games,
|
|||
|
to make sprite ripping easier.
|
|||
|
|
|||
|
Added settings "fftoggle" and "ffnosound", to make the fast-forwarding button a toggle switch, and to silence
|
|||
|
sound during fast-forwarding, respectively.
|
|||
|
|
|||
|
PCE: CDDA playback interrupt and looping enabled flags are now reset properly, fixing a lockup that occurs when facing a boss
|
|||
|
in Valis 2, and possibly other games.
|
|||
|
|
|||
|
0.4.8:
|
|||
|
PCE: Loading a physical CD will now print out a list of available devices.
|
|||
|
|
|||
|
NES: Blip_Buffer's highpass filtering capabilities(for DC-offset removal) are now used instead of a custom function.
|
|||
|
|
|||
|
Modified the included libintl so that it will compile on Mac OS/X.
|
|||
|
|
|||
|
The "trio" subdirectory should(I can't test it) now be compiled with -mieee on Alpha architectures,
|
|||
|
fixing a compilation error.
|
|||
|
|
|||
|
NES: Fixed long-standing graphical problems with some sprites in (Mike Tyson's) Punch-Out.
|
|||
|
|
|||
|
Removed "#include <samplerate.h>" from cdromif.cpp and cdromfile.cpp, since I forgot to in 0.4.6.
|
|||
|
|
|||
|
0.4.7:
|
|||
|
Fixed the NES PPC AltiVec resampling code by properly aligning an output array.
|
|||
|
|
|||
|
Fixed NES sound emulation on 32-bit platforms(omitting the buffer size to Blip_Buffer::set_sample_rate()
|
|||
|
was causing an assert to go off on <64-bit platforms).
|
|||
|
|
|||
|
0.4.6:
|
|||
|
|
|||
|
Dropped the libsamplerate dependency.
|
|||
|
|
|||
|
NES: Replaced the resampling code from the intermediate frequency after FIR resample with Blip_Buffer. The only
|
|||
|
audible effect seems to be a slight lowpass filter effect.
|
|||
|
|
|||
|
PCE: Integrated the CDDA playback code into the main PCE CDROM emulation code by using Blip_Buffer.
|
|||
|
|
|||
|
PCE: Removed the compressor and cddaquality settings.
|
|||
|
|
|||
|
Updated the Russian PO file, mostly to remove or fix grossly incorrect "fuzzy" entries.
|
|||
|
Added an incomplete Spanish(Spain) PO file.
|
|||
|
|
|||
|
PCE: If a data sector read from a physical disc fails, it will be reattempted continuously until it succeeds,
|
|||
|
or the user presses the exit key(F12 by default). (note that this may appear to lock up Mednafen, but the
|
|||
|
exit key will still work)
|
|||
|
This *should* fix problems with physical PCE CDs under Mac OS/X and MS Windows.
|
|||
|
|
|||
|
Merged trio(http://daniel.haxx.se/projects/trio/) into Mednafen to fix format-string problems
|
|||
|
on non-glibc systems(MS Windows for example!).
|
|||
|
|
|||
|
GB: Modified the APU emulation code to silence a gcc warning.
|
|||
|
|
|||
|
PCE, Lynx, GB, GBA: Doubled the size of the Blip_Buffer phase offset table for slightly higher sound quality.
|
|||
|
|
|||
|
PCE: Fixed ADPCM playback code for when sound is disabled(it was ultimately causing a crash in earlier versions).
|
|||
|
|
|||
|
Converted the MD5 functions to a class.
|
|||
|
|
|||
|
Fixed(hopefully) compilation on non-Apple PowerPC systems.
|
|||
|
|
|||
|
Fixed save-state support for saving/loading arrays of 16-bit and 32-bit variables(the hints were already there,
|
|||
|
but the code to handle the hints was nonexistant). Note that this change will cause incompatibilities between old save states and
|
|||
|
this version on big-endian platforms.
|
|||
|
|
|||
|
Removed the included "m4" directory, updated autogen.sh, and reran it to regenerate aclocal.m4 with
|
|||
|
newer(and fixed on AMD64) versions of the gettext autoconf scripts.
|
|||
|
See: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=349845
|
|||
|
|
|||
|
0.4.5:
|
|||
|
drivers/opengl.cpp now includes the GL header files AFTER the header file that eventually loads config.h is included to fix
|
|||
|
compilation on Mac OS X.
|
|||
|
|
|||
|
Redefined SFEND from { 0 } to { 0, 0, 0}, and fixed older code to use the SFEND macro, to fix crashing on OSX and possibly
|
|||
|
other platforms when saving or loading states.
|
|||
|
|
|||
|
Reduced SDL's buffer size when using the SDL sound driver(used on MacOSX).
|
|||
|
|
|||
|
Restructured and merged some of the sections in the autoconf script. Note to future self: I noted that it seems if
|
|||
|
the first instance of PKG_CHECK_MODULES() is in a statement that doesn't evaluate, any other PKG_CHECK_MODULES()
|
|||
|
statements will fail. I don't know if this is a bug in autoconf, or a misunderstanding on my part.
|
|||
|
|
|||
|
Removed the largely unused ESD sound driver from compilation, as it is mostly unsuitable for use in Mednafen.
|
|||
|
Also removed the jack driver, as it was unfinished, and couldn't be used anyway.
|
|||
|
|
|||
|
PCE: Fixed CD-DA playback from "WAV" audio files on big-endian platforms.
|
|||
|
|
|||
|
Fixed a compilation problem on big-endian CPUs by adding appropriate type-casts in psf.cpp.
|
|||
|
|
|||
|
0.4.4:
|
|||
|
Modified the GBA code to not use many INLINEd functions in arm.cpp. This greatly reduces
|
|||
|
RAM and CPU usage during compilation, and should have only a negligible impact on performance(and might
|
|||
|
even improve performance on cache-starved systems).
|
|||
|
|
|||
|
Fixed a compilation problem on non-x86 and non-PPC platforms in the NES emulation code.
|
|||
|
|
|||
|
0.4.3: (Note: PCE CD save states created in previous versions will not work very well with this release)
|
|||
|
|
|||
|
Fixed a compilation problem in cdromif.cpp regarding NULL on *BSD platforms by including <string.h>.
|
|||
|
|
|||
|
Lynx: Fixed the constructor and destructor declarations of the C65C02 class, which should fix a reported
|
|||
|
compilation error with gcc 4.1.
|
|||
|
|
|||
|
GBA: Added a few missing variables to save states.
|
|||
|
|
|||
|
GB: Lines during which time the screen is turned off are now cleared(fixes flickering problems at the
|
|||
|
start of games, and during transitory blank screens).
|
|||
|
|
|||
|
Fixed the SDL_net.h include statement in drivers/netplay.cpp.
|
|||
|
|
|||
|
PCE: Fixed a bug with CUE+BIN sector size handling with regards to pregaps. CUE+BIN is still
|
|||
|
officially unsupported. :B
|
|||
|
|
|||
|
PCE: Noise is now rendered at blip_med_quality.
|
|||
|
|
|||
|
PCE: Removed the code that checks to make sure the audio sector to play is non-zero. Fixes "Crazy Hospital".
|
|||
|
|
|||
|
Changed the maximum supported playback rate from 96KHz to 48KHz, to be able to safely extend the temporal precision
|
|||
|
of Blip_Buffer further.
|
|||
|
Note that this shouldn't be considered a regression, as there are virtuall no benefits to using a sample rate
|
|||
|
above 48KHz in Mednafen(though there may be benefits in other applications).
|
|||
|
***************
|
|||
|
***BIG NOTE:***
|
|||
|
***************
|
|||
|
If you previously set the playback rate above 48KHz, you will have to manually edit the text configuration
|
|||
|
file(~/.mednafen/mednafen.cfg) to bring the value in range. This is necessary because of a limitation in the setting
|
|||
|
validation code.
|
|||
|
|
|||
|
|
|||
|
Updated to Blip_Buffer 0.4.0, which offers improved sound quality over previous versions:
|
|||
|
- Improved sound quality by rewriting library to use 32-bit internal sample
|
|||
|
buffer, higher phase resolution, and a properly windowed filter kernel. Current
|
|||
|
user code should work without changes.
|
|||
|
|
|||
|
PCE: When sprites and background are both disabled, and the VDC is not in burst mode, the scanline is now filled with color 0x000 from the palette
|
|||
|
rather than 0x100. This fixes the "Hurry Up" water effect in the CD game "Rainbow Islands".
|
|||
|
|
|||
|
PCE: Fixed the CD-DA amplitude calculating(used the BIOS' CD-DA player interface).
|
|||
|
|
|||
|
PCE: Altered VDC line timing slightly.
|
|||
|
|
|||
|
PCE: ADPCM frequency is no longer reset on ADPCM reset, fixes Gulliver Boy's dialogue voices during
|
|||
|
gameplay.
|
|||
|
|
|||
|
PCE: Fixed reading from nonexistant audio sectors(by memset()'ing the audio buffer to zero).
|
|||
|
|
|||
|
PCE: Implemented sector reading delays, games that use FMV like Gulliver Boy work much better now. It's not implemented 100% correctly,
|
|||
|
and requires a small CPU hack to disable IRQs during a timing-sensitive period of emulation. I don't like hacks, but...it's still better
|
|||
|
than the giant hack of reading all the sectors at once, which was how it used to be.
|
|||
|
|
|||
|
PCE: Implemented ADPCM read and write delay. "Record of Lodoss War" no longer locks up at the title screen.
|
|||
|
|
|||
|
PCE: Opcode and operand data reads from VDC register 0x1 will now return 0x40, which fixes
|
|||
|
Dragon Slayer 2. I doubt this is correct, but it shouldn't break any other game.
|
|||
|
|
|||
|
PCE: CUE+BIN audio playback no longer locks up the emulator, but CUE+BIN is still
|
|||
|
officially unsupported.
|
|||
|
|
|||
|
0.4.2:
|
|||
|
Fixed sprite hit emulation, fixes problems with VS Duck Hunt and VS Hogan's Alley
|
|||
|
that have existed since Nintencer.
|
|||
|
|
|||
|
Modified VS Unisystem light gun emulation slightly to be more accurate.
|
|||
|
|
|||
|
Fixed the in-emulator sound(nsf,gsf,hes) player's waveform visualization,
|
|||
|
broken in 0.4.1.
|
|||
|
|
|||
|
0.4.1:
|
|||
|
|
|||
|
Joysticks initialization is now slightly more verbose.
|
|||
|
|
|||
|
Fixed hash calculation in the joystick code, and added a workaround for hash
|
|||
|
collisions(which would occur if two extremely similar joysticks are used on
|
|||
|
the same system).
|
|||
|
|
|||
|
Video initialization is now more verbose.
|
|||
|
|
|||
|
The -<system>.special command-line arguments for selecting a special scaler now
|
|||
|
take the short name of the scaler, which is found in the documentation, instead of
|
|||
|
arbitrarily-chosen numbers. However, out of the goodness of my cold, black heart,
|
|||
|
arbitrarily-chosen numbers may still be used, though it should be considered deprecated.
|
|||
|
Example:
|
|||
|
-nes.special 1 (deprecated, but works, selecting hq2x)
|
|||
|
-nes.special hq2x (good!)
|
|||
|
-nes.special wombat (bad!)
|
|||
|
|
|||
|
libsndfile is now used for WAVE recording(instead of the old ugly code).
|
|||
|
|
|||
|
Altered the internal floating-point format used to represent audio data by changing
|
|||
|
the range to -1.0<=sample<=1.0(previously it was 0.0<=sample<=1.0).
|
|||
|
|
|||
|
NES: Fixed a 1-byte overflow bug in the Barcode World input device emulation
|
|||
|
code by changing a strcpy() to a memcpy().
|
|||
|
|
|||
|
Added a "-help" command-line option, which prints out command-line arguments
|
|||
|
and parameters.
|
|||
|
|
|||
|
Fixed the configuration file loading code to exit the emulator if
|
|||
|
invalid data is in the configuration file, instead of just ignoring it
|
|||
|
and the rest of the entries, thus trashing the configuration file on exit.
|
|||
|
|
|||
|
Changed the default xscale and yscale settings for Lynx to 4.
|
|||
|
|
|||
|
Physical mouse buttons can now be assigned to virtual buttons.
|
|||
|
|
|||
|
The width and height of the state preview are now saved in save states, fixing a problem with broken
|
|||
|
save states if the -nes.clipsides option is used, and possibly in other situations(note that this
|
|||
|
won't fix the problem in old save states, only new ones).
|
|||
|
|
|||
|
Fixed a garbage(OSD stuff) problem in screen snapshots and save states when they are done after a frame
|
|||
|
that has been skipped(the solution is to delay the snapshot/save state until the next frame, which is
|
|||
|
set to not be skip).
|
|||
|
|
|||
|
Fixed a typo that broke the hq3x effect(it had weird graphical glitches).
|
|||
|
|
|||
|
Modified more settings to use the new plain-text configuration file format.
|
|||
|
|
|||
|
0.4.0:
|
|||
|
Various minor code changes I forgot to document. I hope none of them are of the Mednafen-exploding
|
|||
|
variety. ;)
|
|||
|
|
|||
|
Added support for saving and loading settings in a plain-text file format, and moved many
|
|||
|
settings to use this code. This file is named "mednafen.cfg" in the Mednafen base directory(whereas
|
|||
|
the old binary configuration file is still named "mednafen03x.cfg").
|
|||
|
|
|||
|
NES: Merged RDoPCM() into RDoNoise(), reducing CPU usage slightly.
|
|||
|
|
|||
|
NES: Removed the pedantically high-quality sound mode, and reduced the filter order for downsampling
|
|||
|
from 512 to 256, with a larger transition band and smaller passband, creating a somewhat subtle low-pass filter
|
|||
|
effect on the audible portion of the signal, and decreasing CPU usage.
|
|||
|
|
|||
|
NES: Made optimizations to the CPU and PPU emulation code.
|
|||
|
|
|||
|
PCE: Added -pce.forcesgx, -pce.ocmultiplier, -pce.nospritelimit, -pce.cdbios, -pce.cddaquality, and -pce.compressor
|
|||
|
command-line options
|
|||
|
|
|||
|
PCE: Sound(excluding CDDA in CD emulation mode) is now passed through an audio volume compressor.
|
|||
|
|
|||
|
NES: Zero-page and stack memory accesses now go through the normal read-write function pointer system.
|
|||
|
This will increase CPU usage slightly, but it's important for future plans(readding cheat support,
|
|||
|
and an enhanced sound system through OggVorbis and WAV files).
|
|||
|
|
|||
|
Updated to Blip_Buffer and Blip_Synth 0.3.6b1.
|
|||
|
|
|||
|
Added special gcc options to configure.ac to get gcc to actually inline many functions
|
|||
|
that are specified to be inlined. Sometimes I wonder if gcc developers are sane...
|
|||
|
|
|||
|
NES: Fixed a weird typo(with apparently no effect) in the B2005() function in ppu/ppu.cpp
|
|||
|
|
|||
|
Fixed scanlines effect when using a special scaler.
|
|||
|
|
|||
|
Lynx: Optimized the sound rendering code slightly.
|
|||
|
|
|||
|
PCE: Added PCE CD emulation.
|
|||
|
|
|||
|
NES: Fixed the AMD64 MMX sound downsampling assembly code. This bug fix fixes staticy sounds and other problems
|
|||
|
with NES audio on AMD64 platforms(only in 64-bit mode, of course :)).
|
|||
|
|
|||
|
Removed MDFND_UTF8fopen() and MDFND_UTF8gzopen(), since they weren't really doing anything useful, and
|
|||
|
the same functionality could be provided more easily with some kind of wrapper library, if it's needed
|
|||
|
in the future.
|
|||
|
|
|||
|
Updated the ZIP-file handling code with the newest version available, 1.01e.
|
|||
|
|
|||
|
GBA: Updated most of the GBA emulation code with newer code from VBA's CVS repositoy.
|
|||
|
|
|||
|
MDFN_FastU32MemsetM8() no longer tries to use floating-point data types, which was causing very bizarre problems on x86_64
|
|||
|
targets when compiled with gcc 4.0, and was probably an illegal thing to do anyway, as far as
|
|||
|
portability is concerned(or maybe gcc 4.0's autovectorizer is broken).
|
|||
|
This fixes problems with many GBA games when Mednafen is compiled with gcc 4.0.
|
|||
|
|
|||
|
Added code to check for SDL_net in configure.ac and error out if it's not found, instead of blindly
|
|||
|
trying to compile.
|
|||
|
|
|||
|
A negative result for the JACK test in configure.ac will now print the result "no".
|
|||
|
|
|||
|
Removed the argument to AM_GNU_GETTEXT in configure.ac, effectively setting it to "no-libtool". This will
|
|||
|
force a static library to be made when necessary, instead of a shared library, which should fix problems
|
|||
|
some people have been having with missing shared library error messages(libintl.so.3 and libintl.dll, for example).
|
|||
|
|
|||
|
0.3.7
|
|||
|
Modified the OpenGL code to use glTexSubImage2D() instead of glTexImage2D() every frame, resulting in a slight
|
|||
|
performance increase.
|
|||
|
|
|||
|
Modified the OpenGL code to use smaller texture sizes with most PC Engine games(at least those
|
|||
|
that run at a width of 256 pixels; exceptions include Aoi Blink, R-Type 1 and 2, Yo Bros., and others).
|
|||
|
|
|||
|
Lynx: Moved CMikie::Update() and C65C02::Update() into c65c02.cpp and mikie.cpp, respectively.
|
|||
|
|
|||
|
Fixed pointer-to-integer type casting that was causing compiler errors under Ubuntu Linux AMD64.
|
|||
|
|
|||
|
Modified a lot of code to work around/fix various compiler warnings.
|
|||
|
|
|||
|
Fixed a few typos in the documentation.
|
|||
|
|
|||
|
0.3.6:
|
|||
|
|
|||
|
NES: Fixed a bug with the VRC6 sound emulation which was causing heap corruption and one sound channel to not work. The bug apparently came up
|
|||
|
between Nintencer 0.1.1 and Mednafen 0.2.0. Why didn't anyone tell me... -_-
|
|||
|
|
|||
|
PCE: Made significant optimizations to CPU emulation. The code's a bit messier now, but I'll clean it up if/when 0.4.0 is released.
|
|||
|
|
|||
|
NES: Removed the high-level frameskipping code, since frameskipping is automatically used now, and it could easily break some games.
|
|||
|
|
|||
|
Removed the "-frameskip" command-line option, as it should not be needed anymore.
|
|||
|
|
|||
|
Unified a lot of the driver-side frame-skipping code.
|
|||
|
|
|||
|
Fixed a startup bug(MainThreadID was being used before it was set) that was causing the "Starting Mednafen x.x.x" line to be lost.
|
|||
|
|
|||
|
Slightly restructured the "features" and "command line" sections of the documentation.
|
|||
|
|
|||
|
PCE: Pressing the "Power" key now resets the internal RAM.
|
|||
|
|
|||
|
All: Altered the shared music player interface, decreasing the brightness of the text, and adding pseudo-shadows.
|
|||
|
|
|||
|
PCE: Added simple HES playback code.
|
|||
|
|
|||
|
PCE: Altered noise emulation slightly, Ninja Ryukenden(and probably other games)'s music sounds more accurate now.
|
|||
|
|
|||
|
Fixed alignment of the save state preview and selection box when emulating the PC Engine.
|
|||
|
|
|||
|
The status line text and the save state selection message are now drawn with black shadows, to make reading easier.
|
|||
|
|
|||
|
Changed the text status line background darkening shape to a rectangle on the NES, and fixed it to display correctly
|
|||
|
with PC Engine emulation.
|
|||
|
|
|||
|
0.3.5:
|
|||
|
Added code to allow for writing to SDL framebuffers directly, without using OpenGL, controlled with the command-line option "-vdriver".
|
|||
|
-vdriver 0 = OpenGL
|
|||
|
-vdriver 1 = SDL framebuffer(bilinear interpolation and Lynx screen rotation are not available).
|
|||
|
|
|||
|
Lynx: Disabled the crude(as in, non-working) stereo sound support, and added a low-pass filter to make the sound sound much closer to what
|
|||
|
comes out of a real Lynx.
|
|||
|
|
|||
|
PCE: Adjusted the visible horizontal display area, and overscan, in the 7 and 10MHz dot clock modes.
|
|||
|
|
|||
|
PCE: Expanded the visible vertical display area by 8 pixels(4 on top, 4 on bottom).
|
|||
|
|
|||
|
PCE: Altered VDC timing agaaaain.
|
|||
|
|
|||
|
PCE: Block memory transfers now take 5 cycles(read, write, alter source, alter dest, decrement length?) per byte transferred instead of 6. Fixes
|
|||
|
"Wonder Momo".
|
|||
|
|
|||
|
PCE: Altered HuC6280 instruction timing slightly(removed the tests for indirect indexed and indexed indirect addressing modes to use extra CPU cycles).
|
|||
|
|
|||
|
PCE: Corrected a timer emulation bug, fixes "Dragon Egg"'s tempo.
|
|||
|
|
|||
|
PCE: Increased the number of cpu cycles per scanline from 454 to 455, based on tests I performed.
|
|||
|
|
|||
|
GB/GBC: A sound enable register is now initialized properly on reset, fixing at least one unlicensed game.
|
|||
|
|
|||
|
Lynx: Disabled the superclipping code, as it's buggy(causes bad sprite clipping and invisible mountains(OHNOS) in Steel Talons)
|
|||
|
and doesn't appear to be necessary.
|
|||
|
|
|||
|
The mouse cursor is now hidden.
|
|||
|
|
|||
|
0.3.4:
|
|||
|
Added command-line option "-autofirefreq" for setting the frequency of the configured auto-fire buttons
|
|||
|
when playing NES and PC Engine games.
|
|||
|
|
|||
|
PCE: Fixed Street Fighter 2 HuCard emulation.
|
|||
|
|
|||
|
PCE: Modified PSG waveform writing/DDA emulation, fixes "Fire Pro Wrestling - Combination Tag".
|
|||
|
|
|||
|
PCE: Modified TRB and TSB emulation. Fixes "Toy Shop Boys".
|
|||
|
|
|||
|
PCE: Implemented VRAM-VRAM DMA direction control bits.
|
|||
|
|
|||
|
PCE: Altered VDC timing, fixing a few games, making a few games more bouncy. ;)
|
|||
|
0.3.3:
|
|||
|
|
|||
|
PCE: Fixed sprite clipping on the left side of the screen.
|
|||
|
|
|||
|
PCE: The emulated RCR register is now masked with 0x3FF when being set. Fixes Niko Niko Pun.
|
|||
|
|
|||
|
PCE: Several CPU cycles are now emulated between setting the in-vblank flag and the vblank IRQ occurring. This works around an issue that would otherwise
|
|||
|
require timing granularity as small as one cpu cycle. Interestingly, this same type of problem occurs with NES emulation.
|
|||
|
|
|||
|
PCE: Altered the display rectangle calculation code to take into effect screen areas that may be hidden
|
|||
|
on many television sets(and some games were designed with the assumption that these areas WOULD be hidden).
|
|||
|
|
|||
|
PCE: Modified noise emulation...again. :b
|
|||
|
|
|||
|
PCE: Modified LFO emulation, fixes major sound problems in "Bull Fight".
|
|||
|
|
|||
|
PCE: The sprite DMA completion IRQ now occurs earlier(probably a few cycles too early now, but oh well). Fixes some graphical issues
|
|||
|
in "Bull Fight".
|
|||
|
|
|||
|
PCE: Sprite bit plane selection is now emulated to a degree. Fixes "Fighting Run".
|
|||
|
|
|||
|
PCE: Very high-frequency(and probably inaudible) sounds are no longer played, because Blip_Synth
|
|||
|
can't handle them well. Fixes "Bouken Danshaku Don" and others.
|
|||
|
|
|||
|
0.3.2:
|
|||
|
|
|||
|
GB: CGB-specific emulated RAM is no longer saved in save-states.
|
|||
|
|
|||
|
GB: Fixed a bug in sound sweep emulation.
|
|||
|
|
|||
|
GBC: The palette is now saved in save states. This fixes a major problem with save states with most GBC
|
|||
|
games...
|
|||
|
|
|||
|
Fixed the SF*N() save state macros to not put quotes around names in
|
|||
|
save state files, and added a workaround for compatibility with old save states. This
|
|||
|
is an embarrassing bug. :b
|
|||
|
|
|||
|
PCE: Made major optimizations to the VDC emulation code.
|
|||
|
|
|||
|
PCE: Rewrote the PSG emulation to use Blip_Synth and Blip_Buffer.
|
|||
|
|
|||
|
PCE: Altered the noise channel emulation frequency calculation and LFSR emulation. I'm still not sure
|
|||
|
if it's correct.
|
|||
|
|
|||
|
Increased the minimum sound rate supported from 8192 to 22050. I don't test low rates very often,
|
|||
|
and there may be loss-of-precision issues with such low rates.
|
|||
|
|
|||
|
0.3.1:
|
|||
|
Fixed a bug that existed since 0.2.0 that was causing a null-pointer deference in stat().
|
|||
|
Interesting, glibc silently ignored the error, but the error caused crashing under Windows.
|
|||
|
|
|||
|
PCE: The HuC6280 timer latch is now loaded with an appropriate value on reset. Fixes
|
|||
|
"Double Dungeons".
|
|||
|
|
|||
|
PCE: Added generic PC Engine save RAM emulation.
|
|||
|
|
|||
|
0.3.0
|
|||
|
Added PC Engine and SuperGrafx emulation.
|
|||
|
|
|||
|
Save states are now compressed and encapsulated in gzip-format files.
|
|||
|
|
|||
|
NES: Fixed display rectangle setting code that was causing screenshots from PAL games
|
|||
|
to be cut off at the top and bottom.
|
|||
|
|
|||
|
NES: Added an iNES header correction entry for "Gauntlet 2", to clear the four-screen bit.
|
|||
|
|
|||
|
NES: Added support for configuring NES gamepads 3 and 4 from within the emulator(during emulation), mapped
|
|||
|
to key combinations "F4" and "Shift + F4", respectively.
|
|||
|
|
|||
|
Fixed virtual input device configuration from the command-line(it was segfaulting before because
|
|||
|
the code was dereferencing a null pointer).
|
|||
|
|
|||
|
0.2.2:
|
|||
|
|
|||
|
Fixed a few problems with '#ifdef's when compiling on an MSB-first platform, though
|
|||
|
I still haven't tested Mednafen on such a platform...
|
|||
|
|
|||
|
NES: Fixed a nasty bug in the iNES loading code(the list of known bad ROM images wasn't
|
|||
|
terminated with a NULL entry) that could cause segmentation faults on startup in
|
|||
|
some situations.
|
|||
|
|
|||
|
NES: A slightly faster version of the sprite priority handling+blitting code is now compiled when
|
|||
|
a 64-bit CPU is "detected" by:
|
|||
|
#if (SIZEOF_LONG == 8)
|
|||
|
(is this the correct way to determine whether or not the cpu has native 64-bit
|
|||
|
integer support? I know it works ok on x86 and x86_64, but what about SPARCs? :b)
|
|||
|
|
|||
|
NES: Rewrote portions of the sprite rendering and priority comparison code to use simpler
|
|||
|
logic.
|
|||
|
|
|||
|
0.2.1:
|
|||
|
GBA: Converted the DMA registers into arrays, rather than having them as a gazillion different
|
|||
|
variables.
|
|||
|
|
|||
|
GBA: Replaced the if() alpha-blending clamping mechanism with a simple LUT.
|
|||
|
|
|||
|
GBA: Removed some apparently unnecessary if() statements in the graphics rendering code.
|
|||
|
|
|||
|
GBA: Made a few experimental optimizations to the graphics rendering code( >> 24 changed to & 0xFF000000 in
|
|||
|
some of the priority comparison code).
|
|||
|
|
|||
|
GBA: Played around with some optimizations in the "gfxDrawTextScreen" function.
|
|||
|
|
|||
|
GBA: Restructured the CPU emulation code, so I don't have to recompile one giant file when
|
|||
|
I make a small change(and so it doesn't use totally obscene amounts of RAM during compilation).
|
|||
|
|
|||
|
GBA: The sound flushing routine was returning and setting the wrong values, totally breaking the speed-throttling
|
|||
|
code. Fixed.
|
|||
|
|
|||
|
GB: Slightly increased the video contrast and brightness of the original GameBoy's emulation.
|
|||
|
|
|||
|
GBA: Extended the BLIP buffer size, fixing a startup emulator crash with "Midway's Greatest Arcade Hits", and
|
|||
|
possibly other games.
|
|||
|
|
|||
|
Updated the documentation with better explanations in a few areas, and fixed a few errors.
|
|||
|
|
|||
|
0.2.0:
|
|||
|
(Sorry, I lost track of changes, but... 0.2.0 is kind of like an entirely new emulator! :b)
|
|||
|
|
|||
|
0.1.1:
|
|||
|
SDL_QUIT events are now handled properly.
|
|||
|
|
|||
|
Increased the default fast-forward speed to 4x.
|
|||
|
|
|||
|
Fast-forwarding will now invoke the emulation frame-skip code, to achieve much higher
|
|||
|
fast-forwarding speeds. Fast-forwarding with frame skipping code may break some games,
|
|||
|
but I haven't encountered any yet...
|
|||
|
|
|||
|
Jitter correction is now done when configuring virtual input devices and command keys, and
|
|||
|
the button pressed is on a physical joystick/gamepad. This is particularly necessary for
|
|||
|
some(all?) analog joysticks connected via the ancient gameport interface on the PC, at least
|
|||
|
under Windows 98 ;).
|
|||
|
|
|||
|
Various code cleanups and subtle usability fixes.
|
|||
|
|
|||
|
The "cheats" subdirectory under the Mednafen base directory is now created on startup(broken in 0.1.0).
|
|||
|
|
|||
|
Fixed sound code used when expansion channels are used and the internal pre-downsample target format
|
|||
|
is floating-point.
|
|||
|
|
|||
|
Added error condition checks and more verbose error messages to various pieces of code.
|
|||
|
|
|||
|
Implemented a modified version of the old PPU rendering code that is used when it is
|
|||
|
safe to do so. This helps to offset the increased CPU requirements of the new code.
|
|||
|
|
|||
|
The command-line option "-nothrottle" works again.
|
|||
|
|
|||
|
Joysticks are now configured by a unique hash id, instead of by index number. This should
|
|||
|
help if people install or uninstall joysticks. It has not been tested, but the code structure
|
|||
|
was copied from the old Win32 port of FCE Ultra, so it should work.
|
|||
|
Note that this change will break old button configurations in the configuration file from 0.1.0.
|
|||
|
|
|||
|
Fixed mapper 19's(Namco 106) expansion sound. It now actually outputs sound(broken in 0.1.0)!
|
|||
|
|
|||
|
Rewrote large parts of the PPU rendering code to be more accurate, and slower. :/
|
|||
|
This fixes Final Fantasy's "orb lighting" effect, and Micro Machines' title screen,
|
|||
|
among others.
|
|||
|
|
|||
|
Reads from $2004 will now return something meaningful to the games "Bee 52" and
|
|||
|
"Micro Machines"(it returned nothing meaningful before, so it shouldn't break anything).
|
|||
|
This, combined with the correct background palette selection used when sprites and background are
|
|||
|
disabled, fixes some graphical issues in Micro Machines and Bee 52.
|
|||
|
|
|||
|
Internal text rendering will now truncate strings that are too long to fit on the screen
|
|||
|
(an issue with NSFEs and song titles...). Is there a better, sane way to deal with this?
|
|||
|
|
|||
|
Added support for loading NSFE files, and made changes to the NSF player to display
|
|||
|
more information if it's available.
|
|||
|
|
|||
|
file.cpp: The FCEU_f* wrapper functions will now always load the entire file
|
|||
|
into memory on FCEU_fopen(). I hope people don't do something silly like trying
|
|||
|
to load a 1GB file of garbage. ;)
|
|||
|
I might add mmap() capabilities in the future.
|
|||
|
|
|||
|
Reworked the UNIF/FDS/iNES/NSF file loading code.
|
|||
|
|
|||
|
Removed the "en" translation from the po directory, since it was a bit...redundant
|
|||
|
or silly. If you did a "make install" with 0.1.0, you should run a command like:
|
|||
|
rm /usr/local/share/locale/en/LC_MESSAGES/mednafen.mo
|
|||
|
|
|||
|
Fixed a compile-time error in general.cpp when the asprintf() emulation function is used.
|
|||
|
|
|||
|
Replaced the SDL WM icon with a scaled image of the Mednafen Beetle.
|
|||
|
|
|||
|
Fixed the Super24-in-1 bootleg cart board emulation by removing a line of silly debug(?) code.
|
|||
|
|
|||
|
Added FCEU_indent() function, for use with FCEU(I)_printf(), to automatically set indentation
|
|||
|
for newlines, rather than having it in the format strings directly. This should make strings in the
|
|||
|
gettext catalogs more manageable.
|
|||
|
|
|||
|
config.h is now used instead of passing gobs of defines on the command-line to g++/gcc.
|
|||
|
|
|||
|
Added code and an MDFNI_* interface to set the sound speed multiplier from the driver code, and
|
|||
|
modified the driver code to use it. This is MUCH better than the method used in 0.1.0, which
|
|||
|
was just telling FCE Ultra to reinitialize sound at a different rate whenever fast forwarding
|
|||
|
started and stopped(which caused clicking).
|
|||
|
|
|||
|
The sprite hit flag will no longer be set if the sprite hit would occur on pixel column 255, which matches
|
|||
|
behavior on the NES.
|
|||
|
|
|||
|
0.1.0:
|
|||
|
Miscellaneous things I've forgotten about.
|
|||
|
|
|||
|
Command-keys and virtual input devices are now configurable while a game is running.
|
|||
|
|
|||
|
gettext is now used to provide message lookup services.
|
|||
|
|
|||
|
Implemented crude Unicode rendering of internal in-game text messages, and several fixed-width fonts
|
|||
|
covering most western languages, Japanese, Chinese, and Korean.
|
|||
|
|
|||
|
Added 2xSaI, Super2xSaI, and SuperEagle video filters, and reordered the integer->filter mappings(used on the command line).
|
|||
|
Should I parse for a string instead of an integer on the command-line?
|
|||
|
|
|||
|
Converted Mednafen to compile with GCC's C++ compiler, though no advanced C++ features are used
|
|||
|
yet.
|
|||
|
|
|||
|
Fixed mapper 165 emulation with code from CaH4e3.
|
|||
|
|
|||
|
VS Unisystem and Famicom Disk System commands are now saved in recorded movies.
|
|||
|
|
|||
|
Video blits and special effects are now done in a thread separate from the game emulation and sound output thread.
|
|||
|
|
|||
|
Command keys are now user-configurably(wow, it happened before the 22nd century!).
|
|||
|
|
|||
|
Fixed emulation of MMC5's $5130 register.
|
|||
|
|
|||
|
Fixed sound sweeping emulation; thanks to blargg.
|
|||
|
|
|||
|
Corrected the behavior of mapper 144 to match what the hardware does regarding bus conflicts.
|
|||
|
|
|||
|
Removed the low quality sound emulation code, and replaced the old high-quality sound emulation filter code with newer code that
|
|||
|
can output to arbitrary rates and uses SIMD instructions if available.
|
|||
|
|
|||
|
Fixed a rather stupid bug that could break loading of certain non-bankswitched NSFs.
|