4
PSX: Handle non-word-aligned timer port reads and writes, rather than triggering an assert(). Also, a warning message is
5
now printed if a game tries to read from timer open bus space, rather than an assert() being triggered.
7
More C++11 warning fixes.
10
NES: Added emulation of iNES mapper 101.
13
PSX: Added a "Dance Pad" emulated device, that uses mostly the same code as the "Gamepad" device, but doesn't provide
14
access to the shoulder buttons, and allows for opposing D-pad directions to be pressed simultaneously.
16
PSX: Improved emulation of bit15 of the SPU control register; fixes problems with "Dance Dance Revolution",
17
"Medal of Honor", "Madden NFL 2003", "Fuuraiki", and "The Misadventures of Tron Bonne".
20
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
21
CPU logical address space.
26
Fixed a problem of usage of uninitialized memory in a startup function in drivers/input.cpp.
29
PSX: Tweaked GunCon hit detection, to improve menu behavior in games like "Point Blank 2".
31
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;
32
more accurate modeling will need to take into account the time passed since the Pause command among other things(TODO for
33
the future maybe, though the relationship between time passed and time to resume from a Pause state is a bit...wonky).
35
PSX: Pause command completion time is now more accurate, per tests on a PS1.
38
PSX: Changed conditions under which "GetLocL" fails, per limited tests on a PS1. Fixed a game-breaking lockup in "Star Ixiom".
40
PSX: Added CDC "Standby" command and status emulation, fixes a game-breaking lockup in "Philosoma".
43
PSX: Don't run DMA channel 1 unless there really is data available from the MDEC; fixes partially-broken FMV in "Rayman".
46
PSX: DMA, and GPU FIFO emulation tweaks, to fix a regression in "Legacy of Kain - Soul Reaver"(the game does something fairly
47
unique; it has a transfer length of 0x10 in some linked-list headers).
49
PSX: Increased base cycle usage counts for polygon commands, per tests on a PS1.
51
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
52
on limited data) to have a contention or dependency system with different functional units that have access to the FIFO; the changes
53
here just simulate some of its less-computationally-expensive characteristics in regards to GPU status bits and
57
Fixed numerous code constructs that caused errors and/or warnings when compiling for the C++11 standard.
60
PSX: Improved reliability of the Konami Justifier simulated offscreen shot process.
62
PSX: More event handling tweaks.
65
PSX: Added experimental emulation of the DREAD Konami Justifier. This light gun makes tears of pain flow in a torrent.
67
PSX: Added partial emulation of some esoteric timer features, though what was added is probably not totally correct.
69
PSX: Altered the global event system to use a sorted doubly-linked list, to allow for more precise timing of events
70
in relation of one sub-device/chip to another.
73
Added code to allow CD image file data to be entirely loaded into memory, though the code is not used as such at current.
75
SNES: Added boolean setting "snes.correct_aspect", default value of "0"(preserving previous behavior).
77
PSX: Added additional heuristics for determining game region; fixes misdetection of the region for the North American release
78
of "Wing Commander IV".
81
PSX: Tweaked GunCon x coordinate scaling.
83
Changed absolute mouse x and y coordinate passing from driver->core to be in 1.15.16 fixed point format(previously
84
simple integers), to avoid excess precision loss when scaling the coordinates from viewport dimensions
85
to nominal_width and nominal_height.
88
PSX: Added preliminary GunCon emulation.
90
Genesis: Adjusted aspect ratio slightly.
92
PSX: Adjusted NTSC aspect ratio slightly.
94
PSX: Reduced internal frame buffer width by 1/4(reduces memory usage).
96
PSX: When playing a PSF, virtual input(gamepad, etc.) devices are no longer emulated as being connected.
98
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
101
Fixed resource leakage issue when CUE/TOC sheet loading aborts due to an error.
104
Removed the rawer parts of a half-baked idea implemented long ago in the virtual input device abstraction structures, and
105
removed some extremely poorly-scaling-with-increased-emulated-system-count-and-emulated-device-count code that said
106
half-baked functionality required, shaving a considerable amount off Mednafen's startup time
107
(though probably not really noticeable on faster CPUs).
109
Modified settings loading and saving code to use new FileStream functionality.
112
Modified the CD image reading and "AudioReader" code(used for reading MS WAV/Vorbis/MusePack/etc) to operate on a
113
"Stream" object instead of using stdio functions on "FILE", in regards to files used for track data. This allows MemoryStream
114
to be used very easily to preload the track file data into memory, which may be put to use in the future.
116
Implemented FileStream, derived from Stream, as a quick wrapper around FileWrapper(HAH).
119
Map SDL hats to buttons instead of axes in the new joystick interface abstraction code, to prevent loss of information.
122
Entered more information into the possible values enum struct for the *.debugger.disfontsize setting(s) so that the possible values
123
will be in the autogenerated documentation.
126
Added a const char* "Description" member to the "InputDeviceInfoStruct", and did some minor internal plumbing so it will be propagated to the
127
automatically-generated documentation if non-NULL. (For the possibility of more verbose emulated input device information for the
128
*.input.port* settings in the documentation)
131
Increased size of line buffer used in settings file reading.
133
Changed input configuration evaluation code to allow multiple physical mappings to a single emulated analog button/axis to work properly(it is
134
somewhat useful for neGcon emulation).
136
PSX: Added neGcon emulation.
139
Added setting "input.joystick.global_focus".
142
autofirefreq -> input.autofirefreq
143
analogthreshold -> input.joystick.axis_threshold
144
ckdelay -> input.ckdelay
147
PSX: Don't mask the address specified by the memcard write command, but instead signal an error condition if the address is invalid, per
151
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.
154
Only destroy and recreate the emulated device and device state on the port being altered with CTRL+SHIFT+[n], rather than all ports, to
155
avoid usability problems with more complex input devices(like on the PS1 for instance).
157
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
158
configuring input without an emulator exit in-between.
160
August somethingth, 2012:
161
PSX: Added DualShock emulation, complete with Analog mode toggle button emulation.
163
Revamped physical joystick/gamepad support:
164
Added native code targeting DirectInput(5.0) and XInput on MS Windows, and jsdev and evdev on Linux.
166
Added support for rumble on Linux and XInput devices on MS Windows.
168
Refactored and recoded much of the joystick input configuration handling code.
170
Added kludgey support for handling physical joystick analog buttons in the input configuration process without it freaking out:
171
Note: The process described below should NOT be necessary if you're using an XBox 360/XInput controller under MS Windows. If
172
you're using such a controller under a different operating system, or using a non-XBox 360/non-XInput controller, and it has
173
analog buttons, then you should perform the process as described below.
175
Also note that the process is only necessary when you're configuring inputs, and not during "normal" gameplay/usage.
177
Twirl all sticks and D-pads and press all analog buttons on any physical gamepads/joysticks with analog buttons you want
178
to use in the input configuration process, then press F3. Then, configure input as normal. The detected analog buttons
179
will be recognized during input configuration until Mednafen exits; if you exit Mednafen and restart, and want to configure
180
input devices again, you'll need to repeat the twirling-pressing-F3 process again).
183
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.
185
Removed the last vestiges of the driver-side handling of the long since removed/replaced PC-FX multi-resolution-frame multi-layer alpha
189
Added setting "osd.alpha_blend", default value of "1", that controls enabling of OSD alpha-channel blending. Set it to "0" for
190
a speedup when using the "sdl" video.driver.
192
Software("sdl" video driver) render fixes/improvements:
193
Improved precision and rounding behavior with the fixed-point math used for scanline effects and non-integer scaling.
195
Implemented alpha blending for all OSD elements except the FPS display.
197
Added support for the scanlines effect when the screen is rotated(via ALT+O).
199
Fixed a bug that caused an enabled scanline effect to be missing when a special scaler(hq2x, hq3x, scale2x, etc) is used
200
and no post-special-scaler scaling is necessary.
203
Implemented minor optimizations to the "sdl" "video.driver" scanlines effect code.
205
Changed a ton of driver-side OSD rendering code to use MDFN_Surface instead of SDL_Surface.
208
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.
211
Added a non-threaded alternative implementation of CDIF(currently unused, but will be useful if we ever target an OS without multithreading
215
Lynx: Made reporting of errors during game load to be more verbose.
217
GB: Error out if a ROM image to be loaded is less than 512 bytes in size.
219
GB: Don't use TestMagic() in Load(), and don't return -1. (So that -force_module gb will work as expected)