1-- 1.26.1: --
2
3November 8, 2020:
4	PSX: Fixed various inaccuracies in the SPU reverb emulation code.
5
6	PSX: Fixed quasi-benign dereferencing of a null pointer in the GPU code when playing a PSF.
7
8November 3, 2020:
9	SNES-Faust: Fixed a crash when an MSU1-enabled game tried to play MSU1 audio but no audio tracks existed.
10
11	SNES-Faust: Only create MSU1 multithreaded audio reader object if at least one audio track is available.
12
13November 2, 2020:
14	SNES-Faust: Fixed a design flaw in the MSU1 audio track loading code that broke loading of audio tracks when the game's filename included a "%" character.
15
16November 1, 2020:
17	SS: Fixed compilation errors after configuring with --disable-debugger.
18
19	SS: Fixed compilation errors with clang.
20
21-- 1.26.0-UNSTABLE: --
22
23October 26, 2020:
24	SS: Added "The Lost World: Jurassic Park" to the internal database of games to enable full cache emulation with, to fix most rock face graphical glitches.
25
26October 25, 2020:
27	SS: Added "Corpse Killer" to the internal database of games to enable full cache emulation with, to fix the glitchy rotation-zoom effect.
28
29October 24, 2020:
30	SS: Fixed major bug, existing since Saturn save state support was added, in the SCU save state code that caused wrong state to be saved(and later restored)
31	when an SCU DMA level in indirect mode was active.
32
33	SS: Added "Kaitei Daisensou"/"In the Hunt" to the internal database of games to enable SH-2 read/write VDP1 draw slowdown with, to fix FMV tearing.
34
35	SS: Added "Zero Divide" to the internal database of games to use the data cache read bypass kludge with, to fix a graphical glitch with character portraits.
36
37October 23, 2020:
38	SS: Made changes to prevent the CDB emulation from reporting PLAY status until the second sector is read after a seek completes; fixes game-breaking
39	problems in "Break Point", "DJ Wars", "Hop Step Idol", and "Tennis Arena".
40
41	SS: Fixed inaccuracies with how CDB playback buffer full auto-pause and resume works; fixes occasional hangs of finite duration in "Dragon Force II" and
42	"World Cup France '98: Road to Win" when trying to skip FMVs.
43
44October 22, 2020:
45	SS: Added "Mujintou Monogatari R: Futari no Love Love Island" to the internal database of games to use the data cache read bypass kludge with,
46	to fix glitches when character portrait graphics change.
47
48October 21, 2020:
49	SS: Added "Doraemon: Nobita to Fukkatsu no Hoshi" to the internal database of games to use the data cache read bypass kludge with,
50	to fix the blank Game Over screen.
51
52	SS: When a CDB 'Get CD Device Connection' command is issued very shortly after a 'Reset Selector' command, the 'Get CD Device Connection' command
53	will now be executed before the resetting effects of the 'Reset Selector' command occur.  Fixes startup hang in the USA version of "Independence Day".
54
55October 20, 2020:
56	SS: Slowed down emulated VDP1 pixel plotting performance by a bit less than 20%(10% in 8bpp mode); fixes prematurely cut-off voices in "Paneltia Story",
57	and reduces tearing in "Yu-No".
58
59October 18, 2020:
60	SS: Added "3D Baseball", "The Crow", "NBA Action", "NFL Quarterback Club 96", "Solar Eclipse", and "Titan Wars" to the internal database of games to
61	enable full cache emulation with, to fix minor FMV glitches.
62
63	SS: Added "Thunder Force Gold Pack 1" to the internal database of games to enable full cache emulation with, to fix the glitchy ship sprite in the ending
64	of "Thunder Force III".
65
66	SS: Added the Europe releases of "Virtua Cop" and "Virtua Cop 2" to the internal database of games to enable full cache emulation with, to fix
67	startup hangs.
68
69	SS: Added "Yu-No" to the internal database of games to enable full cache emulation with, to fix the problem of the intro FMV ending too soon.
70
71	SS: Added "Horror Tour" to the internal database of games to enable full cache emulation with, to fix graphical glitches on the save and load screens.
72
73	SS: Added "Falcom Classics II" to the internal database of games to enable SH-2 read/write VDP1 draw slowdown with, to fix tearing in the intro FMV of "Ys II".
74
75	SS: Added "Tokimeki Memorial: Forever With You" to the internal database of games to enable SH-2 read/write VDP1 draw slowdown with, to fix the glitchy
76	arm sprite in the Konami intro.
77
78	SS: Added "Virtua Fighter Kids" to the internal database of games to use the data cache read bypass kludge with, to fix a major FMV glitch.
79
80October 17, 2020:
81	SS: Made a very small SSE2-based optimization to the cache tag evaluation code.
82
83October 16, 2020:
84	SS: Removed incorrect write mirrors for the SH-2 CCR register; fixes FMV glitches in "NFL Quarterback Club 97".
85
86	SS: When full cache emulation is enabled(e.g. via database), alternate slave CPU and bus sharing emulation code will be used, to reduce
87	disproportionate sharing of the bus(it's still not perfect, however).
88
89	SS: SH-2 PC-relative MOV.W and MOV.L loads are now correctly treated as instruction fetches instead of data fetches with respect to the
90	OD/ID bits of CCR.
91
92	SS: The SH-2 WB/EX pipeline stall emulation logic is now always enabled, instead of only being enabled in full cache emulation mode as it was previously.
93
94October 12, 2020:
95	SS: Moved SH-2 cache entry invalid bit from bit31 of the internal combined tag variable to bit0, for slightly better code generation.
96
97October 11, 2020:
98	SS: Slave SH-2 on/off is now handled outside of the regular event handling system to prevent a crash under certain conditions.
99
100October 9, 2020:
101	SS: Extended the handling of VDP1 command execution slowdown on SH-2 CPU reads/writes to also include SH-2 DMA accesses.
102
103October 5, 2020:
104	SS: Bumped up minimum seek timing delay, to compensate for upcoming general CPU timing improvements in the games sensitive to seek timing.
105
106October 4, 2020:
107	SS: The SR value loaded with RTE is now properly masked.
108
109October 2, 2020:
110	SS: Allow the SMPC joystick reading process to be aborted earlier on, while still waiting for vblank to end; fixes another hang in "QuoVadis".
111
112	SS: Added "Wolf Fang SS: Kuuga 2001" to the internal database of games to enable SH-2 CPU read/write VDP1 draw slowdown with, to
113	fix glitchy graphics in the player's robot.
114
115	SS: Added "Mahjong Doukyuusei Special" to the internal database of games to use the data cache read bypass kludge with, to fix the missing
116	background graphics layer on disc 2.
117
118	SS: Added "Kidou Senkan Nadesico: Yappari Saigo wa Ai ga Katsu" to the internal database of games to use full cache emulation with, to fix a hang.
119
120	SS: Implemented emulation of the timing effects of the B-bus write buffer on SH-2 CPU writes; fixes hang in "QuoVadis".
121
122September 4, 2020:
123	SNES-Faust: Fixed bug in the multithreaded PPU renderer that could cause massive graphics corruption when a game interleaves reads and writes to
124	VRAM without resetting the VRAM address, like in "NBA Pro Basketball: Bulls vs Blazers".
125
126August 28, 2020:
127	SS: Delay CDB status position info update by about 44us after a seek request(via Play command, or otherwise); fixes missing graphics in
128	the intro of "Magical Drop 3".
129
130-- 1.25.0-UNSTABLE: --
131
132June 27, 2020:
133	SS: Implemented more accurate emulation of VDP1 drawing of excessively-large primitives.
134	It's not perfect, there's still something weird going on with antialiasing, and the effects on gradient shading
135	and texturing are not fully emulated, but it's enough to fix missing graphics in the attract mode of "Virtua Cop",
136	and a hang after defeating the final boss in "Rayman".
137
138	SS: Fixed an off-by-1 inaccuracy in the edge stepping code for sprites and polygons, with minor visible effects in
139	non-rectangular sprites/polygons.
140
141June 26, 2020:
142	SS, MD: Fixed/Implemented M68K MULU and MULS instruction timing.
143
144June 24, 2020:
145	SS: Added wait states to M68K writes; fixes hang in "Lunar" after the Meribia pub singer's singing, that was caused by a timer being
146	reloaded too quickly in an interrupt handler.
147
148June 13, 2020:
149	SS: Allow VDP1 primitive drawing code to be suspended(and later resumed) mid-drawing when it's consumed too much emulated time; fixes excessive CPU usage during
150	the FMV in "Dark Seed II".
151
152June 4, 2020:
153	SS: Added "Senken Kigyouden", "Xian Jian Qi Xia Zhuan", "Virtua Fighter", and "Virtua Fighter Remix" to the internal database of games to
154	enable full cache emulation with, to fix graphical glitches.
155
156May 17, 2020:
157	SS: Implemented more complete emulation of SCSP's buggy(inter-slot contamination) linear interpolation on FM carrier slots.
158
159-- 1.24.3: --
160
161May 1, 2020:
162	SS: Implemented more complete emulation of the SCSP short waveform mode, after running further tests; fixes excessive distortion in a
163	sound effect in "Sega Ages: OutRun", a regression introduced in Mednafen 1.24.2.
164
165-- 1.24.2: --
166
167April 25, 2020:
168	Fixed broken support for systems without any usable OpenGL implementation available.
169
170April 24, 2020:
171	Apple2:  Adjust disk angle variable upon disk change, partially sanitize the disk angle variable on state load, and print out a debug error
172	message instead of triggering an assert() in the disk reading code, to prevent Mednafen from aborting out in certain circumstances involving disk
173	changing and state loading.
174
175April 21, 2020:
176	Apple2: Added missing keyboard reading variable to save states.
177
178April 7, 2020:
179	SS: Fixed a few inaccuracies with the SCSP waveform loop handling.
180
181April 6, 2020:
182	SS: Added emulation of SCSP slot short waveform mode bit.
183
184April 5, 2020:
185	SS: Implemented the buggy linear interpolation that occurs on the SCSP when FM is used.
186
187April 3, 2020:
188	SS: Added emulation of SCSP slot EG bypass bit.
189
190	SS: Implemented SCSP register mirroring.
191
192-- 1.24.1: --
193
194February 27, 2020:
195	NES: Changed some macros in the CPU emulation code to not have leading underscores.
196
197February 25, 2020:
198	Use sem_clockwait() or sem_clockwait_np() when available, instead of sem_timedwait().
199
200	NES: Don't memset() MDFN_PixelFormat object.
201
202February 23, 2020:
203	Fixed build errors on FreeBSD relating to the multithreading code.
204
205February 22, 2020:
206	Fixed broken semaphore emulation code used on non-Windows platforms when sem_timedwait() is not available(1.24.0-UNSTABLE regression).
207
208February 15, 2020:
209	Altered Linux joystick API detection in the configure script, to avoid compiling with Linux joystick support in lieu of SDL joystick support on *BSD systems
210	with Linux header files installed.
211
212February 11, 2020:
213	Fixed AltiVec-related build errors on 64-bit POWER/PPC.
214
215	SS: Added kludges to fix NBG2/NBG3 background layer offset problems in "Fighters Megamix".
216
217February 2, 2020:
218	SNES-Faust: Replaced assert() in the DSP-1 emulation code with a SNES_DBG()
219
220January 23, 2020:
221	PSX: Implemented a partial fix for missing notes/instruments in the music of "Dragon Ball GT: Final Bout".
222
223December 30, 2019:
224	PSX: Don't ignore the sample loop address set via ADPCM header when the loop address register was written only before the end of voice on startup delay.
225	Fixes sound effect glitches in "Re-Loaded: The Hardcore Sequel".
226
227-- 1.24.0-UNSTABLE: --
228
229December 19, 2019:
230	PSX: Handle SPU CD volume as signed 16-bit instead of unsigned; fixes lowest volume setting in "Star Wars Dark Forces".
231
232December 18, 2019:
233	PSX: Tweaked PAL pixel aspect ratio, tweaked nominal FPS values, added setting "psx.correct_aspect", and fixed light gun Y positioning with PAL games.
234
235December 16, 2019:
236	SNES-Faust: Added SDD-1 emulation.
237
238November 26, 2019:
239	SNES-Faust: Allow emulation to switch away from the SPC700 during execution of opcode 0xFA, between the read and write, to fix bonkers
240	audio that leads to a hang in the "Tenshi no Uta" game.
241
242	SNES-Faust: Extended DMA NMI delay kludge to cover 8-bit LDX #imm to fix hang in "Frisky Tom" in "Nichibutsu Arcade Classics".
243
244	SNES-Faust: Added DSP-2 emulation.
245
246November 19, 2019:
247	SNES-Faust: Added MSU1 support.
248
249	SNES-Faust: Added a multithreaded PPU renderer, controlled via the new "snes_faust.renderer" setting, disabled by default.
250
251	SNES-Faust: Added SuperFX overclocking support, controlled via setting "snes_faust.superfx.clock_rate".
252
253	SNES-Faust: Added SuperFX instruction cache emulation support, controlled via setting "snes_faust.superfx.icache", disabled by default.
254
255	SNES-Faust: Added support for Game Genie cheats(entered via Mednafen's cheat system).
256
257	SNES-Faust: Added setting "snes_faust.region" to allow for overriding the automatic region detection and emulating one region while reporting the different region to the game.
258
259November 17, 2019:
260	On Windows, call CoInitializeEx() with COINIT_MULTITHREADED before calling SDL_Init(), to prevent potential initialization errors with Mednafen's
261	WASAPI sound code.
262
263November 16, 2019:
264	Using drive-relative paths on Windows should no longer make a mess due to Mednafen looking for and putting files in the wrong place.
265
266November 14, 2019:
267	SS: Removed "ss.midsync" setting; the functionality it controlled is now always enabled.
268
269	Added settings "affinity.cd", "affinity.emu", "affinity.video", and "ss.affinity.vdp2" to specify CPU thread affinity masks for the CD read threads,
270	main emulation thread, video blitting thread, and Saturn VDP2 rendering thread, respectively. Setting thread affinities properly can improve
271	Saturn emulation performance on a dual-core CPU with hyperthreading.
272
273	Cleaned up multithreading code and API.
274
275November 10, 2019:
276	Removed "using namespace Mednafen;" from types.h, and related changes.
277
278October 25, 2019:
279	SNES-Faust: Ignore frameskip if interlace mode is enabled, to avoid feeding uninitialized data into the deinterlacer which leads to a crash.
280
281September 18, 2019:
282	Implemented workaround in OwlResampler_neon.inc for a C++ parsing bug in gcc 9.x.
283
284September 13, 2019:
285	Apple2: Renamed(with backwards-compatibility aliases) video mode "rgb_alt1" to "rgb_alt" and "rgb_alt2" to "rgb_alt_tfr", and added new video mode "rgb_tfr".
286
287	Apple2: Added support for 32-color custom palettes(will automatically enable a text fringe reduction RGB mode if used).
288
289-- 1.23.0-UNSTABLE: --
290
291August 26, 2019:
292	Apple2: Added support for an RGB-style video mode, selectable with the new setting "apple2.video.mode".
293
294	SS: Added "Shunsai" to the internal database of games to use the data cache read bypass kludge with, to fix various graphical glitches.
295
296August 25, 2019:
297	Expanded and harmonized the accepted value ranges for settings "sfspeed" and "ffspeed" to 0.25 through 15, for greater versatility.
298
299	NGP: Added very incomplete emulation of BIOS system call "VECT_FLASHERS", per tip from stellarporter.  Fixes eventual hang in "The Last Blade".
300
301	NGP: Fixed TLCS-900H new IFF calculation when taking an interrupt, per tip from trinemark.  Fixes broken voice playback in
302	"Densetsu no Ogre Battle Gaiden".
303
304	NGP: Fixed potential division by zero in the TLCS-900H MINC* and MDEC* instructions emulation(the emulation of the instructions is still almost certainly wrong,
305	though), per tip from byuu.
306
307August 24, 2019:
308	PCE: Changed the Super CD-ROM^2 memory identification signature to match a Duo instead of a PCE with a system card, to fix compatibility
309	issues with some US Super CD-ROM^2 games when using a US system card image, per tip from elmer.
310
311August 22, 2019:
312	SS: Added "Ronde" to the internal database of games to use the data cache read bypass kludge with, to fix missing graphics
313	on the title screen and main menu.
314
315August 20, 2019:
316	SS: Added "Thunder Force Gold Pack 1" to the internal database of games to use the data cache read bypass kludge with,
317	to fix explosion graphic glitches in "Thunder Force III".
318
319	SS: Fixed a bug that could cause erroneous VDP1 framebuffer erasure when the lower Y coordinate for the erase window was too large.
320
321August 12, 2019:
322	SS: Added "Thunder Force Gold Pack 2" to the internal database of games to use the data cache read bypass kludge with,
323	to fix quasi-random hangs when pausing the game in "Thunder Force AC".
324
325	SS: Corrected the value the SCU DMA mode registers are initialized to on reset.
326
327June 18, 2019:
328	SS: Added "Formula Grand Prix - Team Unei Simulation" to the internal database of games to use the data cache read bypass kludge with,
329	to fix a hang after the title screen.
330
331	SS: Added "Virtual Mahjong" to the internal database of games to use the data cache read bypass kludge with, to fix graphical glitches on the character
332	select screen.
333
334June 16, 2019:
335	SS: Slowed down SCU DMA from SDRAM/SH-2 bus slightly, though I'm not sure what is the origin of the measured overhead/slowdown on a Saturn.
336	Fixes FMV flickering in "Lunar".
337
338	SS: Added partial emulation(CS0 and CS1, SH-2 non-DMA accesses and SCU DMA accesses) of the timing effects of the SCU A-bus configuration registers.
339
340	SS: Added "Tech Saturn 1997.6" to the internal database of games for which 1MiB RAM cart emulation is enabled, for its "Groove on Fight" demo.
341
342	SS: Implemented a crude simulation of the VDP1 command execution slowdown that occurs when an SH-2 CPU writes to VDP1 RAM or registers, activated
343	via the horrible hacks mechanism; fixes text flickering in "Arcade's Greatest Hits", most rescue text flickering in "Burning Rangers"(at least on the first stage),
344	graphical glitches in "Whizz", and some of the graphical glitches in "All-Star Baseball 97".
345
346	SS: Added a horrible hack to fix the hang in "Fighters Megamix" that occurred after the intro FMV played(or was interrupted).
347
348	SS: Added a horrible hack to fix the hang at the end of disc 1 of "Grandia".
349
350	SS: Added a per-game horrible hacks mechanism.
351
352	SS: Added "Albert Odyssey" to the internal database of games to use full cache emulation with, to fix battle text truncation.
353
354	SS: Added "Die Hard Trilogy", "GeGeGe no Kitarou", "Nobunaga no Yabou Shouseiroku", "Space Jam" to the internal database of games to use full
355	cache emulation with, to fix hangs/crashes.
356
357	SS: Added "Gex" and "Slam 'n Jam 96" to the internal database of games to use full cache emulation with, to fix minor FMV glitches.
358
359	SS: Added "Policenauts" to the internal database of games to use full cache emulation with, to fix screen flickering on disc 2.
360
361	SS: Full cache emulation(enabled via database) now also enables emulation of SH-2 WB/EX pipeline stalls.
362
363	SS: Tweaked the kludgey CPU instruction read/write penalty during SH-2 DMA to be higher in some circumstances; fixes major graphical glitches in the
364	later stages of "Shienryu" when on arcade mode.
365
366	SS: Added "Dragon Force II" to the internal database of games to use the data cache read bypass kludge with, to fix major game logic errors
367	during battles.
368
369March 15, 2019:
370	SNES-Faust: Added CX4, SuperFX, and SA-1 emulation.
371
372	SNES-Faust: Made various changes to try to improve game compatibility.
373
374-- 1.22.2: --
375
376April 23, 2019:
377	PSX: Fixed a regression introduced in 1.22.0-UNSTABLE that broke a few PS1 games(e.g. SimCity 2000 and Rise 2).
378
379	Fixed issues with inline functions in the QuickLZ code that could cause linker errors when compiling with optimizations disabled.
380
381April 14, 2019:
382	Apple2: Added basic WOZ 2.0 disk image support.
383
384April 13, 2019:
385	NGP: Fixed a sequence point rule violation that could cause "Gals' Fighters" to malfunction when Mednafen was compiled with clang,
386	per tip from stellarporter.
387
388	SS: Added the European release of "Theme Park" to the internal database of games to use the data cache read bypass kludge with,
389	to fix a crash/hang during the intro FMV.
390
391	Lynx: Fixed an old heap buffer overflow bug that could be triggered if the emulated game set up registers and RAM in a
392	certain way.
393
394March 18, 2019:
395	PCE: Fixed an old bug(looks like from around a decade ago) in the HES playback code; it caused periodic high IRQ latency,
396	which resulted in timer IRQ-driven DDA playback sounding rougher than it should have.
397
398-- 1.22.1: --
399
400January 27, 2019:
401	Changed the default sound device for the OpenBSD sound driver from "/dev/audio" to "/dev/audio0".
402
403January 26, 2019:
404	Semaphores are now implemented with condition variables and mutexes when compiling against a POSIX threads implementation without sem_timedwait().
405
406January 23, 2019:
407	PC-FX: Replaced old RAINBOW IDCT code with newly-written code.
408
409January 20, 2019:
410	Some hotkeys in the debugger's memory editor weren't being ignored properly when in text entry mode; fixed.  (Regression introduced in 1.21.0-UNSTABLE)
411
412January 1, 2019:
413	Apple2: Corrected minimum allowed value for the "apple2.video.mono_lumafilter" setting(was -2 when it should have been -3).
414
415	SS: Corrected line-scroll handling in double-density interlaced mode with non-zero LSS; fixes broken background graphics effect in Dural's stage in "Virtua Fighter 2".
416
417	SS: Added "Linkle Liver Story" to the internal database of games to use the data cache read bypass kludge with, to fix a crash/hang when going to the world map.
418
419-- 1.22.0-UNSTABLE: --
420
421December 11, 2018:
422	SS: Added support for directly loading <= 1MiB bootable cart ROM images, with the expected file extension being "ss", for debugging and testing
423	purposes.
424
425December 2, 2018:
426	SS: Added "Fighting Vipers" to the internal database of games to use the data cache read bypass kludge with, to fix the problem of the
427	computer-controlled opponent sometimes losing the will to not be a statue.
428
429December 1, 2018:
430	PSX: Memory cards are now backed up on startup(maximum number of backup copies kept for each memory card is 5).
431
432November 30, 2018:
433	PCE: Increased CD read startup delay per tip from dshadoff.  Fixes ADPCM voice playback	issues in "Downtown Nekketsu Monogatari" when text
434	speed is set to fast.
435
436	MD: Fixed a few errors in the internal automatic multitap database, per tip from clobber.
437
438	SS: Added setting "ss.cart.auto_default".
439
440	NES: Removed apparently erroneous iNES header correction database entry for "Dragon Quest II" that was breaking the game.
441
442November 6, 2018:
443	VB: Added the ability to toggle the state of the low battery sensor bit; configure the device on virtual input port 2(e.g. ALT+SHIFT+2) to assign a
444	key/button to this function.
445
446November 4, 2018:
447	PSX: Added a pseudorandom component to Pause command timing to address loading-related hangs in "Colony Wars - Vengeance (Europe)"
448	and "Army Men - Air Attack (Europe)".
449
450	PSX: Generate a seek error if the tray is opened while the CD drive is not stopped; fixes broken disc switching in "Arc the Lad III".
451
452November 3, 2018:
453	PSX: Improved emulation of the behavior of CDC command 0x0A per tests on a PS1; fixes hang in "Goryuujin Electro".
454
455November 2, 2018:
456	PSX: Don't set the autopause track test value unless autopause is enabled; fixes missing music in "Pitball".
457
458	PSX: Delay first CD-DA report after playback begins, per tests on a PS1; fixes missing music in "Roswell Conspiracies - Aliens, Myths & Legends".
459
460October 31, 2018:
461	PSX: Improved timing of CDC command 0x0A per tests on a PS1; fixes missing music and hangs in "Grind Session".
462
463	PSX: Altered seek and pause timing and behavior per tests on a PS1; fixes hangs in "Incredible Crisis", "Ballerburg - Castle Chaos", "Transformers - Beast Wars Transmetals",
464	and "Simple 1500 Series Vol. 057 - The Maze".
465
466October 28, 2018:
467	The settings management code will now throw an exception if a floating-point setting is NaN.
468
469	Fixed a crash that occurred when "debugger.autostepmode" was set to "1" and a game was loaded for a system for which debugger functionality was not implemented.
470
471	NativeVFS, FileStream, and GZFileStream methods taking a path will now throw an error when the path contains a null character.
472
473October 23, 2018:
474	SNES-Faust: Added recognition of files with "fig" and "swc" file extensions as SNES ROM images.
475
476October 9, 2018:
477	Altered the variants of MDFN_rtrim(), MDFN_ltrim(), MDFN_trim(), MDFN_zapctrlchars(), MDFN_strazlower(), MDFN_strazupper(), and UTF8_sanitize()
478	that operate on a mutable std::string to take a pointer to the std::string instead of a non-const reference, and added variants that take a const std::string
479	reference and return a std::string result.
480
481October 8, 2018:
482	Dropped support for "game set" hashes used to change the naming of save state and save game files.  The feature was mostly broken by changes made years ago,
483	and is redundant now with M3U support.  Save game files for multi-disc PC-FX games created in previous versions of Mednafen will need to be renamed to be
484	seen by this and newer versions of Mednafen.  Other files, including save states, should generally be unaffected, unless the user has changed filesys.fname_*
485	settings to use the %F specifier where they wouldn't by default.
486
487	Removed usage of the deprecated "register" keyword in some old code.
488
489October 7, 2018:
490	Adjusted placement of MDFN_FASTCALL and NO_INLINE to fix some compilation errors with MSVC.
491
492	In addition to nonvolatile memory backup files as before, any missing directories in the file path for input-recording movies, save states, screen snapshots, and
493	nonvolatile memory files are now created as necessary, to increase the versatility of the filesys.fname_* settings.
494
495October 6, 2018:
496	Implemented partial virtual filesystem support via classes VirtualFS, NativeVFS, and ZIPReader.
497
498	Emulation modules' loading of files referenced from the main file being loaded is now done through its associated VFS.  This does create a
499	small backwards-compatibility issue with PSF-family(PSF, SSF, GSF, etc.) files, in that previously a ZIP'd PSF-family file that referenced
500	a library file would have the referenced file loaded from the directory containing the ZIP file, but now will
501	have it loaded from within the same ZIP file.
502
503October 4, 2018:
504	NGP: Replaced min/max macros with usage of std::min/std::max.
505
506September 30, 2018:
507	Modified usage of std::swap in OwlResampler.cpp to not explicitly(and unnecessarily) specify the template argument, to fix a compilation error on MSVC.
508
509	Reworked FileStream.cpp to fix some issues causing errors on MSVC.
510
511	GBA: Fixed a regression introduced in 0.9.47 that partially broke compatibility with save states created in previous versions(< 0.9.47), while
512	preserving compatibility for save states created in versions between and including 0.9.47 and 1.21.3.
513
514September 29, 2018:
515	SNES-Faust: Added RAM cheat support(main WRAM only for now).
516
517	SNES-Faust: Added emulation of PPU-area open bus/bus read latches; fixes missing sprites in the water stage of "Mario's Time Machine".
518
519	SNES-Faust: Corrected H/V latch reading to use two separate high/low byte toggles.
520
521September 24, 2018:
522	SNES-Faust: Made minor changes to the CPU emulation core to not require computed goto support in the compiler.
523
524September 23, 2018:
525	Added "blend" and "blend_rg" deinterlacers.
526
527	Moved multithreading management code into the core.
528
529	Encapsulated most(ish) core Mednafen code in the "Mednafen" namespace.
530
531	Slightly improved the quality of audio output by SwiftResampler when running at the higher quality settings.
532
533September 22, 2018:
534	Moved NES audio resampler so it can be used by any emulation module, and renamed it to "SwiftResampler".
535
536	Added an SSE intrinsics-utilizing MAC loop to OwlResampler as a fallback(for the inline assembly) when compiling with MSVC.
537
538	Added an SSE2 intrinsics-utilizing MAC loop to SwiftResampler as a fallback(for the inline assembly) when compiling with MSVC.
539
540September 21, 2018:
541	Wrote new Kaiser-windowed sinc generation code, and modified OwlResampler and the NES resampler to use it.  It shouldn't have any particularly noticeable end-user
542	effects, other than slightly different startup performance(assuming no mistakes were made :p).
543
544September 11, 2018:
545	SS: Emulated input devices' internal states were not being reset on virtual power toggle; fixed.
546
547September 5, 2018:
548	SS: Reorganized SCSP DSP emulation code to make the lifetime of variables clearer, for a possible x86_64 dynarec in the future.
549
550August 30, 2018:
551	Modified SHA-256 hashing code to allow for piecemeal hashing of data, instead of requiring the hash to be generated from one contiguous
552	chunk of memory.
553
554August 8, 2018:
555	PSX: Fixed a startup crash that could occur with a malformed or corrupted SYSTEM.CNF file.
556
557July 31, 2018:
558	Replaced MD5 hashing code with newly-written code.
559
560July 29, 2018:
561	Replaced SDL threading code with new code that uses pthreads directly.
562
563July 28, 2018:
564	Replaced Q subchannel CRC16 calculation code from cdrdao with newly-written code.
565
566July 24, 2018:
567	gzip-compressed ROM/disk image files are now recognized by file extension instead of header magic.
568
569June 13, 2018:
570	SS: Fixed an emulation inaccuracy with the handling of the SH-2 "mac.l" instruction when saturation is enabled, per tests on a SS.
571
572-- 1.21.3: --
573
574April 29, 2018:
575	SNES: Fixed an off-by-1 bug in the PPU code that would cause writing past the end of the OAM tile list array.
576
577April 24, 2018:
578	SS: Added "House of the Dead (Japan)" to internal database of games to use the data cache read
579	bypass kludge with, to fix a game crash on the gun calibration screen.
580
581	SS: Added "Virtua Fighter Kids (Java Tea Original)" and "World Series Baseball" to internal database of games to use the data cache read
582	bypass kludge with, to fix gameplay glitches.
583
584April 22, 2018:
585	Removed some unnecessary memory allocations in the old settings to argument parsing glue code.
586
587	Fixed a crash bug with 2xSaI-family scalers during initialization(regression introduced in 1.21.0-UNSTABLE).
588
589	Create the Mednafen base directory(e.g. ~/.mednafen) before opening the lockfile to fix a startup error when the directory does not already exist(regression
590	introduced in 1.21.0-UNSTABLE).
591
592April 21, 2018:
593	SS: Added kludge to fix layer offset problem in "Alien Trilogy".
594
595	SS: Added "WipEout" to internal database of games to use the data cache read bypass kludge with, to fix a hang that occurred when trying to exit gameplay
596	back to the main menu.
597
598-- 1.21.2: --
599
600April 2, 2018:
601	Updated bundled copy of Tremor to address a security vulnerability.
602
603	SS: Improved emulation of SCU DSP DMA to program RAM, per tests on a SS(still nowhere near perfect, the way it's implemented on hardware is kind of
604	horrible, but it should work ok if games use it how it's meant to be used); fixes graphical glitches in "Shining Force III - Scenario 2", and perhaps
605	in the other "Shining Force III" games as well.
606
607	SS: Flush the prefetched SCU DSP instruction when PC is set via PPAF, instead of when END/ENDI executes or when execution is forcibly stopped, per tests on a SS.
608
609	SS: Disallow SCU DSP LOP from being written in a looped single instruction unless it's the final iteration, per tests on a SS.
610
611	SS: Allow SCU DSP LOP to underflow to 0xFFF with LPS and BTM, per tests on a SS.
612
613-- 1.21.1: --
614
615March 9, 2018:
616	Enabling the automatic save state loading/saving feature will no longer cause an error to be outputted on game load if the save state does not exist.
617
618March 3, 2018:
619	Added support for compiling and linking with external LZO instead of the bundled miniLZO.
620
621	A CD image loading hint will now be appended to the ROM image too large error message in certain circumstances.
622
623February 25, 2018:
624	PC-FX: Added a missing variable to save states.
625
626	(Re)Added backwards-compatibility "video.driver" setting value aliases.
627
628February 24, 2018:
629	NES: Misc minor fixes for a few bootleg mappers.
630
631	NES: Added missing data to VS Unisystem save states.
632
633	NES: Added missing variable to mapper 64 save states.
634
635	NES: Added missing save state support to the mapper 22 code.
636
637	NES: Fixed improper handling of an MMC1 variable in save states.
638
639February 22, 2018:
640	Fixed handling of the "osd.state_display_time" setting to allow a value of "0" to work as expected.
641
642-- 1.21.0-UNSTABLE: --
643
644February 19, 2018:
645	An attempt to run an instance of Mednafen while another instance is already running with the same base directory is now blocked during startup, via
646	a lock file; note that this check occurs after stdout and stderr are potentially redirected to stdout.txt and stderr.txt on Windows.
647
648February 15, 2018:
649	Changed the default value of setting "video.driver" from "opengl" to "default", removed the old "0" and "1" backwards-compatibility value aliases,
650	renamed the "sdl" driver to "softfb"(without backwards-compat aliases), and made it so the setting's value will be reset to "default" after
651	automatically importing settings from "mednafen-09x.cfg".
652
653	On Windows, no longer exit on ALT+F4 while input is grabbed.
654
655	Added settings "fps.autoenable", "fps.position", "fps.textcolor", and "fps.bgcolor".
656
657February 11, 2018:
658	Removed reliance on malloc(), realloc(), and calloc() setting errno to ENOMEM on failure, since it's not the case on Windows XP, and possibly other
659	platforms/operating systems too.
660
661February 9, 2018:
662	ZIP files are now recognized by file extension instead of by magic(wizards).
663
664	Replaced old minizip code with newly-written ZIP archive reading code.
665
666	Replaced MDFN_PrintError() and MDFN_DispMessage() with MDFN_Notify().
667
668February 6, 2018:
669	Use versionsort() instead of alphasort() when scanning for js* joystick devices on Linux.
670
671February 1, 2018:
672	Added settings "fps.scale" and "fps.font".
673
674January 31, 2018:
675	On Windows, in-memory conversion of M3U and CUE files to UTF-8 will be attempted if they lack a UTF-8 BOM and contain byte sequences that are not
676	valid UTF-8.
677
678	On Windows, path/filename settings loaded from the old mednafen-09x.cfg(before being saved to mednafen.cfg on exit) will now be converted to UTF-8.
679
680January 29, 2018:
681	Added support for pasting text into the cheat and netplay consoles.
682
683January 28, 2018:
684	SS: Added Japanese keyboard emulation.
685
686	SS: Improved VDP2 window Y coordinate evaluation emulation; fixes at least one background layer graphical glitch
687	in "Radiant Silvergun"(at the start of stage 2C), and the graphical glitch near the end of the intro in "Snatcher".
688
689January 20, 2018:
690	Altered calculations involving *.xscale(fs)/*.yscale(fs) settings to be more predictable given floating point nuances; any user using non-integer scaling values
691	for these settings may need to adjust them to get the same result as in previous versions of Mednafen, however.
692
693	Added setting "video.fs.display".
694
695January 18, 2018:
696	SDL2(2.0.5+) is now used and required.
697
698	Removed the "overlay" video driver.
699
700	On Windows, error messages during startup will now be displayed in a popup message box.
701
702	On Windows, Mednafen will now output text to a console if it's started from a console(e.g. cmd.exe or Cygwin), and if not, write
703	to stdout.txt and stderr.txt like before.
704
705	On Windows, Mednafen now uses Unicode variants of CRT and Win32 functions; this may require the user to convert their CUE sheets to UTF-8 if filenames use
706	exotic(e.g. not directly typable on a standard US-layout keyboard) characters.
707
708	For key bindings relating to the debugger and cheat management interface, the Right ALT key modifier will no longer be respected(only the Left ALT has
709	any effect now), for internationalization reasons.
710
711	The configuration file is back to "mednafen.cfg" instead of "mednafen-09x.cfg".  If a 0.8.x "mednafen.cfg" is in the way, it will be renamed.  If "mednafen.cfg"
712	does not exist, or is from an old version of Mednafen, settings will initially be loaded from "mednafen-09x.cfg", but still saved to "mednafen.cfg" on exit(and
713	loaded from "mednafen.cfg" from that point on).
714
715	Reworked the input mapping setting format to be more human-readable(and editable).  Details are in the documentation, in the "Advanced Usage" section.  Old
716	input mappings will be translated internally, except for keyboard mappings, due to incompatibilities between how SDL 1.2 and 2 handle keyboards.
717
718	Added support for mapping joystick axes and buttons, mouse buttons, and keyboard keys to emulated mouse device relative motion for testing purposes(via
719	manually editing the configuration file, as the in-emulator configuration process currently won't create such mappings).
720
721	Added support for digital button input mappings that mix AND, ANDNOT, and OR-style operations together(previously it was either just AND or OR); refer to the
722	documentation for more details.  Note that the in-emulator configuration process won't create complex mappings that mix different boolean operations,
723	but you can map combinations using simpler logic in-emulator, and then edit the configuration file to adjust the boolean operations used.
724
725January 15, 2018:
726	SS: Fixed a bug that caused a crash if an error occurred early in the process of loading a game.
727
728	Updated the configure script to disable gcc's mitigations for Spectre, in the event distributions configure their compilers to enable them by default.
729
730	Stopped (erroneously) memset()'ing some MDFN_PixelFormat objects.
731
732January 12, 2018:
733	Cleaned up the handling and reduced the size of axis-related inputs as communicated from the driver-side code to core Mednafen.
734
735	PCE_FAST: Fixed fubared mouse emulation.
736
737December 28, 2017:
738	Replaced usage of strcasecmp() and strncasecmp() with MDFN_strazicmp(), for consistent behavior across locales.
739
740	Added MDFN_strazlower(), MDFN_strazupper(), MDFN_memazicmp(), and MDFN_strazicmp() functions.
741
742December 14, 2017:
743	SS: Fixed a logic error in the BIOS sanity check code that caused it to throw a less helpful error message than intended in certain circumstances, and
744	made the error messages related to BIOS file misconfiguration more verbose(and hopefully more helpful...).
745
746December 6, 2017:
747	Fixed broken cheat file saving on MS Windows.
748
749November 12, 2017:
750	Changed how some multidimensional arrays and arrays of structs are accessed, to try to avoid behavior that's probably undefined and may be a problem
751	in the future.
752
753	PC-FX: Fixed integer overflows that caused fatal division by zero when Mednafen's cheat functionality was used(a regression introduced around 0.9.39).
754
755	SS: Stuck SCU DMA table arrays in a struct to avoid unspecified behavior in the SCU save state code.
756
757-- 0.9.48: --
758
759September 16, 2017:
760	Set cheat's default endianness to that preferred by the system being emulated when manually adding a cheat that's not
761	a cheat device code nor the result of a cheat search.
762
763September 15, 2017:
764	SS: Fixed SCU DSP DMA from B-bus; fixes the periodic loud popping in Grandia's FMV.
765
766September 12, 2017:
767	SS: Added a hack/kludge to allow bypassing of data cache on reads(such that the timing benefits of partial cache emulation are preserved, without cache
768	coherency problems that partial cache emulation sometimes leads to with poorly programmed games), and added an internal database to enable it on select games;
769	fixes graphical glitches and/or hangs in "Area 51 (USA and Europe)", "Clockwork Knight 2 (USA)", "DeJig - Lassen Art Collection", "Father Christmas",
770	"Golden Axe The Duel", "Sega Saturn Choice Cuts", "Spot Goes to Hollywood (USA and Japan)", "Street Fighter Zero", "Street Fighter Zero 3",
771	"Super Puzzle Fighter II Turbo", and "Virtual Volleyball".
772
773	SS: Full cache emulation is now enabled for "Whizz"(by using an internal database), to resolve(or at least reduce) quasi-random hanging issues during startup.
774
775September 11, 2017:
776	SS: Corrected an inaccuracy with CDB play repeat handling; fixes hang when trying to resume a suspended game in "Tactics Ogre".
777
778	SS: Initialize VDP1 clipping and local coordinate registers only on power-on, and not on reset.
779
780September 7, 2017:
781	SS: Fixed side-effect inaccuracies in the CDB Put Sector Data, Copy Sector Data, and Move Sector Data command emulation.
782
783September 6, 2017:
784	Added configure option "--with-external-trio", for distribution packagers.
785
786	SS: Added partial emulation of SH-2 external bus open bus behavior; fixes messed up colors in "Discworld 2".
787
788September 4, 2017:
789	SS: Improved CDB Initialize command emulation; fixes crash in "Tenchi Muyou! Ryououki Gokuraku" when it tries to play an opening movie during startup.
790
791August 28, 2017:
792	SS: Made CD seek overhead calculation less completely wrong; fixes graphics corruption in intro of "Batman Forever", and fixes hang in "Jung Rhythm" when
793	trying to retry a failed stage.
794
795-- 0.9.47: --
796
797August 25, 2017:
798	Lynx, MD, NGP, SMS: Added a few missing variables to save states.
799
800August 24, 2017:
801	SS: Added save state support.
802
803	Revamped save state helper macros and functions, to allow save-stating of variables in arrays of structs to be simpler.
804
805August 22, 2017:
806	SS: Fixed BCR1 write protect, and added stub emulation of the other BSC registers.
807
808	SS: Added incomplete stub Action Replay 4M Plus emulation(for experimentation); proper Action Replay support would require SH-2 UBC emulation, and that
809	may be too costly performance wise.
810
811August 21, 2017:
812	SS: Implemented very rough approximation of bus timing side effects when master SH-2 DMA is active(accurate handling of bus priorities and sharing would increase
813	CPU requirements noticeably, but it may ultimately be necessary as a database-driven option for some stubborn games in the future).  Fixes startup hangs in
814	"Device Reign", "Real Sound", "Resident Evil", "SD Gundam G Century S", "Super Tempo", "Tennis Arena", "Tilk", "Yuukyuu Gensoukyoku",
815	"Yuukyuu Gensoukyoku 2nd Album", "Yuukyuu Gensoukyoku ensemble", "Yuukyuu Gensoukyoku ensemble 2", "Yuukyuu no Kobako Official Collection", and "Zero4 Champ".
816
817-- 0.9.46: --
818
819August 10, 2017:
820	Compile with explicit -fstrict-aliasing, for distributions/OSes that have configured gcc to not enable strict aliasing at -O2(and possibly other levels).
821
822	Fixed a bug that could, under certain conditions, cause emulator OSD elements to not be updated in the time after entering frame advance mode
823	and before a frame advance.
824
825August 7, 2017:
826	Use a sorted std::vector instead of std::multimap to store current settings, to reduce memory usage.
827
828August 6, 2017:
829	SS: Added ss.input.port*.3dpad.mode.defpos settings to control the default position of the digital/analog mode switch.
830
831August 5, 2017:
832	Allow addresses above FFFF to be entered as the logical watch address in the debugger.
833
834August 4, 2017:
835	SS: Added kludge to fix layer offset problem in "Daytona USA CCE".
836
837	NES: The functionality controlled by setting "nes.fnscan" now recognizes "(F)" and "(France)" as PAL.
838
839	NES: Added support for iNES mapper 40.
840
841July 11, 2017:
842	Utilize _byteswap_*() functions in endian.h when compiling with Microsoft's C++ compiler.
843
844June 22, 2017:
845	Fixed a couple of minor issues(log header formatting, and skipped logging of first instruction in step mode) with the debugger's undocumented trace log feature.
846
847	NES: Corrected the period of PAL noise channel frequency setting 0x1.
848
849June 21, 2017:
850	NES: Fixed a few square wave sound channel emulation bugs(wrong phase for duty setting 3, and failing to clock the period counter when the channel is silenced).
851
852-- 0.9.45.1: --
853
854June 5, 2017:
855	SNES: Fixed an instance of possibly-undefined behavior.
856
857	Silenced dumb warning spam relating to endian.h emitted by newer versions of gcc.
858
859June 4, 2017:
860	Fixed garbled audio with the exclusive-mode WASAPI sound driver on some higher-end sound cards(regression introduced in 0.9.45 due to a mistake in changing
861	the meaning of a macro field during development); may also fix garbled audio when using the new OpenBSD sound driver with certain sound cards.
862
863-- 0.9.45: --
864
865May 29, 2017:
866	Tweaked netplay sound buffer underrun kludge code.
867
868	The netplay server host and port being connected to are now printed to the netplay console at the beginning of a connection attempt.
869
870	Netplay connection attempts to servers are now non-blocking.
871
872May 25, 2017:
873	SS: Synchronize end of SMPC clock change commands to beginning of vsync instead of beginning of vblank, per tests on a SS.
874
875May 23, 2017:
876	SS: Reworked how the VDP2 rendering thread waits, to make Saturn emulation usable with the default OpenBSD kernel.
877
878	SS: Added emulation of the light gun("Stunner"/"Virtua Gun").
879
880April 28, 2017:
881	#include'd many commonly-used C and C++ standard library headers in types.h(and removed redundant #include statements from various header and source files), to
882	reduce the probability of portability problems(due to neglecting to explicitly include a header file) when different standard C/C++ libraries
883	behave differently in regards to what header files include what other header files.
884
885	Added a sound output driver for OpenBSD's /dev/audio.
886
887	Reworked the sound output format conversion code to be more versatile,
888
889April 25, 2017:
890	NES: Wrote new "Barcode Battler II" emulation code to replace the old "Barcode World" code, based on quick testing with actual hardware(albeit the English version).
891
892April 24, 2017:
893	SSFPlay: Added save state support.
894
895-- 0.9.44.1: --
896
897April 21, 2017:
898	MD: Added a missing MDFN_FASTCALL, the absence of which broke 32-bit x86 builds(either at link time or run time).
899
900-- 0.9.44: --
901
902April 19, 2017:
903	PSX: Restructured the GPU emulation code and data a bit to get a minor performance boost.
904
905April 18, 2017:
906	VB, PCE, WonderSwan, MD, GBA: Use fastcall calling convention(on 32-bit x86) in a few (more) places where it makes sense.
907
908April 16, 2017:
909	SNES-Faust: Added setting "snes_faust.correct_aspect", default value of "1".
910
911	SNES-Faust: Added PAL support.
912
913April 14, 2017:
914	SNES-Faust: Made minor optimizations to the BG rendering code.
915
916April 9, 2017:
917	Added command-line option "-which_medium", to specify which CD to start with when using multi-CD M3U sets.
918
919April 5, 2017:
920	SNES: Fixed emulator hang when saving state in "Panic Bomber W".
921
922April 3, 2017:
923	Added some simple scripts to cross-compile and package Mednafen for Windows.
924
925	Added Windows cross-compiler toolchain setup notes.
926
927	32-bit Windows builds are now compiled with -march=i686 instead of -march=i586(shouldn't affect compatibility for official builds, since the toolchain
928	and libraries were already effectively being compiled with -march=i686, which was not intended, but since nobody apparently complained... ;p).
929
930March 25, 2017:
931	VB: Added support for custom palettes.
932
933	VB: Reworked how LED on-state duration is translated into RGB values and added setting "vb.ledonscale"; the default value of "vb.ledonscale" is
934	set such that the overall brightness will be lower than in previous versions of Mednafen, to reduce white crush, but the user can set it
935	to a value of "1.9921875" to approximate the old brightness level.
936
937March 20, 2017:
938	SNES: Made a couple of SDD1 registers readable; fixes "Tractor Beam" spell graphical glitches in "Star Ocean"(thanks to orbea).
939
940March 17, 2017:
941	SS: Added support for a 16MiB RAM cart mapped into the A-bus CS1 area(for "Heart of Darkness" and homebrew).
942
943March 15, 2017:
944	WonderSwan: Removed setting "wswan.rotateinput", and added a new device("gamepadraa") that can be selected on virtual input port 1 to
945	automatically rotate inputs when the display is rotated.
946
947March 14, 2017:
948	Reworked text drawing to not use an excessive number of potentially-large VLAs.
949
950	Moved statements with important side effects outside of assert()s in settings.cpp.
951
952	Replaced ancient Unicode conversion code with newly-developed code.
953
954March 7, 2017:
955	SS: Prioritize SMPC command execution over VBlank handler execution, per (limited) tests on a SS.  Fixes broken input in "Primal Rage"(a 0.9.43 regression).
956
957-- 0.9.43: --
958
959February 24, 2017:
960	Reworked how input grabbing is handled.  The new way uses only one key combo(CTRL+SHIFT+Menu), and will adapt its behavior based on any keyboards
961	being selected on any virtual input ports or not(refer to the documentation for full details).  A new setting is added, "command.toggle_grab", and
962	two settings were removed, "command.toggle_grab_input" and "command.toggle_cidisable".
963
964	Emulated keyboard(FKB, Tsushin, Saturn) key state is now only updated when input grabbing is toggled on.
965
966February 22, 2017:
967	SS: Fixed SMPC read handling of an empty input port.
968
969	SS: Implemented emulation of SMPC 0-byte port read mode.
970
971	PSX: Reduced rumble latency by 1 frame.
972
973February 20, 2017:
974	Reworked how keyboard key state is handled, to prevent extremely short button presses from being lost(like what can happen with the Pause key, or
975	other keys when slow-forwarding is active).
976
977	SS: Added 101-key US keyboard emulation.
978
979February 17, 2017:
980	SS: Allow SMPC commands to be dual-issued; fixes hang in "F1 Challenge", and hangs/missing sound in "Magic Knight Rayearth".
981
982	SS: Added emulation of the 6-Player Adaptor(multitap).
983
984February 15, 2017:
985	SS: Added emulation of the Mission Stick and Dual Mission Sticks.
986
987February 13, 2017:
988	SS: Added emulation of the steering wheel("Arcade Racer"), for use with "Virtua Racing", "High Velocity - Mountain Racing Challenge",
989	"The Need for Speed", and other Saturn racing games that apparently lack 3D pad support.
990
991-- 0.9.42: --
992
993February 7, 2017:
994	SS: Ignore lower bit of VDP1 sprite draw command texture base address when drawing using color mode 5, per tests on a SS; fixes some of the
995	graphical glitches in "All-Star Baseball 97".
996
997February 6, 2017:
998	SS: Ignore writes to VDP1 registers via SCU DMA under certain conditions to approximate what happens on a SS; fixes hang in "GunBlaze-S".
999
1000	SS: Fixed handling of RSTCSR WOVF clearing, per tests on a SS.  Also changed the semantics of RSTCSRM a bit to simplify things, might want to change
1001	WTCSRM, FTCSRM, etc. semantics too in the future for consistency...
1002
1003	SS: Fixed handling of WTCSR OVF clearing, per tests on a SS.
1004
1005	Updated tremor to revision 19427.
1006
1007	Updated libogg to version 1.3.2.
1008
1009	Fixed a bug that caused a crash if the user tried to select(via CTRL+SHIFT+[n]) a device on a non-existent virtual input port.
1010
1011February 5, 2017:
1012	SNES-Faust: Added multitap support.
1013
1014February 3, 2017:
1015	SS: Fixed a bug in the handling of M68K level 7 interrupts; fixes missing sound in "Arcade's Greatest Hits".
1016
1017February 1, 2017:
1018	SS: Suspend VDP1 command processing while an SCU DMA from SDRAM to VDP1 VRAM is active, to approximate how a SS behaves.  Fixes FMV tearing
1019	in "Johnny Bazookatone", and fubared graphics in "Virtua Cop" and "Virtua Cop 2".
1020
1021January 31, 2017:
1022	SS: Fixed handling of clearing FTCSR bits, per tests on a SS.
1023
1024January 30, 2017:
1025	SS: Improved instruction timing(though still far from perfect); fixes speed problems in "Pocket Fighter", reduces the size of the flickering
1026	area in "Lunar"'s FMV, and fixes the crash that occurs immediately after gameplay starts in "Virtua Fighter" and "Virtua Fighter Remix".
1027
1028January 26, 2017:
1029	NES: Added support for iNES mapper 190.
1030
1031January 25, 2017:
1032	SS: Clear SCU internal pending interrupt bit upon the SCU's acceptance of the IRQ to send to the SH-2, instead of when the SH-2 fetches the vector, per
1033	tests on a SS.
1034
1035-- 0.9.41: --
1036
1037January 21, 2017:
1038	SS: Implemented disc change IRQ on disc eject.
1039
1040January 20, 2017:
1041	Replaced usage of trio_snprintf() to a fixed-size buffer for path construction in general.cpp with manual concatenation of std::string strings.
1042
1043January 18, 2017:
1044	Use _beginthreadex() instead of CreateThread() on Windows, to avoid a small memory leak.
1045
1046	Now explicitly use 64-bit walltime functions on 32-bit Windows builds.
1047
1048January 17, 2017:
1049	PCE, PCE_FAST: Added a missing sound emulation variable to save states.
1050
1051January 16, 2017:
1052	SNES: Added setting "snes.h_blend", default value of "0", that when set to "1" will enable a horizontal blend/blur filter.
1053
1054January 15, 2017:
1055	PCE: Improved SuperGrafx window handling in 10MHz dot clock modes.
1056
1057	GBA: Modified RTC emulation to not use standard C library walltime functions during emulation.
1058
1059	Wrapped various time functions, and dropped the dependencies on SDL time functions, in Time.cpp/Time.h.
1060
1061January 14, 2017:
1062	WonderSwan: Fixed off-by-1 bugs in window coordinate evaluation, per tip from trap15.
1063
1064	WonderSwan: Fixed copyright notice headers to not allow distribution under versions of the GPL other than version 2(an oversight from
1065	back when the Cygne code was added to Mednafen).
1066
1067	WonderSwan: Applied sound and DMA emulation fixes from trap15; fixes rain sound effect in "Star Hearts".  The changes did necessitate lowering
1068	the overall WonderSwan sound emulation volume a bit to prevent excessive clipping, however.
1069
1070January 12, 2017:
1071	SS: Fixed a logic error in the VDP2 rendering code; fixes battle scenes in "Grandia".
1072
1073January 10, 2017:
1074	SS: Removed a few bad entries in the internal region-correction database that were breaking the Korean releases of some games.
1075
1076January 9, 2017:
1077	PCE, PCE_FAST: Added support for auto-enabling SuperGrafx emulation with CDs when a mode 1 data track has the 16-byte magic
1078	"4D 65 64 6E 61 66 65 6E 74 AB 90 19 42 62 7D E6" at offset 0x86A(assuming 2048 bytes per sector), for homebrew and translations.
1079
1080January 7, 2017:
1081	SS: Added emulation of the SCSP 18-bit DAC enable bit; fixes low volume problem in "Daytona USA".
1082
1083	SS: Fixed some bugs that broke emulation on big-endian platforms.
1084
1085January 5, 2017:
1086	Fixed an off-by-1 memory corruption bug in the debugger's memory editor relative bytestring search code.
1087
1088	VB: Finally commented out some debug printf()s.
1089
1090January 1, 2017:
1091	Cleaned up code that passes video data from the game thread to the main thread, and replaced some volatile usage with atomics.
1092
1093December 31, 2016:
1094	Fixed a large memory leak that occurred when saving screenshots with SHIFT+F9.
1095
1096	VB: Fixed a regression introduced in 0.9.39.2 that caused transient sound/note distortion on save state load.
1097
1098December 27, 2016:
1099	Moved TCP/IP networking code into the core of Mednafen, and added support for non-blocking connects, so the Saturn emulation module can eventually use
1100	it for modem emulation.
1101
1102December 25, 2016:
1103	Modified configure script to (hopefully) compile in the Saturn emulation module when building for PPC64 and AArch64 architectures(in addition to x86_64).
1104
1105December 21, 2016:
1106	Allow emulated digital button mappings to be used in AND mode(like command keys configured with SHIFT+F2) if the user manually
1107	prefixes the "/&&\ " magic string to the mapping setting string in the configuration file.  Can be useful with emulated switches and mode toggle buttons,
1108	but the in-emulator input configuration process will need to be revamped before enabling this mode for a mapping can be done in a sane and
1109	more user-friendly manner.
1110
1111	Rewrote round_up_pow2() in math_ops.h to use MDFN_log2, which in turn uses MDFN_lzcount*(), since the major CPUs that Mednafen is going
1112	to run on should have dedicated instructions to (at least indirectly) count leading zeroes.  Also changed the semantics to return 0 on overflow instead of 1.
1113
1114December 20, 2016:
1115	SS: Now use leading-zero counting function from math_ops.h in the VDP2 rendering code, instead of using inline assembly.
1116
1117	Reorganized the leading/trailing bit counting functions in math_ops.h, added 32-bit and 64-bit trailing-bit counting functions, and added faster
1118	variants where passing a 0 results in an undefined result.
1119
1120December 19, 2016:
1121	Print out the game key used after a connection is established with netplay, when the game key is not empty.
1122
1123	SMS: Added settings "sms.slstart", "sms.slend", "sms.slstartp", and "sms.slendp".
1124
1125	Added some checks to help prevent a black screen when the scanlines effect is enabled via a <system>.scanlines setting and the effective Y scale is
1126	too small(by forcing negative-value behavior in the case of interlaced video, or temporarily disabling the effect otherwise).
1127
1128December 18, 2016:
1129	PSX: The functionality controlled by the "psx.input.analog_mode_ct" setting no longer interferes with netplay.
1130
1131	PSX: Added "psx.input.analog_mode_ct.compare" setting to control the combination of buttons used when the functionality controlled by the
1132	"psx.input.analog_mode_ct" setting is enabled.
1133
1134	Modified build system to use $(localedir) instead of $(datadir)/locale for LOCALEDIR define.
1135
1136	Updated miniLZO to version 2.09.
1137
1138December 14, 2016:
1139	SS: Added setting "ss.h_blend", default value of "0", that when set to "1" will enable a horizontal blend/blur filter(with a much noticeable effect on the
1140	Saturn video modes with a higher horizontal resolution).
1141
1142December 10, 2016:
1143	SS: Added setting "ss.h_overscan", default value of "1", to allow the user to show less of the screen on the left and right sides by setting it to "0".
1144
1145December 9, 2016:
1146	SS: Added setting "ss.correct_aspect", default value of "1", to allow the user to disable aspect ratio correction(not recommended, but whatever~).
1147
1148	Added simple TV CRT-approximating OpenGL shader, "goat".
1149
1150December 8, 2016:
1151	Renamed settings "*.pixshader" to "*.shader".
1152
1153December 7, 2016:
1154	Check for and use -no-pie instead of just -nopie in the configure script, to fix build failures on at least one platform.
1155
1156December 6, 2016:
1157	Fixed half-source-pixel image offset bug in the "autoip", "ipxnoty", and "ipynotx" pixel shaders.
1158
1159	Fixed altivec.h header detection regression in 0.9.39.
1160
1161October 7, 2016:
1162	Fixed a bug that caused input movie recording to produce broken recordings when done during netplay with an emulation module
1163	that uses mid-frame sync functionality.
1164
1165-- 0.9.39.2: --
1166
1167September 19, 2016:
1168	SMS: Sanitize some previously-missed variables in the save state loading code.
1169
1170September 18, 2016:
1171	MD: Fixed a bug that caused some YM2612 state to not be restored properly on save state load.
1172
1173	MD, SMS, NGP: Fixed an old Z80 emulation bug with interrupt handling.
1174
1175	Make an index of save state sections on save state load, to detect sections in a save state that are unused by the state loading code(for debugging).
1176
1177	MD, PCE, PCE_FAST: Sanitize some previously-missed variables in the save state loading code.
1178
1179September 16, 2016:
1180	SS: Added PAL support.
1181
1182	SS: Fixed vertical positioning brokenness with custom "ss.slstart" setting values with interlaced video.
1183
1184September 15, 2016:
1185	PC-FX, WonderSwan, NES, VB, PSX: Sanitize some previously-missed variables in the save state loading code.
1186
1187	Fixed a use-after-free bug in the SDL sound output driver.
1188
1189	NGP: Fixed several off-by-1 bugs in the address to ROM data translation function.
1190
1191September 11, 2016:
1192	Removed nonsensical unused frame advance loop in drivers/main.cpp leftover from 0.5.x.
1193
1194	PCE_FAST: Fixed a bug that could cause a crash with large "pce_fast.ocmultiplier" setting values when running CD games.
1195
1196September 10, 2016:
1197	PCE_FAST: Skip 512-byte copier header if detected when loading a ROM image.
1198
1199	PCE_FAST: Made some minor optimizations.
1200
1201	PCE, PSX, PCE_FAST: Avoid UB by biasing uintptr_t values instead of pointers directly in the CPU core.
1202
1203September 1, 2016:
1204	GB: Corrected the layer names used with the layer toggling feature.
1205
1206August 26, 2016:
1207	SS: Fixed a potential problem with SH-2 DMA event rescheduling when bus lock is held, that probably wouldn't ever happen in practice.
1208
1209	NES: Fixed several instances of missing initialization of on-cart WRAM.
1210
1211August 24, 2016:
1212	SS: Marked more functions with MDFN_COLD hint, and marked a few functions to be forcibly-inlined where it makes sense.
1213
1214August 23, 2016:
1215	SNES: Fixed an issue causing a compilation error on Mac OS X.
1216
1217-- 0.9.39.1: --
1218
1219August 22, 2016:
1220	SS: Settings "ss.dbg_mask" and "ss.dbg_exe_cdpath", and the functionality they control, are no longer available unless Mednafen has been compiled with
1221	"MDFN_SS_DEV_BUILD" defined(such as with -DMDFN_SS_DEV_BUILD=1 in CPPFLAGS env var passed to configure).
1222
1223	SS: Replaced some instances of case ranges with more portable constructs.
1224
1225August 20, 2016:
1226	SS: Run VDP1 vblank erase at end of vblank, so we know how much time we have and thus how many entries in the framebuffer we'll be able
1227	to erase.  Currently, the available time calculations are generous, allowing for a bit more erase than what's possible on a Saturn, but we can tighten
1228	it up in the future once it's fairly certain there aren't any more event scheduling accuracy issues.  Fixes FMV subtitle text in "Panzer Dragoon".
1229
1230	SS: Fixed a bug that caused VDP2 frames to be short by 1 to 3 CPU cycles.
1231
1232	SS: Reschedule the SH-2 DMA event handler as necessary to prevent it from running when the SH-2 bus is locked.
1233
1234	SS: Force the SH-2 DMA and SCU DMA event handlers to be rescheduled to SH7095_mem_timestamp time when necessary.
1235
1236	SS: Check for pending events right before calling VDP1, VDP2, SMPC, and SCU regs read/write handlers, which may then call their own event update
1237	functions.
1238
1239August 17, 2016:
1240	Fixed an old bug that could cause a startup crash on Windows systems without XInput DLLs installed(e.g. some Windows XP systems).
1241
1242	NES: Fixed a very old bug triggered when disabling(via CTRL+1) the background layer, that would cause sprite pixels to also be visually disabled too under certain
1243	circumstances.
1244
1245August 16, 2016:
1246	MD, PC-FX: Fixed several instances of left-shifting negative values.
1247
1248August 15, 2016:
1249	SS: Fixed a compilation error when compiling with the debugger disabled("--disable-debugger" passed to configure).
1250
1251	Added configure options "--with-external-mpcdec" and "--with-external-tremor", for distribution packagers.
1252
1253	SS, SNES-Faust: Fixed a few issues causing compilation errors on clang.
1254
1255	SS: Tweaked how seek command pause works; fixes a lockup issue in "Astal".
1256
1257August 11, 2016:
1258	WonderSwan: Fixed a bad usage of "char" without an unsigned/signed qualifier.
1259
1260	SS: Slow down SCU DMA to VDP2 VRAM under certain conditions.
1261
1262August 10, 2016:
1263	SS: Adjusted VDP1 polygon and line draw commands to behave as if SPD=1, ECD=1 when color mode >= 6; fixes missing graphics problem in "Hi-Octane".
1264
1265August 8, 2016:
1266	SS: Reworked SCU DMA's timekeeping and scheduling code to be more accurate; reduces the size of the flickering section of the FMV in "Lunar".
1267
1268	SS: Fixed handling of CPU<->SMPC open bus.
1269
1270August 7, 2016:
1271	Relaxed the CloneCD Q subchannel sanity checks to allow a track number of 0xAA(leadout).
1272
1273August 6, 2016:
1274	SS: Implemented kludgy(incomplete) support for quasi-illegal window X start position values; fixes ground layer issues in the forest stage of
1275	Panzer Dragoon 2.
1276
1277-- 0.9.39-UNSTABLE: --
1278
1279August 4, 2016:
1280	Put "official" -mtune and -march build flags for Windows targets into configure.ac.
1281
1282July 27, 2016:
1283	The version is now displayed in the upper right-hand corner of the F1 help screen.
1284
1285June 28, 2016:
1286	PSX: Modified GTE emulation to inline instruction-handling functions, to not unroll large loops, and to use MDFN_lzcount32() for LZCS/LZCR register
1287	calculation.
1288
1289June 27, 2016:
1290	SNES: Modified libco to use __attribute__((section(".text"))) on the libco swap function data arrays, instead of calling
1291	mprotect()/VirtualProtect().
1292
1293June 24, 2016:
1294	PSX: Rearranged CPU structure layout to improve performance a little on ARM CPUs.
1295
1296June 20, 2016:
1297	PSX: Don't specially compile the code with -mmx -msse -msse2 on 32-bit x86, to avoid potential ODR violations.
1298
1299June 19, 2016:
1300	NES: Added ARM NEON support to the resampler.
1301
1302June 18, 2016:
1303	NES: Enabled SSE2 support in the resampler, though only enabled(through rough heuristics) when likely to have a performance benefit over MMX.
1304
1305June 17, 2016:
1306	NES: Made resampler's coefficient memory layout more optimal.
1307
1308	PCE, PC-FX: Added ARM NEON support to the resampler(though it's only compiled in when the compiler is setup to use NEON, such as by passing -mfpu=neon).
1309
1310June 16, 2016:
1311	PCE, PC-FX: Added AVX support to the resampler.
1312
1313	PCE, PC-FX: Made resampler's coefficient memory layout more optimal.
1314
1315June 14, 2016:
1316	PCE: Allocate HuC6280 objects statically instead of dynamically, and removed a layer of indirection for the event handler
1317	pointer.
1318
1319	PCE: Moved HuC6280 CPU emulator back into the "pce" directory, since no other emulated systems use it and there are no plans
1320	for emulating any such systems(and if there were, new, cleaner HuC6280 emulation code should probably be written).
1321
1322June 13, 2016:
1323	PSX: Enabled CDC periodic-report maximum level calculation code that was written a while back, to fix a
1324	lockup in "Fantastic Pinball Kyutenkai".
1325
1326	Added setting "netplay.console.lines".
1327
1328	When a console is scrolled, a green indicator arrow will now be drawn in the lower right corner.
1329
1330	Scrolling in the console(netplay, cheat) is now done in visible line units, rather than in internal line units.
1331
1332June 12, 2016:
1333	Removed setting "netplay.smallfont", and added settings "netplay.console.scale" and "netplay.console.font".
1334
1335	Somewhat revamped the layout of the debugger's memory editor.
1336
1337	Removed 4x5 font(it's too small to be of much real use), and added 6x9 and 6x12 fonts(mostly for debugger use).
1338
1339	Code points outside the BMP are no longer drawn as being truncated to 16-bits.
1340
1341	In the text drawing routines, a character missing from the chosen font is now drawn as the Unicode replacement character instead
1342	of a question mark.
1343
1344June 11, 2016:
1345	Made some minor visual and positioning tweaks to the debugger's memory editor.
1346
1347	Revamped the text drawing routines to not take naked pointers, instead taking an MDFN_Surface*, optionally an MDFN_Rect for specifying
1348	a clipping rectangle, and x and y positions within the surface.
1349
1350June 10, 2016:
1351	Replaced MDFN_FastU32MemsetM8() with a set of MDFN_FastArraySet() functions, which don't require minimum alignments beyond natural alignment, but
1352	will perform faster with them.
1353
1354June 9, 2016:
1355	PSX: Brought MDEC emulation decode timing closer to the timing of a PS1.
1356
1357	VB: Replaced endian-handling functions local to vip.cpp with new code in endian.h derived from code written for Saturn emulation.
1358
1359June 8, 2016:
1360	Fixed long-broken MDFN_en24msb() function.
1361
1362June 7, 2016:
1363	Fixed a bug that could cause a crash if a gzip-compressed file whose uncompressed size is 0 bytes is loaded.
1364
1365June 6, 2016:
1366	SNES: Updated libco to the copy included with higan v098, for x86_64 Windows fixes and ARM support.
1367
1368June 4, 2016:
1369	Added support for CUE sheet "INDEX" directives for indexes 2-99.
1370
1371May 31, 2016:
1372	NES: Extended the mapper 184 emulation to support "Fantasy Zone"'s board.
1373
1374May 30, 2016:
1375	Replaced various redundant C-string-utilizing file path decomposition functions/code with usage of the newer MDFN_GetFilePathComponents().
1376
1377May 29, 2016:
1378	Replaced usage of MDFN_calloc*()/MDFN_malloc*()/MDFN_free() with new/delete.
1379
1380	Replaced MDFN_IsFIROPSafe() with MDFN_CheckFIROPSafe(), which throws an exception instead of relying on the caller to do it.
1381
1382May 5, 2016:
1383	SNES: Removed unused disassembler code.
1384
1385	Fixed code causing a compilation error on gcc 6.
1386
1387April 10, 2016:
1388	Cleaned up cheat code a little, and added support for RAM cheats to be applied via function call instead of through direct data pointer access.
1389
1390March 29, 2016:
1391	MD, NGP, PC-FX: Encapsulated code in namespaces.
1392
1393March 28, 2016:
1394	NES: Implemented kludge to fix a minor Zelda 2 title screen glitch, a status bar glitch in Burai Fighter, and scrolling in the second stage of The Young Indiana
1395	Jones Chronicles.
1396
1397October 23, 2015:
1398	PSX: Reworked how branch delay slots are handled to be simpler and slightly more efficient.
1399
1400October 12, 2015:
1401	PSX: Improved emulation of the instruction cache management features of the PS1's CPU core; probably won't affect any games, but could be of
1402	use in homebrew.
1403
1404-- 0.9.38.7: --
1405
1406September 30, 2015:
1407	Fixed several malformed trio_sscanf() format strings in regards to field width, that could cause stack buffer overflows in certain cases.
1408
1409September 29, 2015:
1410	PSX: Added skeleton BCzF/BCzT instruction emulation, and fixed handling of illegal CP0 instructions.
1411
1412September 25, 2015:
1413	PSX: Added emulation of CPU exception-handling bad address register.
1414
1415	PSX: Implemented emulation of the Coprocessor Error field in the CAUSE register.
1416
1417	PSX: Added emulation of CPU exception-handling branch target register.
1418
1419	PSX: Fixed handling of CAUSE bits 30 and 31 when an exception occurs immediately after a branch instruction is executed.
1420
1421	PSX: Fixed link address calculation for JAL, JALR, and B*AL instructions when they're executed in a branch delay slot.
1422
1423	PSX: Corrected emulation of the quasi-illegal mirrors of the BGEZ*/BLTZ* type instructions.
1424
1425	PSX: Added emulation of a pipeline quirk that occurs with back-to-back load instructions to the same register(previously only emulated with LWL and LWR).
1426
1427September 22, 2015:
1428	Fixed a bug in the debugger's disassembler that could break disassembly when a disassembled instruction wraps around the end of the CPU's program address
1429	space to the beginning.
1430
1431September 18, 2015:
1432	PCE: Removed experimental and unfinished hypothetical subtitle hardware emulation which had a few security-related problems.
1433
1434September 16, 2015:
1435	MD: Fixed registration of main RAM in the cheat engine to be mirrored properly.
1436
1437	PCE: Fixed a bug that caused the debugger's disassembly and memory view to show a wrong value for the HES bootstrap register
1438	at $1D00.
1439
1440	PCE: Fixed a bug that sometimes caused the "TIMV" register in the debugger to display "FFFFFFFF" instead of "FF".
1441
1442	The date and time of the compilation of qtrecord.cpp are no longer written to recorded QuickTime movie files, to solve
1443	a minor privacy issue and a build reproducibility issue.
1444
1445	PSX: Rewrote parts of the timer emulation code to fix several issues; fixes wrong music playback speed problem
1446	in "RPG Tsukuru 4".
1447
1448-- 0.9.38.6: --
1449
1450August 9, 2015:
1451	PSX: Fixed a bug in the calculation of time taken by some GPU commands while in interlaced mode; fixes graphical glitches in
1452	"Mr. Driller G".
1453
1454	PCE, PCE_FAST: Added more delay to CD Read command's returning of sector data, to fix a lockup in "Mirai Shonen Conan",
1455	and a stuck note problem in "4 in 1 Super CD".
1456
1457-- 0.9.38.5: --
1458
1459June 26, 2015:
1460	PSX: Generate a seek error when trying to read audio sectors(when the appropriate Mode bit isn't set), and generate a bad command error
1461	when executing ReadN/ReadS with a non-PS1 disc.  Fixes a lockup in "Vib Ribbon" when trying to play with audio CDs.
1462
1463June 20, 2015:
1464	Altered SHA-1 and SHA-256 test code to work around a preprocessor-related bug in gcc.
1465
1466	NES: Fixed a mapper 19 sound emulation bug; fixes music issues in the Japanese release of "Rolling Thunder".
1467
1468	PSX: Replaced a GPU debug puts() with code that respects the psx.dbg_level setting.
1469
1470June 18, 2015:
1471	PC-FX: Corrected handling of width/height of 0xA for KING BG1-3, per tests on a PC-FX.  Fixes a graphical glitch in "Sakuraigar Mode" in
1472	"Tyoushin Heiki Zeroigar".
1473
1474May 5, 2015:
1475	PSX: Added some debug messages to the memory card emulation code, outputted when setting psx.dbg_level is set to certain values.
1476
1477April 29, 2015:
1478	PCE, PCE_FAST: Corrected decimal-mode ADC and SBC behavior(especially for "illegal" input values), per tests on a HuC6280.
1479
1480April 22, 2015:
1481	Added a test to tests.cpp for gcc bug #60196(triggered with non-default optimization flags).
1482
1483April 19, 2015:
1484	Added a missing dependency statement to configure.ac, whose absence broke compilation with --disable-pce --enable-pcfx
1485
1486April 16, 2015:
1487	WonderSwan: Removed erroneous constraints that were preventing opposing X* and Y* buttons from being pressed simultaneously, and changed the
1488	names of the the X* and Y* buttons used during input configuration, per tip from trap15.
1489
1490-- 0.9.38.4: --
1491
1492April 12, 2015:
1493	PC-FX: Reorganized the debugger's register view to be slightly more space-efficient horizontally.
1494
1495	NES: Migrated the rest of the *GetRegister() and *SetRegister() debugger functions over to the newer-style interface.
1496
1497	PC-FX: Migrated the rest of the *GetRegister() and *SetRegister() debugger functions over to the newer-style interface.
1498
1499April 11, 2015:
1500	PC-FX: Migrated debugger functions PCFXDBG_GetRegister() and PCFXDBG_SetRegister() over to the newer-style interface that takes integer IDs instead
1501	of std::string.
1502
1503	VB: Migrated debugger functions VBDBG_GetRegister() and VBDBG_SetRegister() over to the newer-style interface that takes integer IDs instead
1504	of std::string.
1505
1506	WonderSwan: Migrated debugger functions WSwan_GfxGetRegister() and WSwan_GfxSetRegister() over to the newer-style interface that takes integer IDs instead
1507	of std::string.
1508
1509	PC-FX: Added support for setting breakpoints on writes to specific VDC registers, by setting an Aux Write Breakpoint on an
1510	address ranging from A0000-A001F(VDC-A) or B0000-B001F(VDC-B).
1511
1512April 10, 2015:
1513	Debugger: Relaxed most maximum string length restrictions on user-inputted addresses(to allow for lazily leaving an excessive number of 0s at the
1514	beginning of an address, for example).
1515
1516	Debugger: "Goto Address" prompt in the memory editor can now be activated by pressing "ENTER"(in addition to "G"), and "Disassembly Address" prompt in the main debugger
1517	view can now be activated by pressing the "G" key(in addition to "ENTER").
1518
1519April 9, 2015:
1520	NES: Added sprite RAM to the debugger's memory editor.
1521
1522	NES: Fixed some issues with the debugger's graphics/tileset viewer.
1523
1524April 8, 2015:
1525	PSX: Improved GPU texture cache emulation accuracy per tests on a PS1; fixes graphical glitches in the menus of "Tigershark".
1526
1527April 5, 2015:
1528	PCE: Added support for setting breakpoints on writes to specific VDC registers(like MAWR, BXR, BYR, etc.), by setting an Aux Write Breakpoint on an address
1529	ranging from 20000-2001f(hexadecimal).
1530
1531April 4, 2015:
1532	Avoid left-shifting negative values in hw_sound/pce_psg/pce_psg.cpp
1533
1534	Added a couple more tests regarding left shift of signed integers to tests.cpp.
1535
1536April 2, 2015:
1537	Debugger: Fixed half-broken re-activation of the debug screen when a breakpoint triggers and the user was last on a debug screen other than the
1538	main one.
1539
1540	Debugger: Fixed a rounding issue that could cause insufficient disassembly lines with some *.debugger.disfontsize setting values.
1541
1542	PSX: Hooked up writing(editing) in the debugger's memory editor for "CPU Main RAM".
1543
1544March 29, 2015:
1545	PCE: Removed old leftover debug puts() in HuC6280 emulation code.
1546
1547	Debugger: Fixed a bug that could cause breakpoints to be skipped if the 'R' key was pressed(or auto-repeated) while outside of step mode.
1548
1549	NES: Fixed highpass filter coefficient calculation.
1550
1551	SNES: Fixed a bug that was breaking input after triggering a virtual Reset/Power Toggle event when a non-gamepad controller(e.g. mouse) is currently
1552	selected for a port.
1553
1554March 23, 2015:
1555	NES: Fixed a minor sound emulation bug.
1556
1557March 15, 2015:
1558	GBA: Fixed several instances of left-shifting negative values in thumb.cpp.
1559
1560	PC-FX, VB: Fixed an instance of left-shifting uint64 by 64 in the FPU emulation code.
1561
1562March 14, 2015:
1563	GBA: Fixed a few instances of technically undefined behavior(shifting 32-bit int by >= 32, and left-shifting negative values) in arm.cpp.
1564
1565March 11, 2015:
1566	Reworked a test in tests.cpp to better reflect the requirements of certain undefined behavior some code still (unfortunately) relies on, to avoid
1567	triggering an assert() during startup when compiled with llvm/clang 3.6.
1568
1569March 6, 2015:
1570	PCE: Fixed a major VRAM DMA emulation regression introduced around version 0.9.16-WIP, that breaks some homebrew software.
1571
1572	NES: Altered mapper 185 emulation to fix "Bird Week", "B-Wings", "Sansuu 1 Nen", "Sansuu 2 Nen", "Sansuu 3 Nen", and "Seicross (version 2)".
1573
1574	PSX: Added a kludge to the core cheat file reading and writing code to work around the mess created by our flawed game ID generation code
1575	(the PS1 game library is enormous, and many games only have one track, leading to many collisions); effectively, the game's filename(which was previously
1576	regarded as a comment), is now used in addition to the game ID.
1577
1578-- 0.9.38.3: --
1579
1580March 4, 2015:
1581	NES: Fixed mapper 69 IRQ acknowledge behavior, per tip from tepples.
1582
1583February 24, 2015:
1584	MD: Fixed an out-of-bounds array access in the 68K emulation code.
1585
1586	Avoid passing NULL to memcpy() in netplay.cpp.
1587
1588	MD: Fixed some code doing misaligned memory writes in vdp.cpp.
1589
1590February 23, 2015:
1591	Avoid blitting to the screen when visibility is lost(i.e. window is minimized), to reduce CPU usage and to prevent memory usage from skyrocketing on
1592	Windows under certain conditions.
1593
1594February 22, 2015:
1595	PSX: Tweaked non-logical CD seek emulation to fix lockups in some versions of "Tomb Raider".
1596
1597February 17, 2015:
1598	PSX: Fixed Justifier and GunCon x position being off when setting "psx.h_overscan" is set to "0".
1599
1600-- 0.9.38.2: --
1601
1602February 15, 2015:
1603	PSX: Fixed some miscellaneous minor issues in the triangle rasterization code.
1604
1605	PSX: Fixed a GPU timing regression introduced around version 0.9.37; fixes a disappearing graphics glitch in "Tobal No.1".
1606
1607-- 0.9.38.1: --
1608
1609February 11, 2015:
1610	NES: Subtract 3 from emulated 6502 stack pointer on reset, to match what reportedly occurs on a NES and to fix a certain poorly-programmed
1611	"Legend of Zelda" game hack.
1612
1613February 9, 2015:
1614	Allow interrupting the virtual device input configuration process(it was broken in 0.9.38-UNSTABLE); though of course interrupting it will still
1615	leave the configuration in a broken state(but that's not a regression ;)).
1616
1617	PSX: Fixed a bug that was causing a segfault on loading a PSF/EXE file(a regression introduced in 0.9.38-UNSTABLE).
1618
1619February 8, 2015:
1620	Clear override settings on game close(for the benefit of forks/ports).
1621
1622-- 0.9.38-UNSTABLE: --
1623
1624February 5, 2015:
1625	Lynx: Added support for custom palettes.
1626
1627January 31, 2015:
1628	Split cdrom/audioreader.cpp into multiple files.
1629
1630January 29, 2015:
1631	Dropped physical CD support.
1632
1633	Throw an error, rather than crashing, in the CUE sheet reader if a track is missing.
1634
1635	Throw an error in the CUE sheet reader if an M:S:F time contains a component out of range.
1636
1637	Implemented rudimentary support for CD-i discs (images), but no actual CD-i emulation, of course(yet :p).
1638
1639January 27, 2015:
1640	PSX: Added support for reading (synthesized) CD sector data located at MSF 00:00:00 through 00:01:74.
1641
1642	Fixed completely broken synthesis of pregap data(mode 1/mode 2) sectors with CUE+whatever.
1643
1644	PSX: Refactored leadout track sector data synthesis handling into the core CD reading code.
1645
1646January 26, 2015:
1647	PSX: Host system file/disk access time is now partially masked by emulated seek time when using CD images(except TOC+BIN with
1648	embedded subchannel data), which should reduce the probability of sound buffer underruns when
1649	running with "cd.image_memcache" set to "0"(the default).
1650
1651	The CloneCD format reader now always caches the subchannel file data in memory on load, regardless of the "cd.image_memcache" setting's value.
1652
1653	Added setting "osd.message_display_time".
1654
1655	Added undocumented setting "srwautoenable".
1656
1657January 25, 2015:
1658	PSX: Fixed a problem that broke building after passing --disable-debugger to the configure script.
1659
1660January 24, 2015:
1661	PCE_FAST, VB: Now dynamically-allocate the Blip_Buffer objects, and made very minor tangentially-related optimizations to the sound emulation code.
1662
1663	Refactored command key processing to be a bit cleaner, and to fix a couple of issues in the process(avoid triggering a command if keys/buttons are pressed
1664	while Mednafen is starting up, and to skip the input.ckdelay delay when selecting a command key to remap after starting the process via F2); some of the
1665	changes could conceivably cause regressions, as the modified code was very old and convoluted.
1666
1667January 18, 2015:
1668	PSX: Improved some Read*/SeekL versus status bits versus GetLocL semantics, to fix a lockup in "Harukanaru Toki no Naka de - Banjou Yuugi".
1669
1670	PSX: SetLoc CDC command now generates an error on invalid arguments, per tests on a PS1.
1671
1672January 17, 2015:
1673	PSX: Fixed the value that the "Mode" CDC parameter is reset to in the CDC Reset command; fixes lockups in "This Is Football 2" and
1674	"Disney's Pooh's Party Game: In Search of the Treasure".
1675
1676	PSX: Fixed some issues with emulation of CDC command GetTD, per tests on a PS1.
1677
1678	PSX: Improved CDC result FIFO emulation accuracy; fixes a startup lockup in the Japanese version of "CyberSled".
1679
1680	PSX: Fixed a line-drawing regression from a Dec 28 change.
1681
1682	PSX: Fixed a few minor bugs in the GPU RAM write and read commands, per tests on a PS1.
1683
1684January 15, 2015:
1685	PSX: Tweaked CDC SeekL timing to fix a random lockup problem in Wing Commander 3.
1686
1687January 14, 2015:
1688	Fixed a small memory corruption issue in the input grabbing/command key disable toggle code, and reworked the code to be more verbose in the
1689	status message it displays and to prevent activating certain combinations of input grabbing/command key disabling that can be confusing to deactivate.
1690
1691January 13, 2015:
1692	PSX: Fixed some problems with multitap emulation that were preventing DualShock functionality(such as rumble) from working properly when the
1693	emulated DualShock was behind an emulated multitap.
1694
1695January 11, 2015:
1696	PSX: Allow dithering on non-gradient lines(instead of only on gradient-colored lines), per tests on a PS1.
1697
1698January 10, 2015:
1699	PSX: Fixed an off-by-1 saturation/clamping related bug in the RTPS/RTPT emulation code.
1700
1701January 9, 2015:
1702	PSX: Improved emulation of the GPU info/VRAM read latches, per tests on a PS1.
1703
1704	PSX: Added support for GPU texturing disable bits, per no$ notes and tests on a PS1(still need to implement the actual functionality of texturing
1705	disabling, though).
1706
1707	PSX: Return GPU display mode bit 7 in GPU status port reads properly(though we still don't emulate the effects of setting that bit to 1).
1708
1709January 1, 2015:
1710	PSX: Removed most of the event system pedantic sanity checks(and associated computational/cache overhead), as they've long outlived
1711	their usefulness.
1712
1713December 29, 2014:
1714	No longer ignore settings in configuration files when the value is empty.
1715
1716December 28, 2014:
1717	CDPLAY: Increased output volume by 3.5dB.
1718
1719	Added support for per-game configuration override files.
1720
1721	PSX: Fixed a minor line drawing bug, per tests on a PS1.
1722
1723December 27, 2014:
1724	PSX: Fixed a few instances of left-shifting a negative value, and signed integer overflow.
1725
1726December 26, 2014:
1727	PSX: Replaced SimpleFIFO usage in GPU and MDEC emulation with a new FastFIFO class.
1728
1729December 25, 2014:
1730	PSX: Altered an emulation loop exit condition to not be based on psx.slstart* and psx.slend* settings(to fix a potential
1731	desynchronization issue with netplay and input-recording movies).
1732
1733	Removed VLA usage in qtrecord.cpp.
1734
1735December 24, 2014:
1736	PSX: Tweaked the region detection heuristics to support a hacky Russian translation of Tomb Raider 1.
1737
1738	Added MDFN_lzcount32() inline function to math_ops.h to replace direct usage of __builtin_clz() in psx/cpu.cpp.
1739
1740	PSX, PC-FX, VB: Added alternative to computed-goto in the CPU emulation cores, for crazy people who want to compile (parts of) Mednafen
1741	with MSVC.
1742
1743December 23, 2014:
1744	PSX: Fixed a bug that could cause a significant mischeduling of timer/root-counter 1's IRQ event under certain conditions.
1745
1746	PSX: Brought MDEC decode timing closer to what it is on a PS1; fixes stuttering issue in the early FMV-background sequence
1747	in in Parasite Eve II.
1748
1749December 21, 2014:
1750	Replaced usage of case-range and VLAs with non-GNUish alternatives in:
1751		cdrom/CDAccess_CCD.cpp
1752		cdrom/CDAccess_Physical.cpp
1753		gb/gb.cpp
1754		general.cpp
1755		lynx/system.cpp
1756		md/input/megamouse.cpp
1757		md/system.cpp
1758		nes/input.cpp
1759		netplay.cpp
1760		pce/subhw.cpp
1761		pce/vce_sync.inc
1762		pcfx/debug.cpp
1763		psx/cpu.cpp
1764		psx/spu.cpp
1765		psx/input/memcard.cpp
1766		settings.cpp
1767		vb/debug.cpp
1768		wswan/v30mz.cpp
1769
1770-- 0.9.37.1: --
1771
1772December 19, 2014:
1773	Fixed some issues causing compilation errors on gcc 4.7.x.
1774
1775	Conditionalize the compilation of shared hardware emulation components(such as 68K, Z80, YM2612, etc. emulators) based on what emulation modules
1776	are being compiled in, since support for loading external emulation modules never went anywhere, and if we do eventually add support for it, the exported
1777	symbols won't include the common specific hardware emulation components.
1778
1779	Fixed some code causing compiler errors with clang 3.4.0.
1780
1781	Fixed broken loading of save states made with 0.9.37+ on big-endian platforms(0.9.37 regression).
1782
1783	fflush() before fstat() on the underlying file descriptor in FileStream::size() if the stream is open for writing.
1784
1785December 18, 2014:
1786	Added zlib type-size sanity tests to tests.cpp
1787
1788	_LARGEFILE64_SOURCE and _LARGEFILE_SOURCE are now defined to "1" in config.h, for zlib purposes.
1789
1790December 17, 2014:
1791	PSX: Avoid undefined behavior(that wasn't currently causing any problems) in the CPU core.
1792
1793December 16, 2014:
1794	PSX: Clamp final SPU output samples(before volume adjustment and resampling) properly; lack of it wasn't causing any problems per-se, but it could have
1795	been an issue in the future.
1796
1797	GB: Load GBC custom palette from "gbc.pal", not "gb.pal"(0.9.37 regression).
1798
1799-- 0.9.37-UNSTABLE: --
1800
1801December 15, 2014:
1802	MD: Added EA 4-Way Play multitap emulation, based on information from Charles MacDonald.
1803
1804	MD: Fixed Team Player save states(sub ports weren't getting unique section names).
1805
1806December 14, 2014:
1807	MD: Rewrote the Mega Mouse emulation code so it actually works.
1808
1809	NGP: Added a couple of missing sound chip emulation variables to save states.
1810
1811	MD: Fixed some issues with the new multitap support code, including removing Hyper Dunk/Double Dribble from the internal database due to issues
1812	the game has with multitap in some game modes.
1813
1814	PSX: Fixed a potentially-nasty sizeof()-related bug in frontio.cpp.
1815
1816	PSX: Tweaked Justifier lightgun emulation to fix problems with occasional extremely wrong positioning in "Elemental Gearbolt".
1817
1818December 13, 2014:
1819	PSX: Reworked how overscan is hidden when the psx.h_overscan setting is set to 0 to not cause netplay desync with lightguns
1820	if different players have that setting configured differently.
1821
1822	MD: Added emulation of Sega's Team Player multitap.
1823
1824	MD: Added default key to button assignments for the emulated 6-button gamepad on virtual port 1.
1825
1826December 12, 2014:
1827	PSX: Fixed SPU audio mixing so that reverb output respects the main volume control, and to correct output precision/ranges/clamping, per tests on a PS1.
1828	Fixes excessive reverb volume in some parts of "WipEout", and likely other games as well.
1829	Mednafen's PS1 emulation audio output is also now about 3.5dB louder than before, while still maintaing a 2.5dB headroom.
1830
1831	PSX: Greatly simplified the reverb address wrapping logic, per tests on a PS1.
1832
1833December 11, 2014:
1834	Various const char* to const std::string& changes.
1835
1836	Added additional MDFN_GetSetting* inline functions that take a const std::string reference instead of a const char*, and call .c_str() internally,
1837	to cut down on .c_str() usage elsewhere.
1838
1839	Added setting "filesys.state_comp_level".
1840
1841	Removed setting "filesys.disablesavegz".
1842
1843	GB, GBA, MD, VB, SNES, WonderSwan: Save-game memory files are no longer written gzip-compressed.
1844
1845	GBA: Removed support for loading EEPROM from the save-game memory file with "sav" extension(last produced by Mednafen version 0.8.1).
1846
1847	PSX: Made minor precision-related changes to the SPU reverb algorithm code, per tests on a PS1.
1848
1849December 10, 2014:
1850	PSX: Added emulation of unaligned access to the registers controlling the front input/output ports(and no longer triggers an assert() when/if it
1851	happens).
1852
1853	PSX: Fixed broken emulation of an esoteric CDC feature, that could lead to an assert() being triggered under specific circumstances.  Fixes
1854	the "Rockman 8" intro FMV(previously, Mednafen would abort out right after the end of the FMV if it was allowed to play all the way through).
1855
1856December 9, 2014:
1857	Reinitialize some input info vectors properly in drivers/input.cpp on emulated device change(so we don't get hilariously bad messages about
1858	analog mode being enabled on a lightgun ;)).
1859
1860	PSX: Added setting psx.h_overscan, default value of "1", that when set to "0" will hide most of the horizontal overscan area(area to the left and
1861	right sides of the screen); useful for games like "Captain Commando" that have garbage in that area.
1862
1863	PSX: Adjusted horizontal positioning of image so that the different pixel clock modes will have the correct relative horizontal positioning(within a +/-1
1864	pixel tolerance in some cases, due to performance considerations and rounding issues in Mednafen), per tests on a PS1.
1865
1866	PSX: Use two small LUTs instead of one gigantic LUT for 15-bit RGB -> 24/32-bit RGB conversion.
1867
1868	PSX: Split the GPU primitive rendering code into several standalone source code files, to be easier on the compiler and enable more effective
1869	parallel building of the source code.
1870
1871	PSX: Added preliminary emulation of GPU texture cache; (mostly) fixes the flickering graphics problem in the map screen of "Tactics Ogre", and fixes the
1872	heat engine effect in "F1 2000".
1873
1874December 8, 2014:
1875	PSX: Reworked various aspects of triangle rasterization to be more accurate, per PS1 tests(though some of the triangle setup code is a bit convoluted now
1876	and should probably be simplified/rewritten somehow).
1877
1878December 7, 2014:
1879	PSX: Added emulation of GPU CLUT cache.
1880
1881December 6, 2014:
1882	Print a warning message about portability if an untrusted file include path(such as from a CUE sheet) contains an 8-bit non-ASCII character.
1883
1884	Fixed a regression that occurred since 0.9.36.x that caused Mednafen to abort out when rotating the screen(via ALT+O) with an emulated system
1885	other than Lynx and WonderSwan.
1886
1887	PSX: Now differentiate between Reset(triggered with F10) and Powering-On(triggered with F11) events, so the former will no longer reset
1888	input device state(relevant with controllers with persistent long-lived internal state like the DualShock).
1889
1890December 5, 2014:
1891	PSX: Fixed some precision-related bugs in the triangle rendering code; fixes the flickering-characters issue that occurs at several locations
1892	in "Final Fantasy 8".  Unfortunately, this fix does increase CPU usage a bit more that I would like, and it's going to be tricky to optimize the difference
1893	away.
1894
1895December 4, 2014:
1896	PSX: Made a minor change to the GPU polygon blitting code with negligible performance impacts, but shaves a few hundred KB off the compiled code size.
1897
1898	PSX: Reworked how the GPU saturation LUTs are implemented to prevent undefined behavior.
1899
1900	Lynx: Hooked up(and cleaned up) support for loading homebrew RAM image dumps(such as available at http://handy.sourceforge.net/homebrew.zip and
1901	http://pdroms.de/files/atarilynx/chopper )
1902
1903	NGP: Fixed a couple of shadowed-variable warnings in T6W28_Apu.cpp.
1904
1905December 3, 2014:
1906	Added new class ZLInflateFilter, to be used for stream-based decompression in the PSF file loading code.
1907
1908	MDFNFILE is now a thin container on top of a Stream-derived object(MemoryStream or FileStream; GZFileStream is not suitable for direct use since we
1909	still have to use Stream::size() in a few places).
1910
1911	MDFNGI::Load() no longer uses return type to signal an error.
1912
1913	Reworked the emulation modules' file loading code to be stream-oriented, rather than an amalgamation of memory-mapped semantics and stream
1914	semantics.
1915
1916	NES: Utilize exceptions to handle errors during file loading and initialization.
1917
1918December 1, 2014:
1919	Merged(finally) FileWrapper into FileStream.
1920
1921November 30, 2014:
1922	Fixed handling/mapping of rumble, status, and switch input bits during netplay.  The current semantics of input device switch state in regards to netplay
1923	save states is still less than ideal, and could be considered a regression from 0.9.36.
1924
1925November 28, 2014:
1926	Fixed a rumble-related crashing bug(due to careless use of a pointer into a vector that was later resized) introduced in changes yesterday.
1927
1928	VB:  Corrected the value that the timer reload register is initialized with on reset.
1929
1930	"--large-address-aware" is now passed to the linker when building the Windows build, so that the 32-bit build can use more address space(and RAM), which
1931	reduces the probability of running out when state rewinding and/or CD image memory caching is enabled.
1932
1933	PSX: Avoid left-shifting negative values(which is technically undefined behavior, though I'm hopeful compiler developers aren't foolish enough that this
1934	will ever be a real issue) in gte.cpp, spu.cpp, and gpu_polygon.inc.  There are still instances left in dma.cpp, mdec.cpp, and gpu_line.inc, however.
1935
1936	Compile with -fwrapv instead of -fno-strict-overflow, as the latter has numerous issues.
1937
1938November 27, 2014:
1939	No longer compile with -Winline, it's causing spurious warnings due to design decisions, and if something really should be inlined we use the INLINE
1940	macro anyway(which evaluates to include __attribute__((always_inline))).
1941
1942	Current emulated device raw input state is now saved in save states, so that persistent data like switch state isn't lost.
1943
1944	Input device input/button descriptors(of type InputDeviceInputInfoStruct) are now packed into IDIISG(derived from std::vector) instead of being plain
1945	C-style arrays, to facilitate, in the future, fixing design flaws and possibly adding neat new functionality.
1946
1947November 26, 2014:
1948	NES: Added some missing MMC5 variables to save states.
1949
1950	NES: Allow save states to be saved and loaded while in the Game Genie code entry screen.
1951
1952November 25, 2014:
1953	Use shiny new C++11 std::exception_ptr to better handle deferred errors/exceptions in the save state loading code, instead of just using naked
1954	error message C-string pointers.
1955
1956	No longer clear the state-present indicator to 0 when a save state load fails(since it could have led to confusion and the accidental overwriting of a state
1957	that is good in a different context).
1958
1959	PSX: Changed the hashing algorithm used on the BIOS ROM image data(for the database and save states) from SHA-1 to SHA-256.
1960
1961November 24, 2014:
1962	PSX: Save the SHA-1 hash of the BIOS in save states, and on load compare the value recorded with the actual current value, and error out the
1963	state loading process if they mismatch(to prevent loading a save state created while running under a different BIOS, which can cause insidiously
1964	subtle problems).
1965
1966	PSX: Implemented a rudimentary internal BIOS database, and now error-out when using a bad BIOS, or a BIOS from the wrong region.
1967
1968	PCE, PC-FX: Fixed the garbled-sound-while-state-rewinding problem.
1969
1970	PCE: Fixed a frame mid-sync regression from around 0.9.33 that broke "Takeda Shingen".
1971
1972	Implemented new netplay commands "/list" and "/gamekey".
1973
1974	Replaced UTF8* in favor of plain char* in various places where it's still used.
1975
1976November 21, 2014:
1977	PSX: Changed DualShock analog mode status display to use new IDIT_STATUS input/output type, instead of directly calling MDFN_DispMessage().
1978
1979	PCE_FAST: Changed 6-button mode toggle to use new IDIT_SWITCH input type, instead of IDIT_BUTTON coupled with internal state toggling and MDFN_DispMessage().
1980
1981November 15, 2014:
1982	Fixed virtual analog button input support(e.g. for DualShock analog sticks), broken in an August 4th change.
1983
1984November 9, 2014:
1985	WonderSwan: Added partial emulation(just enough to get it to work) of the WonderWitch's flash ROM, so that the WonderWitch firmware
1986	will boot now, and can be used with the "wswan.excomm" and "wswan.excomm.path" settings/functionality.
1987
1988November 5, 2014:
1989	Added support for automatic loading and usage of redump.org "SBI" files when loading CUE sheets; the files should have the same base filename
1990	as the CUE sheet, and the file extension case should match the case of the corresponding character in the CUE sheet filename file extension.
1991	Example:
1992		"Super Bandicoot Luigi (Moon, Niflheim, Australia).CuE" -> "Super Bandicoot Luigi (Moon, Niflheim, Australia).SbI"
1993
1994	PSX: Fixed half-implemented broken implementation of CDC command 0x00; fixes lockups in the European PAL releases of "Spyro 2" and
1995	"Spyro - Year of the Dragon".
1996
1997November 4, 2014:
1998	PCE_FAST, PC-FX: Fixed some mostly-benign violations of strict aliasing.
1999
2000	MD: C68k code is compiled as C++ now, and fixed the flawed approach at circumventing strict aliasing.
2001
2002	Replaced MDFN_ALIGN() with C++11 alignas().
2003
2004	Revamped masmem.h and endian.h, merging functionality into endian.h, and fixed "MultiAccessSizeMem" to actually work properly(the previous
2005	code constructs it used violated strict aliasing, due to a misunderstanding of how gcc handles type punning via unions).  "MultiAccessSizeMem" may
2006	be phased out now, since its original intended purpose no longer requires it.
2007
2008November 2, 2014:
2009	NES: Partially encapsulated the code in namespace MDFN_IEN_NES to reduce global namespace pollution(in regards to object file linking).
2010
2011	NES: Use fastcall calling convention for high-call-frequency performance-critical functions when compiling for 32-bit x86.
2012
2013	PSX: Implemented preliminary support for multiplicand value-dependent MULT/MULTU instruction timing.
2014
2015	Added more compiler sanity/bug tests to tests.cpp.
2016
2017	On startup, now print out version information regarding the MinGW-W64 runtime and libiconv, if applicable.
2018
2019October 30, 2014:
2020	Use poll() instead of select() in the POSIX sockets netplay code, to keep netplay from breaking in some quasi-pathological
2021	real-world Mednafen usage scenarios.
2022
2023October 20, 2014:
2024	NES: Fixed a minor issue that could break compiling after --disable-nls was passed to the configure script.
2025
2026	PSX: Reworked disc detection and region detection heuristics to pick up more homebrew PS1 games, and to make better decisions
2027	on what region of the PS1 to emulate for heterogenous disc sets and for titles(e.g. homebrew) that don't follow Sony
2028	conventions in regards to ISO-9660 system area contents and ISO-9660 filesystem layout.
2029
2030September 10, 2014:
2031	PSX: Generate an AdEL exception when trying to fetch an instruction and PC is mis-misaligned.
2032
2033	PCE: No longer attempt to load a custom palette after loading an NSF file.
2034
2035	NES: No longer attempt to load a custom palette after loading an NSF file.
2036
2037September 8, 2014:
2038	Fixed a piece of ancient mouse button mapping/reading code that was so broken it worked most of the time; fixes broken mapping of more
2039	exotic(other than left, center, and right) physical mouse buttons to virtual buttons.
2040
2041	PSX: Made changes to avoid signed overflow and left shift of signed variables in the CPU core JUST BECAUSE.
2042
2043	Fixed several violations of C/C++ sequence point rules in relation to call order in expressions
2044	of functions with side effects, that could lead to undefined/wrong behavior with certain types of compiler optimizations
2045	and features(e.g. PC-FX emulation was broken on gcc 4.9.x with -fsanitize=undefined -std=gnu++11).
2046
2047August 27, 2014:
2048	NES: Handle missing input-related save state sections on load more gracefully.
2049
2050	NES: Automatically enable emulation of the Famicom 4-player adapter for the "Nekketsu Koukou Dodgeball-bu" game.
2051
2052August 24, 2014:
2053	SNES: Fixed usage of wrong form of std::unique_ptr in the save state code.
2054
2055August 23, 2014:
2056	Made minor optimizations to the music format(NSF, HES, PSF, etc.) waveform visualization code.
2057
2058	Removed unused selective blur code, as the algorithm is too simplistic to really be useful in Mednafen.  Though on a similar subject, it may be interesting
2059	to look into SA-DCT again for PS1 and PC-FX FMV-filtering purposes, but that's an exercise for another day.
2060
2061	Cleaned up and refactored a bit of code in drivers/*.
2062
2063August 20, 2014:
2064	Changed a few uses MDFN_malloc/MDFN_calloc to MDFN_malloc_T/MDFN_calloc_T, where appropriate.
2065
2066August 19, 2014:
2067	Lynx: Fixed a bug that could cause Mednafen to crash when a game attempts to power-down the emulated Lynx(which may occur if a game is left unattended
2068	for a prolonged period of time).
2069
2070August 17, 2014:
2071	GB, GBA: Fixed broken save state structure definitions for saving/loading GB APU state.  This fix will cause save state backwards incompatibility issues
2072	(for states created with Mednafen < 0.9.37) on big-endian platforms.
2073
2074	Save state variable data is now saved in native-endian form for performance reasons(and it fixes a bug introduced from the earlier save state refactoring
2075	that could cause state corruption if a state save failed when running on a big-endian platform), repurposing the most-significant bit of the total length
2076	field of the header to signal if the data is big-endian or not.
2077
2078August 16, 2014:
2079	NES: Custom palette loading with PAL emulation now loads from file "nes-pal.pal" instead of file "nes.pal"(NTSC custom palette).
2080
2081	GB, NES, PCE_FAST: Implemented internal support for palettized 8bpp output when the palette color components have a precision of less than 8 bits.
2082
2083August 13, 2014:
2084	PSX: Implemented a very rough simulation of complex, borderline-unstable CDC behavior that "Bedlam" and "Rise 2" rely on(fixes corrupt graphics
2085	problems in those two games).
2086
2087August 12, 2014:
2088	Lynx: Fixed a minor stereo sound emulation issue thanks to a patch from "sage".
2089
2090	SMS, GG: Added support for custom palettes.
2091
2092	NES: Added support for custom palettes with 512 colors(for de-emphasis bits colors).
2093
2094	Refactored custom palette loading code out of emulation modules and into Mednafen's core.
2095
2096August 8, 2014:
2097	PCE, PCE_FAST, PC-FX: Fixed a bug that could cause a crash if the emulated CD lid/tray is closed with no disc when loading a pre-0.9.37 save state.
2098
2099August 5, 2014:
2100	Hardcode enabling of DirectSound and WASAPI in configure.ac for mingw builds, rather than enabling it only if the relevant header files
2101	are found; this will help ensure that any unofficial Windows builds of Mednafen in the future will not be silently broken/lacking in important features.
2102
2103August 4, 2014:
2104	The input port state data memory is no longer zeroed-out in bulk in the driver-side input code on emulated devices input updating, instead being cleared
2105	as needed by each input; this change is to faciliate implementing switches in a more proper and flexible way in the future than they're handled now.
2106
2107	Changed the types of the arguments to MDFNI_SetInput() and MDFNGI::SetInput to be more sensible.
2108
2109	Added dummy enum(= 0) to GameMediumTypes to fix a bug introduced from the July 31 GameType change.
2110
2111	WonderSwan: Add strict checking for proper save game memory file size on game load(NOTE: this will cause problems for Dicing Knight
2112	and Judgment Silversword save game memory files written with Mednafen versions prior to 0.9.36).
2113
2114August 3, 2014:
2115	PCE, PCE_FAST: Fixed bug(from sloppy handling of errors) that caused battery-backed save game file destruction
2116	if an error(e.g. missing CD BIOS, memory allocation failure, etc.) occurred during game load and initialization.
2117
2118August 2, 2014:
2119	PCE: Added missing(oops) code to load MCGenjin non-volatile memory from disk on game load, and no longer compress MCGenjin non-volatile memory
2120	files on disk(in gzip format).
2121
2122	PCE, PCE_FAST, PC-FX: Add strict checking for proper save game memory file size on game load.
2123
2124August 1, 2014:
2125	Removed unused MDFNGI::soundrate.
2126
2127	PSX: Reworked InputDevice::ReadNV() to reduce overhead in the memory card saving code.
2128
2129July 31, 2014:
2130	Begin phasing out usage of MDFNGI::GameType
2131
2132July 30, 2014:
2133	GBA: No longer compile with -fno-unit-at-a-time as it's no longer the 2000s. ;)
2134
2135	Implemented a new, more flexible abstraction for removable media changing during runtime, and updated the NES, PCE, PC-FX, PCE_FAST, and
2136	PSX modules to use it.
2137
2138	Removed mostly-unnecessary gcc command-line arguments that control inlining decision parameters from the build system.
2139
2140July 27, 2014:
2141	Removed the recently-added state load error recovery code, as it's not worth the overhead and increased code complexity, especially considering the
2142	deferred error and optional-section changes from today.
2143
2144	Fixed save state loading code to not read past the end of the state while searching for sections(which is important now that we made some guarantees
2145	and implications about how the stream passed in is utilized).
2146
2147	PC-FX, MD: Mark input device state sections as optional to prevent the new state code from erroring out completely when a section is missing(as will
2148	happen when loading a state saved when a different device was selected).
2149
2150	PSX: Restructured save state generation to be hierarchical(in relation to multitaps).
2151
2152	Reworked MDFNSS_StateAction() to not throw exceptions, instead marking deferred error state, to avoid potential security issues under low memory
2153	conditions(due to state variables being loaded without the emulation module-specific sanitizing code being run).
2154
2155July 26, 2014:
2156	Made use of "override" specifier in a few places.
2157
2158	On save state load(outside of the state rewinding code path), a temporary save state is now created before the load is attempted.  If the load
2159	fails, the temporary save state is loaded.
2160
2161	Now compile QuickLZ with -fno-strict-aliasing to avoid potential future trouble, since it does violate strict aliasing in at least a few places.
2162
2163July 25, 2014:
2164	Fixed broken utility get_BE<>() template function in Stream.
2165
2166	Moved gzip-reading-into-memory algorithm(exponentially increasing read() sizes along with allocated memory) from MDFNFILE to MemoryStream.
2167
2168	Moved mmap() functionality from MDFNFILE(file.cpp) to FileWrapper/FileStream.
2169
2170	Moved IPS patching code out of file.cpp, and made the code patch a Stream instead of raw memory directly(which causes
2171	a slight drop in efficiency, but it shouldn't be a problem).
2172
2173	GB, PCE_FAST: Utilize GZFileStream, and properly error out if there's a fatal error(other than file not found)
2174	during save game loading.
2175
2176July 24, 2014:
2177	Changed how missing section errors are handled; an exception is now thrown when loading a save state and a section is missing, unless
2178	MDFNSS_StateAction() was called with optional == true.
2179
2180	Utilize GZFileStream instead of direct zlib gz*() usage in the game/ROM image file loading code.
2181
2182July 23, 2014:
2183	Re-implemented support for state-rewinding during movie recording, and added support for doing it during playback.  Though trying to rewind across
2184	a movie state-change(in the sense of recording/playing started or stopped) will cause the rewinder to error out, as should be expected.
2185
2186	Input-recording movies are no longer written/read gzip-compressed(just plain file access), and the format is now slightly different as well.
2187
2188	In the fast(state-rewinding) state loading/saving code, align the stream's position to a 16-byte boundary before writing large(>=65536 bytes) variables,
2189	to ostensibly improve memory copy performance.
2190
2191	Save and verify(on load) section names and small canaries in state-rewinding save states, to help prevent save game corruption in case something
2192	goes horribly wrong(such as from a severe (de)compressor or compression filter bug).
2193
2194July 22, 2014:
2195	Utilize strongly-typed enum for GZFileStream open modes, to prevent accidental usage of FileStream open modes.
2196
2197July 21, 2014(accumulated changelog for several days):
2198
2199	Fixed some subtle bugs in MemoryStream.
2200
2201	Removed "srwcompressor" setting; only "quicklz", the default of the removed setting, is available and used now for state rewinding.
2202
2203	Refactored and rewrote state rewinding code, with some optimizations over the old code for systems with large save states(PC-FX, PS1).
2204
2205	Simplified and cleaned up some of the core save state functions.
2206
2207	Adapted core save state code to take a Stream(though the save state code does require fast seeking during saving and loading, so that rules out
2208	passing in a GZFileStream directly), and to utilize exceptions to signal error conditions(except for missing sections, that still needs to be worked
2209	out).
2210
2211	Made changes to the build system to require and enable C++11(-std=gnu++11).
2212
2213	SNES, PSX: Reverse sound data before resampling when state-rewinding, to fix the sound crackling.
2214
2215	PSX: Fixed a bug that caused a crash when trying to use save states during PSF playback/PS-EXE execution.
2216
2217	NES: Save NSF playback variables in save states(though save states made during NSF playback are still missing expansion chip state data).
2218
2219	WonderSwan: Resolved a few compiler warnings.
2220
2221	WonderSwan: Save/Load relevant WSR playback state in save states during WSR playback.
2222
2223	PCE, PC-FX, SMS, SNES, VB, WonderSwan: Utilize GZFileStream, and properly error out if there's a fatal error(other than file not found)
2224	during save game loading.
2225
2226	Wrote GZFileStream class, derived from Stream, as a wrapper around gzFile.
2227
2228July 17, 2014:
2229	NGP: Added proper error handling(using exceptions) to the FLASH loading and saving code
2230
2231July 16, 2014:
2232	NGP: Initialize XIX, XIY, and XIZ to match what the BIOS leaves them as(as observed via MESS' debugger), and removed the ROM patches/hacks
2233	for "Puyo Pop".
2234
2235	NGP: Utilize exceptions in the ROM image loading and initialization code.
2236
2237	NGP: Fixed some endian-related issues in regards to reflecting bits of the ROM header to RAM during initialization.
2238
2239	NGP: Initialize VRAM differently to partially reflect the state the BIOS leaves it in, and removed the "Metal Slug - 2nd Mission" ROM patch/hack
2240	(thanks	to "FluBBa" for the tip on what the game was doing/relied on).
2241
2242	NGP: Fixed a potentially-exploitable overflow bug in the FLASH dirty block list code.
2243
2244July 15, 2014:
2245	Added a truncate() method to the Stream class and derived classes.
2246
2247July 13, 2014:
2248	SMS: Made use of exceptions in the file loading and system initialization code paths.
2249
2250July 11, 2014:
2251	SNES: Removed unused(in this fork) header and build files.
2252
2253	SNES: Removed nonfunctional stubish(in this old version of bsnes) ST011 and ST018 emulation code.
2254
2255	SNES: Removed SGB emulation code that was never properly hooked up in Mednafen.
2256
2257	SNES: Removed unsupported and untested(in Mednafen) 21fx emulation code.
2258
2259	SNES: Made minor structural optimizations to the S-CPU and SuperFX emulation code.
2260
2261July 10, 2014:
2262	SNES: Made minor structural optimizations to the S-DSP emulation code.
2263
2264July 8, 2014:
2265	VB: Made (better) use of exceptions in the ROM image loading and initialization code.
2266
2267	NES: Made use of MODE_WRITE_INPLACE to write nonvolatile (saved game) memory to disk.
2268
2269July 7, 2014:
2270	PSX: Made use of MODE_WRITE_INPLACE to write memory cards to disk, to slightly reduce the probability of unrecoverable memory card destruction/corruption
2271	under certain pathological system conditions(though in the future we should probably change it to use a temporary filename and rename(), at least on
2272	POSIX-compliant systems).
2273
2274	Added a new file open mode to FileWrapper(and FileStream) named "MODE_WRITE_INPLACE", that is like "MODE_WRITE"(and "wb" with fopen()), EXCEPT that
2275	it won't truncate the file if it already exists.
2276
2277July 4, 2014:
2278	PSX: Fixed a longstanding bug(and removed the associated kludge) in the DMA IRQ emulation, per tests on a PS1.
2279
2280	Added missing relevant copyright statement to pce_psg.cpp and pce_psg.h(since the origin of the skeleton code, TGEmu, isn't
2281	listed in the documentation anywhere).
2282
2283	Cleaned up a few #include statements(#include "mednafen/XXX.h" to #include <mednafen/XXX.h>).
2284
2285June 30, 2014:
2286	PSX: Made optimizations to the SPU reverb resampling code.
2287
2288	PSX: Added emulation of an SPU quirk/bug regarding its handling of ADPCM blocks with a shift value greater than 12, per tests on a PS1.
2289	It's unlikely any commercially-released games use such shift values, though.
2290
2291June 28, 2014:
2292	PSX: Replaced 128KiB GTE division reciprocal table with a 257-byte table and Newton-Raphson reciprocal calculation code.
2293
2294-- 0.9.36.2: --
2295
2296June 25, 2014:
2297	SNES: Save extra input device state in save states that the bsnes core fails to save.
2298
2299	Removed computationally-expensive and unnecessary(it's already done in the state load code path) duplicate-variable check debug code
2300	in the save state saving code.
2301
2302	SNES: Hooked up Super Scope emulation.
2303
2304June 24, 2014:
2305	PCE_FAST: Removed debug puts() in VPC mixing inner loop, and added compiler hints to some of the rendering and mixing loops.
2306
2307	Fixed an ancient regression introduced around version 0.9.16-WIP.  Said regression caused the file extension of the save state used by the auto save
2308	state save/load	feature(setting "autosave") to be the same as the extension used for the currently selected save state slot, effectively overwriting that
2309	save state slot on exit.
2310
2311	Added setting "video.disable_composition", to allow the user to override Mednafen's default behavior of disabling desktop composition on
2312	Windows Vista and Windows 7.
2313
2314June 23, 2014:
2315	MD: Fixed a 68K emulation regression introduced in 0.9.34, that broke save game	loading in "Sonic the Hedgehog 3",
2316	and possibly broke other games in subtle ways.
2317
2318	MD: Fixed prototype for cart mapper 16-bit write function.
2319
2320	MD: Cleaned up debug printf()s.
2321
2322	PSX, PCE, MD, CDPLAY: Resolved a few compiler warnings.
2323
2324	PC-FX: Fixed an old bug that, when coupled with changes made in 0.9.35, caused low-volume crackling in the CD-DA sound output.
2325
2326-- 0.9.36.1: --
2327
2328June 22, 2014:
2329	Fixed a bug that could cause an assert() to trigger under certain circumstances when the scale2x/scale3x/scale4x special scaler is used with
2330	SNES emulation.
2331
2332	PSX: Fixed a major SPU emulation regression in 0.9.36 that completely broke sample playback on a channel when the playback rate
2333	was set near the maximum.
2334
2335	PSX: Fixed noise emulation playback frequency calculation(particularly for the lowest noise playback frequencies), per tests on a PS1.
2336	It's unlikely to have any audible effect on games, though.
2337
2338-- 0.9.36: --
2339
2340June 17, 2014:
2341	PSX: Rewrote SPU ADPCM decoding code per tests on a PS1; fixes the early voice cutoff problem in "Thousand Arms", and possibly some other
2342	games as well.  Seems to fix the post-battle quasi-random lockup problem in the Japanese version of Tales of Destiny.
2343
2344June 15, 2014:
2345	WonderSwan: Added experimental, undocumented support for interfacing with trap15's WonderFence program, which provides MobileWonderGate emulation;
2346	controlled via settings "wswan.excomm" and "wswan.excomm.path".  This support is currently only available on UN*X-like platforms.
2347
2348	WonderSwan: Added SRAM size calculation for the raw header value of 0x05(used by MobileWonderGate).
2349
2350	WonderSwan: Corrected the SRAM size calculation for the raw header value of 0x04(used by Dicing Knight and Judgement Silversword).
2351
2352	WonderSwan: Rewrote RTC emulation code to avoid runtime use of C library time functions(fixing potential desync issues when using netplay and input-recording
2353	movies), and fixed the time initialization code to reflect the current local time instead of UTC.
2354
2355June 14, 2014:
2356	PSX: Implemented experimental support for save states.
2357
2358	PSX: Rewrote MDEC execution loop; the MDEC emulation model still is far from perfect, though.  Fixes the lockup during the intro FMV of
2359	a corrupt copy of "Dragon Knight 4" that's floating around the Internet.
2360
2361June 10, 2014:
2362	Ripped out incomplete "snes_perf" emulation module, and ripped out the unimplemented PC emulation stub module.
2363
2364June 9, 2014:
2365	PSX: Improvements to SPU volume sweep emulation accuracy per tests on a PS1.  Fixes sound/music wonkiness in "WipEout 3".
2366
2367June 6, 2014:
2368	PSX: Minor improvements to MDEC YCbCr to RGB color conversion accuracy, per tests on a PS1.
2369
2370-- 0.9.35.1: --
2371
2372June 5, 2014:
2373	PSX: Improved accuracy of the GPU framebuffer rectangle copy command(0x80) per tests on a PS1; fixes graphical glitches in the
2374	water effect of stage 4 of "Einhander".
2375
2376-- 0.9.35: --
2377
2378May 31, 2014:
2379	Use a semaphore to allow for tighter emulation-thread->video-thread blit timing granularity.
2380
2381May 29, 2014:
2382	PC-FX: Battery-backed save game memory is now saved to a file during runtime if the memory contents have changed, rather than only
2383	saved on exit as before.
2384
2385	NES: Fixed unusably-broken emulation of iNES mapper 80's internal battery-backed save-game RAM(used by "Minelvation Saga", "Mirai Shinwa Jarvas", and
2386	"Taito Grand Prix").
2387
2388	NES: Implemented battery-backed save game support for iNES mapper 69(for the two or so games that need it).
2389
2390	NES: Fixed multiple major issues with the iNES mapper 69 save state code.
2391
2392	NES: Added missing PowerPad default button assignments.
2393
2394	NES: Fixed how Mahjong, Family Trainer, and PowerPad input device code reads input data, to fix brokenness on big-endian platforms, and to prevent
2395	(mostly benign) buffer overflows.
2396
2397	NES: Fixed some buffer overflow issues in the "Barcode World" barcode reader input device emulation code.
2398
2399	NES: Changed how save state loading works so that failure to load one section will not abort loading, but signal a deferred error(most useful
2400	with missing input device sections).
2401
2402May 28, 2014:
2403	Fixed some careless unsafe instances of "-2147483648" added since 0.9.34.1.
2404
2405	PSX: Draw lightgun crosshairs in a separate pass to the lightgun color/brightness evaluation logic, so that crosshairs from a lightgun on a lower port
2406	won't mess up the color evaluation logic of a lightgun on a higher port.
2407
2408	PSX: Refactored the lightgun crosshair drawing code to reduce code duplication, and made some changes to the drawing algorithm to increase
2409	visibility(and make the crosshairs not lopsided anymore).
2410
2411	Pack IDIT_X_AXIS and IDIT_Y_AXIS input types in 2 bytes, 1-byte-aligned, instead of 4 bytes, 4-byte-aligned.
2412
2413	NES: Fixed some minor issues with the lightgun coordinate translation calculations(hopefully for the last time :p).
2414
2415	PSX: Fixed a bug in the Guncon and Justifier emulation code that resulted in memory corruption when the crosshairs were
2416	positioned near the upper left corner of the screen.
2417
2418	NES: Fixed a bug in the iNES mapper 71 code that was causing Mednafen to crash when trying to play "Dreamworld Pogie".
2419
2420May 27, 2014:
2421	NES: Made some improvements to the new X24C01P/X24C02P EEPROM emulation code, though it's still a bit messy.
2422
2423May 26, 2014:
2424	NES: Added support for iNES mapper 159.
2425
2426	NES: Added emulation of mapper 16's EEPROM.
2427
2428	NES: Fixed a bug that was causing some of the Bandai Datach games to have corrupt graphics.
2429
2430	NES: Reworked how the Zapper crosshairs are drawn to fix the problem of them being drawn at the wrong position
2431	if "nes.clipsides" is set to "1"(and to render with 8bpp and 16bpp video output, and to update properly in respect
2432	to MDFN_MidLineUpdate(); though neither is currently used by Mednafen per-se, they are useful for ports).
2433
2434	NES: Fixed a design flaw that could easily cause desync during netplay with an emulated Zapper if different clients' video settings
2435	are different.
2436
2437May 25, 2014:
2438	Cleaned up some of the netplay code to increase maintainability.
2439
2440May 24, 2014:
2441	Changed how the Linux joystick code de-initializes joysticks when rumble has been used, to try to minimize the
2442	probability of a kernel panic due to buggy(race conditions) Linux kernel drivers.
2443
2444	PSX: Added emulation of GPU IRQs.
2445
2446	PSX: Implemented support for GPU command number mirrors.
2447
2448May 23, 2014:
2449	NES: Added SSE2 code to the sound resampler, but currently disabled(#if 0'd out) as it will probably perform
2450	worse than the MMX version on a large number of CPU models.
2451
2452	NES: Made some general minor optimizations to the sound resampling code.
2453
2454	NES: Add "memory" to the clobber list of the sound resampler's MMX inline assembly MAC loop code.
2455
2456May 22, 2014:
2457	PSX: Improved accuracy of GPU line drawing algorithm.
2458
2459	WonderSwan: Improved noise(sound) emulation(thanks to trap15).
2460
2461May 20, 2014:
2462	PSX: Optimized(reduced memory usage) layout of the GPU command table.
2463
2464May 19, 2014:
2465	Added gcc format string check attributes to the applicable trio function prototypes, and fixed a few minor problems the
2466	checks uncovered.
2467
2468	Fixed a compilation error when compiling without the debugger(--disable-debugger passed to the configure script).
2469
2470	PSX: Fixed a glitch/bug in the triangle rasterization code that was causing some textured rectangular quads to have incorrect
2471	distortion of the texture(see "I" of "OPTIONS" in the Twisted Metal 2 title screen).
2472
2473May 18, 2014:
2474	Implemented MDFND_WaitCondTimeout() (currently unused by anything, though).
2475
2476May 14, 2014:
2477	Make the "wasapish"(WASAPI shared-mode) sound driver the default sound driver for where it's available(Windows Vista and newer).
2478
2479May 13, 2014:
2480	PCE, PC-FX: Implemented CD-DA de-emphasis filter support(though the filter is a rough approximation).
2481
2482	PCE, PC-FX: Optimized CD-DA filtering code, and implemented an SSE2 version of the oversampling filter code, to partially
2483	mask the performance hit that the oversampling filter causes.
2484
2485May 12, 2014:
2486	PCE, PCFX: Loosened output resampling filter design constraints so that the resampler doesn't take excessive amounts of
2487	CPU time with higher(96KHz+) output rates(made feasible by implementing CD-DA oversampling).
2488
2489	PCE, PC-FX: CD-DA is now run through a 2x oversampling filter(this does have a minor performance penalty to it though, sadly).
2490
2491-- 0.9.34.1: --
2492
2493May 11, 2014:
2494	Fixed a bug in the sound format conversion code that caused garbled audio when using the new shared-mode WASAPI driver
2495	with a sound device configured with more than 2 speakers.
2496
2497-- 0.9.34: --
2498
2499May 10, 2014:
2500	CDPLAY: Optimized the visualization code.
2501
2502	Added a new shared-mode WASAPI sound driver named "wasapish".
2503
2504	For consistency, the "wasapi" and "sdl" sound drivers no longer subtract the overhead latency from the desired buffer size
2505	when calculating the size of the buffer to use.
2506
2507	Changed the default value of setting "sound.buffer_time" to "0", to enable usage of partially-new code that calculates a buffer
2508	size automatically based on emulated system characteristics and the sound driver in use.
2509
2510May 8, 2014:
2511	GB: Fixed tilt sensor emulation that was broken in the May 6 IDIT_BUTTON_ANALOG packing change.
2512
2513	Updated the embedded copy of libmpcdec to the latest SVN copy; fixes problems with playback of older SV7 format files(with
2514	the CD emulation code).
2515
2516	Wrote threading code to target Win32 APIs directly, rather than rely on SDL's threading support, for the Windows build.
2517
2518May 7, 2014:
2519	GBA, NES: Resolved some compiler warnings.
2520
2521	No longer compile with -mstackrealign for the Windows build, instead using "__attribute__((force_align_arg_pointer))" where
2522	appropriate(e.g. Win32 and SDL callbacks).
2523
2524	Updated the cheat console-interface code to use a condition variable instead of sleep-waiting.
2525
2526	Remove an erroneous extra mutex unlock around a driver-side message queue.
2527
2528May 6, 2014:
2529	Pack "IDIT_BUTTON_ANALOG" and "IDIT_RUMBLE" type input device data more tightly(only aligning to a byte-boundary now,
2530	and packing as 16-bits rather than 32-bits).
2531
2532	Calculate and send a device type number for each emulated port with the netplay login data(the data is not used currently by
2533	mednafen-server, but will be in the future).
2534
2535May 5, 2014:
2536	Reworked the multithreaded CD reading code to use condition variables, rather than repeatedly unlocking, sleeping, and
2537	locking mutexes.  This should help with performance a bit, and will prevent a lot of unnecessary CPU/CPU core wakeups, especially
2538	after loading multiple disc images with M3U files(since a read thread is created for each disc image, at least when CD image
2539	memcaching is disabled, the default).
2540
2541	Moved common parts of the MDFNI_Load and MDFNI_LoadCD functions into a separate function to reduce code duplication.
2542
2543	Emulation modules' LoadCD functions all now throw exceptions on error, so changed the function pointer prototype to remove
2544	the return type(void all the way!).
2545
2546May 4, 2014:
2547	PCE, PCE_FAST, PC-FX, MD: Make better use of exceptions(and handle some that were not handled properly before) in the game
2548	loading and initialization code paths.
2549
2550	Emulation modules' Load and LoadCD functions may now throw exceptions upwards instead of calling MDFN_PrintError() and
2551	returning 0.
2552
2553	Reworked IPS parsing and applying code to use exceptions, and Stream instead of stdio file access.
2554
2555	Reworked MDFNFILE to use exceptions to signal errors on file loading(the memory-stream functions provided primarily for the NES
2556	module's use still don't throw exceptions, however).
2557
2558	Lynx: Removed undocumented(and largely pointless) support for loading a gzip or ZIP-compressed "lynxboot.img" firmware file.
2559
2560	GB: Made game loading code more resilient to avoid leaking memory if an error occurs during game load.
2561
2562	Added a gcc format string check attribute to an MDFN_Error constructor, and fixed a few minor format string problems this
2563	checking exposed.
2564
2565May 3, 2014:
2566	GBA: Reworked save file type parsing code to use FileStream instead of stdio.
2567
2568	GBA: Sanitize a few variables in the flash memory save state loading code to prevent malicious save states blah blah blah.
2569
2570	GBA: Added masks to array access in the EEPROM emulation code to prevent malicious save states from corrupting the heap.
2571
2572	GBA: EEPROM file loading code now errors out if there's an error opening or reading the file(but not if the error is that it
2573	simply does not exist), or the file is of an unexpected/incorrect size.
2574
2575May 2, 2014:
2576	NES:  The filename scanning to select region/video standard(NTSC or PAL), controlled via the "nes.fnscan" setting, now
2577	uses the filename and path stored in the ZIP file(when loading a NES game from a ZIP file) rather than the name of the ZIP file
2578	itself.	 Additionally, the filename scanning feature no longer is affected by strings in the file extension(though I doubt this
2579	will affect anyone, as you'd have to be pretty deranged to name a NES game file like that).
2580
2581May 1, 2014:
2582	PSX: Made CD-DA playback position report code more correct and resilient in regards to Q subchannel checksum errors.
2583
2584April 30, 2014:
2585	PSX: Added settings to allow for scaling the analog stick axis values, to work around the issue of different logical ranges of
2586	motion for PS1 DualShock and Dual Analog controllers versus more modern PC-compatible gamepads.
2587
2588April 29, 2014:
2589	Added logic to gracefully fall back to other fullscreen stretch modes if the current fullscreen resolution is too low to support the
2590	stretch mode selected.
2591
2592April 28, 2014:
2593	Added support for mapping joystick axes to lightgun screen coordinates; however, the configuration must be done manually
2594	by editing the configuration file.  (Additionally, the translation will not function properly if the software-rotation
2595	feature(via ALT+O) is used.)
2596	Example:
2597		psx.input.port2.guncon.x_axis joystick 630f0eab74165481 00008000
2598		psx.input.port2.guncon.y_axis joystick 630f0eab74165481 00008001
2599	Alternate coordinate translation for fullscreen mode, intended for physical modern lightgun and pointer devices:
2600		psx.input.port2.guncon.x_axis joystick 630f0eab74165481 00048000
2601		psx.input.port2.guncon.y_axis joystick 630f0eab74165481 00048001
2602
2603April 27, 2014:
2604	GB: Cleaned up the memory-mapper code, fixing a few bugs that allowed some games(like "Best of the Best Championship Karate")
2605	to cause Mednafen itself to crash.
2606
2607	GB: Fixed MBC7 support(it's been broken in Mednafen for a loooong time).
2608
2609	GB: Disabled the broken simulation of HDMA overhead that seemed to be doing more harm than good; fixes problems with
2610	unstable framerates and inaccurate slowdown on some GBC games(such as "Shantae").
2611
2612	MD, NGP, WonderSwan: Fixed potential memory leaks(memory was not really leaked due to how Mednafen is currently structured,
2613	but they could have become problematic leaks in the future).
2614
2615	Merge clamp.h into math_ops.h.
2616
2617	More #include statement changes in emulation module sources to use #include <mednafen/BLAH> style instead of #include "../BLAH".
2618
2619April 26, 2014:
2620	Fixed a bug that was causing the output image to be distorted when rotation(via ALT+O) was used in conjunction with
2621	a *.videoip setting value of "x" or "y".
2622
2623	Added a test/demo module to help work out bugs in the video processing code paths.
2624
2625April 25, 2014:
2626	Reworked the build system and numerous source code and header files to allow for less sloppiness with -I include paths.
2627
2628	GB: Statically-allocate a 320-byte graphics buffer instead of malloc()'ing it.
2629
2630April 24, 2014:
2631	Fixed a problem with the configure script so it will (hopefully) no longer error out when cross-compiling.
2632
2633	MD: memset() line buffer padding areas to prevent sprite rendering from reading from uninitialized memory.
2634
2635	MD: Fixed violations of strict aliasing in the 68K CPU core.
2636
2637	PC-FX, VB: Replaced SoftFloat, used in FPU emulation, with newly-written-while-sleep-deprived code.  It's possible this may
2638	cause regressions, since floating-point stuff is rather hairy...
2639
2640	Fixed an ancient bug that made iterative multibyte-value cheat searches extremely unreliable.
2641
2642	Fixed a bug that broke the output image when displaying a source image with multiple horizontal resolutions at a specific
2643	rotation angle(selected via ALT+O).
2644
2645	Added support for negative <system>.scanlines setting values, which will change scanline behavior and size to overlay/obscure
2646	the previous field's line data if "video.deinterlacer" is set to "weave".
2647
2648	Added setting "video.deinterlacer", default value of "weave".
2649
2650	NES: Align a temporary line buffer array to prevent the possibility of a CPU fault and/or poor performance on non-x86 platforms.
2651
2652	Simplified handling of muli-horizontal-resolution frames by changing "LineWidths"'s type from MDFN_Rect(representing
2653	x offset and width) to a simple int32(representing just width).
2654
2655April 23, 2014:
2656	GB: Added support for custom palettes that specify BGP, OBP0, and OBP1 colors independently.
2657
2658April 18, 2014:
2659	PC-FX, VB: Corrected the debugger's disassembly of the 5-bit sign-extended immediate form of "mov"
2660	(the disassembler was failing to sign-extend).
2661
2662-- 0.9.33.3: --
2663
2664April 16, 2014:
2665	Reworked the FPS calculation algorithm to produce more accurate FPS values.
2666
2667	Added a manifest file that's embedded into the Windows executable, to ensure that noxious DPI virtualization and scaling available
2668	on Windows Vista and newer will not be used with Mednafen.
2669
2670	Added code to disable DWM composition when running on pre-Windows 8 systems, to ensure better performance and less
2671	video juddering.  (Sadly, it's not possible to disable desktop composition in this manner on Windows 8 and later)
2672
2673	PCE, PCE_FAST: Added a missing ADPCM playback variable to save states; fixes the problem of severe ADPCM sound
2674	distortion when loading save states that are saved during ADPCM playback(especially noticeable with the state rewinding feature).
2675
2676April 15, 2014:
2677	Modified MDFN_RemoveControlChars() to not kill non-7-bit-ASCII text.
2678
2679April 12, 2014:
2680	Misc minor code cleanups and fixes for some compiler warnings.
2681
2682April 11, 2014:
2683	NES: Fixed broken emulation of board "UNL-Sachen-8259B"(used in the game "Silver Eagle").
2684
2685April 10, 2014:
2686	Fixed the with-drop-shadow internal text drawing routine to not draw horizontally one pixel beyond the specified maximum width
2687	in some circumstances.
2688
2689April 9, 2014:
2690	SNES: Altered a code construct to hopefully resolve a reported compiler error with clang.
2691
2692	Error out of save state loading when the version specified in the save state is invalid.
2693
2694	Call SDL_WM_SetIcon() before SDL_SetVideoMode(), to fix the problem of the missing Mednafen icon on some platforms/window
2695	managers.
2696
2697	Fixed a minor integer overflow issue in the core PSF loading code.
2698
2699	NES: Fixed some problems in the ROM image file loading code, including a potential heap overflow vulnerability.
2700
2701-- 0.9.33.2: --
2702
2703March 24, 2014:
2704	PSX: Fixed a small MDEC emulation bug; fixes the hang during startup in "SimCity 2000".
2705
2706March 17, 2014:
2707	The order of evaluation of the frame advance and run normal command keys/hotkeys is now based on whether or not we're
2708	currently in frame advance mode, to allow for the derivation of a single-press pause/unpause key(effected by the user mapping both
2709	functions to a single key).
2710
2711March 15, 2014:
2712	Renamed the log2 LUT array in the mpcdec code to avoid shadowing the math library function log2().
2713
2714	NES: Fixed the problem of the VS Unisystem DIP switch position display(accessed via the "F6" key) being invisible.
2715
2716	PCE: Fixed broken MCGenjin support.
2717
2718March 13, 2014:
2719	CDPLAY: Tweaked visualization code to reduce memory and CPU usage.
2720
2721March 11, 2014:
2722        Lynx: Minor code cleanups.
2723
2724-- 0.9.33.1: --
2725
2726March 8, 2014:
2727	Fixed compiler errors when compiling without the debugger.
2728
2729	Fixed a couple of memory leaks.
2730
2731	PSX: Made better use of exceptions in the loading and initialization code paths(and avoid leaking memory if a part of the
2732	process fails).
2733
2734	PSX: Protect against sound buffer overflow without causing a call to abort() so that using save states(when they're added)
2735	or power toggling/resetting in the debugger while in step mode is safer.
2736
2737	PSX: Output of debug messages to stdout and stderr is now controlled via the "psx.dbg_level" setting, whose default
2738	value of "0" disables almost all debug messages.  Set the setting to "3" to obtain roughly the same output as previous
2739	versions of Mednafen.
2740
2741March 1, 2014:
2742	Modified the simple interpolation pixel shader code to avoid using the GLSL 1.3 function "round()", for better compatibility
2743	with some OpenGL implementations.
2744
2745-- 0.9.33: --
2746
2747February 25, 2014:
2748	PSX: Reworked CD-XA ADPCM playback buffering and sector buffering per tests on a PS1; fixes the problem of cut-off voices
2749	in some games("Breath of Fire 4" for example), and *should* increase the playability of some games like "Um Jammer Lammy".
2750	Also, these changes seem to have somehow fixed the corrupted boss graphics in the first boss fight in "Captain Commando".
2751
2752	PSX: Refactored sector reading code, and added support for reading from the leadout area(the data is synthesized, though).
2753
2754February 15, 2014:
2755	Implemented simple dithering in the 16-bit->8-bit sound sample conversion code.
2756
2757	Added checks for legacy DOS device filenames to the untrusted file include path checking code used for Win32 and DOS.
2758
2759February 11, 2014:
2760	Added support for "FOUR_CHANNEL_AUDIO", "TWO_CHANNEL_AUDIO", "COPY", "NO COPY", "PRE_EMPHASIS", and "NO PRE_EMPHASIS" directives
2761	in the cdrdao TOC-format file parsing and Q subchannel synthesis code.
2762
2763	PC-FX, VB: Fixed V810 "mul" instruction overflow flag calculation per tests on a PC-FX.
2764
2765February 2, 2014:
2766	PSX: Added settings "psx.slstart", "psx.slstartp", "psx.slend", and "psx.slendp" to control the vertical positioning and viewable
2767	area(more useful with PAL).
2768
2769	NES: If the value of the nes.slstart? setting is larger than the value of the nes.slend? setting, swap the values when
2770	calculating the surface rectangle.
2771
2772	Rewrote the simple interpolation pixel shader code(for "ipsharper", "ipxnoty", "autoipsharper", etc.) to fix problems
2773	with the autoip* shaders sometimes causing diagonal distortion lines in some scenarios.
2774
2775February 1, 2014:
2776	Fixed a bug that caused major graphics corruption when rotation(ALT+O) is used with a multiple-horizontal-resolution source
2777	image(emulation modules that can produce such an image include pce, pce_fast, pcfx, psx, and snes).
2778
2779	Fixed a bug in the SDL soft stretching with rotation code path that effectively caused the source surface rectangle Y offset to be
2780	ignored(with varying effects from emulation module to emulation module).
2781
2782	GBA: Implemented support for 16bpp video output format.
2783
2784	GBA: Implemented usage of MDFN_MidLineUpdate().
2785
2786January 29, 2014:
2787	GB, NES, PCE_FAST, SNES: Implemented usage of MDFN_MidLineUpdate() call to allow for 0 video frame latency in some environments
2788	in the future(though this is not going to be possible for the VB module due to how it renders); and, we still need to figure out
2789	the semantics of handling interlaced video this way.
2790
2791January 24, 2014:
2792	Replaced some usage of snprintf() with trio_snprintf().
2793
2794	Replaced some usage of round(...) with floor(0.5 + ...) where appropriate, to work with the non-C99-compliant libc distributed
2795	with the last stable DJGPP release; however, we didn't have too many uses of round(), but it may make sense in the future to
2796	just insert our own custom round() function instead to preserve code clarity.	(Note that floor(0.5 + ...) does not always give
2797	the same result as round(), as it rounds negative midway points(-0.5,-1.5, etc.) differently).
2798
2799January 23, 2014:
2800	Made some changes to the build system to support a DOS port.
2801
2802January 18, 2014:
2803	VB: Moved initialization of some variables from the VSU emulation class destructor to the constructor(must have been asleep
2804	or something when that code first went in); fixes audio "pop" that could sometimes be heard on VB emulation startup.
2805
2806January 17, 2014:
2807	Use XInputGetStateEx() instead of XInputGetState(), if available, to allow for usage of the XBox 360 controller
2808	guide button within Mednafen on MS Windows.
2809
2810January 13, 2014:
2811	In the TOC file reading code, set disc type based on CD_DA/CD_ROM/CD_ROM_XA string.
2812
2813	In the CUE sheet reading code, if any tracks are MODE2, assume the disc type is 0x20(CD-XA).
2814
2815January 5, 2014:
2816	PSX: Moved CD-XA ADPCM resampling code from spu.cpp to cdc.cpp.
2817
2818	PSX: CD-XA ADPCM audio is now resampled using the proper(ish) impulse responses, as observed from running CD-R-eating-nom-nom-nom
2819	tests on a PS1(this improves CD-XA ADPCM quality a bit compared to what it was in previous versions of Mednafen).
2820
2821	PSX: Don't play CD-XA ADPCM sectors if the "realtime" bit in the subheader isn't set to 1(per an
2822	unintentional test on a PS1).
2823
2824January 1, 2014:
2825	Synchronize raw input mapping structures to setting strings when an emulated input device configuration is finished/interrupted,
2826	instead of unconditionally on exit or emulated device change, to prevent pollution of the primary settings file
2827	when using per-module settings override files(though in that context it doesn't make much sense to override the emulated
2828	input device mappings that way, but we're going to add per-game settings override support eventually).
2829
2830	Allow for overriding the "video.glvsync" setting and command key input mappings via the per-module settings override files.
2831
2832December 31, 2013:
2833	Added support for per-module settings overrides(specified via placing settings in files named such as "nes.cfg", "pce.cfg",
2834	"pce_fast.cfg", etc.).  The settings override files will be considered read-only, and should not alter the contents of the primary
2835	settings file unless an in-emulator configuration process occurs that builds on the current effective setting value.
2836
2837        PCE, PCE_FAST: Don't generate a command error if a track number too high is specified via CD commands 0xD8 and/or 0xD9; instead,
2838        treat it as if the leadout track was specified.  I'm not certain if this is correct behavior as per the actual system, but
2839        that'll have to wait until I'm able to run some tests.  Fixes a startup lockup in "Star Mobile".
2840
2841December 22, 2013:
2842	PC-FX: CD-DA impulse volume is now adjusted based on the current CD-DA playback rate.
2843
2844	PCE, PC-FX: Recalculated the CD-DA impulse phase adjustment convolution table to fix a tiny quality issue.
2845
2846December 18, 2013:
2847	PC-FX: Implemented ADPCM phase-correction filtering(related to the Dec. 1 resampling changes), and modified the ADPCM volume
2848	handling code to not throw away so much ADPCM output sample precision.
2849
2850December 1, 2013:
2851	PCE: Changed default value of "pce.psgrevision" from "huc6280a" to "match"; this causes revision "huc6280" to be used for
2852	non-SuperGrafx games, and "huc6280a" to be used for SuperGrafx games and HES playback(since SuperGrafx emulation is forcibly
2853	enabled during HES playback).
2854
2855	PCE, PC-FX: Implemented new sound resampling and filtering code(actually we did this in November, but it's been a definite
2856	work-in-progress since then, and still is to a degree);	benefits include better frequency response(especially for CD-DA),
2857	and more flexible filtering options(code-wise, for the future).
2858	Downsides include increased CPU utilization, and the output sound rate has a degree of error.
2859	  Minimum CPU usage(and quality) with the new resampling code can be achieved with the following setting values:
2860            pce.resamp_quality 0
2861            pce.resamp_rate_error 0.0000350
2862            pcfx.resamp_quality 0
2863            pcfx.resamp_rate_error 0.0000350
2864
2865	  Maximum CPU usage(and quality, though arguably overkill) can be achieved with:
2866            pce.resamp_quality 5
2867            pce.resamp_rate_error 0.0000001
2868            pcfx.resamp_quality 5
2869            pcfx.resamp_rate_error 0.0000001
2870
2871
2872	PCE: Removed support for the "enhanced" PSG revision(previously selectable by pce.psgrevision setting), as it had
2873	negligible benefits, caused problems with at least one game, and made the PSG emulation code slightly more complex.
2874
2875	PCE: Added setting "pce.adpcmextraprec", default value of 0, that when enabled will do the same thing that the PCE_FAST module
2876	is now hardcoded to do with ADPCM predictor precision.
2877
2878	PCE_FAST: Reduced Blip_Buffer attenuation of upper frequencies with CD-DA playback, and also to a lesser degree PSG sound.
2879
2880	PCE_FAST: Removed stubish Tsushin Booster code; the regular "PCE" module's better for emulating Tsushin Tool anyway, as it
2881	includes keyboard emulation.
2882
2883        PCE_FAST: Output full 12-bit ADPCM predictor instead of truncating it to 10-bits, for less whining in ADPCM sounds; since we're
2884        targetting PCE_FAST more for compatibility and subjective quality than outright accuracy per-se.
2885
2886        PCE_FAST: Utilizing some macro-magic, only use computed goto on compilers known to support it.
2887
2888        PCE_FAST: PSG revision changed to HuC6280A instead of "Enhanced".
2889
2890November 24, 2013:
2891	Reduced the maximum supported sound output rate from 1048576Hz to a much more reasonable 192000Hz(significantly eases proper
2892	sound processing algorithm design and testing).
2893
2894November 16, 2013:
2895	PCE_FAST: Fixed a potential crash after a garbage/corrupted ROM image is loaded.
2896
2897November 12, 2013:
2898	Reworked the debugger UI code to fix various thread safety issues by running it(drawing, and input processing) in the
2899	game/emulation thread instead of the main/video blit thread.
2900
2901November 9, 2013:
2902	PCE: During HES playback initialization, the second emulated VDC's registers are now initialized properly so that the
2903	emulation event system isn't overtaxed(which drove up CPU usage considerably during HES playback).  It may be prudent
2904	to look into implementing an optimization(based on VDC CR and DCR IRQ enable bits) in the HuC6270 emulation code so that a
2905	similar issue doesn't occur when the user has set "pce.forcesgx" to "1" and is emulating a non-SuperGrafx game; however, this
2906	could have a performance PENALTY for SuperGrafx games due to the required need to recalculate events on every VDC write(unless
2907	we're smart and only recalculate when the IRQ enable bits change?).
2908
2909November 7, 2013:
2910	Reworked settings string->floating-point conversion code to not use ancient(and apparently buggy) code from glibc, and
2911	instead rely on the system's libc(which is ostensibly less buggy!); also changed some of the NES setting structure entries so
2912	that the default values and minimum/maximum values have the same number of places after the decimal point to forestall
2913	any future similar problems with libc strtod().
2914
2915November 3, 2013:
2916	PSX: Implemented forced synchronization before calling debugger interface core hook.
2917
2918        Changed debugger CPU core hook semantics so that the core emulation code will only call the driver-side debugger interface
2919        code when absolutely necessary(which will allow for proper emulator core forced synchronization when in step mode
2920	without killing performance, which is a prerequisite for the register view, save states, and reset/power to work properly in
2921	step mode; actually implementing said forced synchronization will have to be done carefully on a core-by-core basis, though,
2922	in addition to other changes to make major machine state changes work reliably when in step mode).
2923
2924November 1, 2013:
2925	PCE_FAST: Changed CD-DA Blip_Synth treble parameter so that the upper parts of the CD-DA frequency spectrum aren't attenuated
2926	so much.
2927
2928	PCE_FAST: Removed PC-FX-specific code from the CD drive emulation code.
2929
2930	PCE_FAST: Forked PSG, CD interface unit, and CD drive emulation code so that it's no longer shared with the regular PCE and
2931	PC-FX(for CD drive) modules.
2932
2933October 25, 2013:
2934	SNES: Added support for Game Genie codes.
2935
2936	SNES: Simplified(and hackified gloriously!) and reduced memory usage of SuperFX memory mapping code.
2937
2938October 22, 2013:
2939	A name(used in the window title bar) for loaded CD games will now be extracted from the filepath, as was already done for
2940	cart-based games.
2941
2942October 21, 2013:
2943	Reworked cheat loading and saving code to use FileStream.
2944
2945	Renamed Stream::printf to Stream::print_format to avoid head-desking.
2946
2947	GBA, PCE, PCE_FAST: Rewrote custom palette loading code to use FileStream, and removed the undocumented gzip'd custom palette
2948	support in the process.
2949
2950October 20, 2013:
2951	PSX: Added limited support for entering "GameShark" cheats in the cheat interface(not every code type is supported), and some
2952	cheats may not work properly anyway due to differences in the timing of RAM patching in Mednafen vs on a actual GameShark.
2953
2954	Cheat support:
2955		The cheat interface's cheat list now displays less information overall, but is better structured.
2956
2957		Fixed broken cheat conditions when condition unit size is greater than 4 bytes(due to a missing typecast).
2958
2959		The interface for adding and modifying a cheat now exposes more of the core cheat engine functionality.
2960
2961		Added support for RAM copy and RAM repeat/fill type cheats to the cheat engine.
2962
2963October 18, 2013:
2964	NES: Added support for entering "Pro Action Rocky" cheats in the cheat interface.
2965
2966	GB: Added support for entering "GameShark" cheats in the cheat interface.
2967
2968	Refactored NES and GameBoy Game Genie decoding code from the Mednafen core into the NES and GameBoy cores respectively.
2969
2970	Made some changes to the cheat interface:
2971		Cheat text size is now larger with higher resolutions(though the size increase is a bit too granular).
2972
2973		When asking to add a new cheat, the default will now be 'Y' instead of 'N'.
2974
2975		System-specific cheat format adding support(e.g. Game Genie) has been moved to the main menu.
2976
2977		When adding a system-specific cheat(e.g. Game Genie), the code is now asked for before the name, and the default
2978		for the name is set to the code text.
2979
2980October 10, 2013:
2981	Lynx: Added emulation of Lynx 2 stereo audio registers, based on patches submitted by "sage".
2982
2983October 8, 2013:
2984	Added a very simple double-precision floating-point range test to tests.cpp.
2985
2986October 1, 2013:
2987	PC-FX: Changed the default value of setting "pcfx.rainbow.chromaip" from "1" to "0".
2988
2989	When reading the TOC from a physical CD with the READ TOC command, now use response format 0010b instead of response format
2990	0000b so that we can get the disc type field stored in the TOC.
2991
2992September 29, 2013:
2993	Fixed a bug that was causing the CD reading code to get confused about whether a disc(or drive dray) was inserted or ejected
2994	when the insert/eject MMC command failed, and updated the documentation in regards to physical discs and multiple CD games.
2995
2996	Added more verbose error messages when errors with libcdio occur in regards to reading a physical CD.
2997
2998September 27, 2013:
2999	PSX: Improved DualShock emulation accuracy per tests on a DualShock; rumble now works in "Final Fantasy 8", and possibly
3000	other games where rumble was previously non-working.
3001
3002	Reworked how joystick/gamepad rumble is handled on Linux, to perform better and hopefully not cause kernel panics
3003	anymore(or at least not so often as the old code did).
3004
3005September 25, 2013:
3006	CDPLAY: More Q subchannel information is now displayed.
3007
3008	PSX: Removed an unnecessary and borked memset() statement from mdec.cpp.
3009
3010	Compile with "-fno-aggressive-loop-optimizations", if the option is detected to be supported by the compiler.  I don't
3011	particularly trust that new optimization in gcc 4.8.x.
3012
3013September 22, 2013:
3014	SNES: Eliminated bsnes' internal framebuffer, and added a scanline render callback into the Mednafen interface code.
3015
3016	SNES: Reduced size of sound resampling buffer.
3017
3018-- 0.9.32-WIP: --
3019
3020September 12, 2013:
3021	PSX: Reworked GPU interlacing and double-height mode emulation code a bit; fixes lockups in "iS: Internal Section" and
3022	"The Next Tetris".
3023
3024-- 0.9.31-WIP: --
3025
3026September 4, 2013:
3027	PSX: Separated the memory map peeking functionality(for the debugger) from the main memory read/write handler, as previous
3028	timing changes broke peeking functionality, and the peeking code was making the read/write handler too complicated and hard
3029	to read.
3030
3031	When in the debugger's step mode, blit the previous valid frame, instead of trying to blit an incomplete frame(which
3032	was buggy and prone to various modes of failure).  In the future, blitting incomplete frames may be re-added as a "feature",
3033	but it will require work and guarantees in the emulation modules to make sure it works properly.
3034
3035	Slightly refactored code that passes around video buffers(in the driver-side code) to be a bit cleaner and more clear as
3036	to what it does.
3037
3038September 3, 2013:
3039	PSX: Slow down CDC DMA a bit, but nowhere near how long it is on an actual PS1(that will have to wait for further tests so
3040	we don't overshoot the time required).  Fixes broken music in the intro movie in "Legend of Mana" (a regression from the
3041	DMA changes on Aug 13).
3042
3043September 2, 2013:
3044	PSX: Various multitap changes:
3045		Improved multitap emulation, so that multitap will work properly with the "Tales of <XXX>" games.
3046
3047		Reworked how Mednafen's virtual port numbers are assigned to emulated PS1 and multitap ports(see the documentation
3048		for details on the new mapping), so multitap is not so user-unfriendly and will work better with netplay when
3049		save states are finally implemented.  Note that if you have used Mednafen's PS1 multitap emulation before for more than
3050		2-player support, this change will cause your multitap-connected configured controllers to be a bit jumbled up in
3051		regards to controller order.
3052
3053		Renamed the "psx.input.port1.multitap" and "psx.input.port2.multitap" settings to "psx.input.pport1.multitap" and
3054		"psx.input.pport2.multitap", respectively.
3055
3056August 29, 2013:
3057	Changed the semantics of the experimental "-remote" command-line argument such that it now takes a value, that is used as
3058	a "key" of sorts to differentiate between debug garbage written to stdout and properly-formatted messages.  Example:
3059		mednafen -remote gAsafYghGb50gAKSFskIAMARANDOMSTRINGRAWRGH SomeGame.pce
3060	...and the frontend would use something like:
3061		char *good_line = strstr(line_buffer, "gAsafYghGb50gAKSFskIAMARANDOMSTRINGRAWRGH");
3062	...and also changed where the "remote" initialization occurs, so that startup messages will be properly
3063	formatted.
3064
3065	Fixed a double-free bug in file.cpp that could be triggered if an error occurred while reading a non-compressed file
3066	into memory.
3067
3068	Refactored handling of physical CD loading:
3069		Removed physical CD device detection heuristics from the normal game file loading path.  This means you
3070		can't do something like "mednafen /dev/sr0" to load a physical CD anymore.
3071
3072		Deprecated -loadcd.
3073
3074		Added new command-line option "-physcd".  It takes no arguments, makes it so that the typically-required "filename"
3075		argument is optional, and treats the "filename" argument as the device name.  Examples of syntax:
3076
3077			mednafen -physcd
3078			mednafen -physcd /dev/sr0
3079			mednafen -physcd \\.\E:
3080			mednafen -force_module pce_fast -physcd
3081
3082August 28, 2013:
3083	Added experimental support for CloneCD-format disc images, based on my own observations and nocash notes.
3084
3085August 27, 2013:
3086	Fixed minor line-reading logic errors(we were discarding the last line read if it ended because of a stream EOF) with settings
3087	file and CUE/TOC file reading(with CUE/TOC file reading, it's a regression introduced on Aug 23) by changing the semantics of
3088	Stream::get_line()
3089
3090August 25, 2013:
3091	VB: Return a known good value on reads from the VIP version control register.
3092
3093	VB: Tweaked noise generation algorithm a bit per VB dev observations from PVB forum members.
3094
3095August 23, 2013:
3096	Reworked the CUE and TOC CD image loading code to use FileStream instead of FileWrapper, to remove the 512-byte line length limit,
3097	and to fix a bug that was causing multiple copies of the sector data file to be loaded into memory with multi-track TOC images
3098	when "cd.image_memcache" is set to 1.
3099
3100August 18, 2013:
3101	PSX: With MDEC, added emulation of quantization multiplier quirks per tests on a PS1, reversed the order of the 1D-IDCTs
3102	to match what was observed occurring on the PS1, and improved command word parsing.  The overall MDEC emulation model is
3103	still far from what it should be, though(not that commercially-released games really care), not to mention that the IDCT
3104	and colorspace conversion algorithms are still off in some test cases(looks to be precision and saturation related).
3105	(nocash notes were useful in devising tests, and for improving command word parsing)
3106
3107August 13, 2013:
3108	PSX: Slow down one type of DMA to the GPU, and add a cycle penalty to CPU memory reads when they occur during this type of DMA
3109	(almost fixes the glitchy "Sony Computer Entertainment" logo at the start of FF7).
3110
3111August 11, 2013:
3112	Made conditional cheats work on all emulation modules where cheat support is implemented(previously, they were limited
3113	to NES and PCE).
3114
3115	PSX: Fixed improper vertical screen offset in non-interlaced mode caused by the August 9 internal GPU field toggle change.
3116	Though come to think of it, maybe it's not so improper after all, but emulating that way does introduce practical problems,
3117	and I doubt any PS1 games will be switching between interlaced and non-interlaced modes every 16ms...
3118
3119August 10, 2013:
3120	PSX: MDEC 2D IDCT is now done via multiple 1D IDCTs, reducing computational complexity(and CPU usage).
3121
3122	PSX: Return data with all bits set on reads from the PIO memory area when it's not in use(for PSFs or whatnot); fixes game
3123	lockup in "Tetris with Cardcaptor Sakura".
3124
3125August 9, 2013:
3126	PSX: Corrected value of internal GPU field toggle when in non-interlaced mode; fixes "Toobin" in "Arcade Party Pak"(but
3127	I don't know why...)
3128
3129	PSX: Don't flush the DMA sector data buffer on Read* command start; fixes a lockup that occurred after a while in the
3130	course selection screen of "Crash Team Racing".
3131
3132August 8, 2013:
3133	PSX: Made some optimizations to the new memory load pipeline stall emulation code.
3134
3135	PSX: Improved CDC emulation model in regards to command argument FIFO handling, per tests and nocash notes.
3136
3137August 6, 2013:
3138	PSX: Brought pad/memcard serial I/O timing closer to that of an actual PS1; made practical(IE games don't flip out) by the
3139	aforementioned mess of a solution for pipeline stalls.
3140
3141	PSX: Implemented hackish, ugly, kludgish, abominational, horrible, terrible, and just downright bad pipeline stall
3142	emulation for divides, multiplies, and loads from memory.
3143
3144August 3, 2013:
3145	Lynx: Added 16bpp video output format support.
3146
3147	Added 8bpp and 16bpp video format support to the deinterlacing code.
3148
3149	MD: Added 16bpp video output format support.
3150
3151	Encapsulated mostly-platform-independent OpenGL blitting and shader code into classes.
3152
3153August 2, 2013:
3154	In the deinterlacer code, if the current field surface pixel format does not equal the field history surface pixel format,
3155	convert the field history surface to the current pixel format.  Fixes minor graphical glitches in some circumstances when using
3156	the "overlay" "video.driver" setting.
3157
3158July 31, 2013:
3159	Fixed a few minor issues in Stereo_Buffer.
3160
3161	GB: Made minor optimizations to graphics rendering code.
3162
3163	GB: Added support for 8bpp and 16bpp video output formats(color gamut is heavily degraded in CGB games when rendering for 8bpp,
3164	though).
3165
3166-- 0.9.29-WIP: --
3167
3168July 26, 2013:
3169	Manually replaced m4/iconv.m4 with the copy from the latest gettext, and modified it slightly, to fix build errors on
3170	some non-glibc-utilizing platforms(e.g. my Win32 toolchain setup).
3171
3172	Fixed a bug that broke(sometimes crashing Mednafen) displaying of long lines in the console viewport(cheats, netplay).
3173
3174July 24, 2013:
3175	SNES: Fixed a couple of bugs that could cause memory corruption when a corrupted/bad save state is loaded.  (Bad save states being
3176	loaded can still cause the emulator to lock up or trigger an assert(), and that's probably never going to be fixed, at least
3177	with the SNES emulation core).
3178
3179July 22, 2013:
3180	SNES: Implemented code for more aggressive frameskipping, but currently disabled pending further contemplation.
3181
3182	Removed some unused files from the SNES emulation code tree.
3183
3184July 17, 2013:
3185	SNES: Changed hires blending algorithm, and only blend when in pseudo-hires mode(which is "cheating" a bit, but is ultimately
3186	the best solution I've found to blend/blur what needs to be while preserving pixel clarity).
3187
3188July 15, 2013:
3189	SNES: Implemented partial frameskipping support(won't affect emulation from the view of the emulated program/game, and it is disabled
3190	when interlacing is enabled).
3191
3192	SNES: Changed it so the Mednafen core does deinterlacing, instead of the bsnes core; improves performance slightly when games
3193	are in interlaced mode.
3194
3195July 14, 2013:
3196	WASAPI: Prevent complete Mednafen lockup when a device invalidation error occurs after successful initialization.
3197
3198	WASAPI: Fixed sample format conversion/volume issues with > 16-bit formats.
3199
3200July 13, 2013:
3201	SNES: Smashed some PPU emulation files together just 'cause.
3202
3203	SNES: Made minor structural optimizations to S-SMP emulation.
3204
3205July 12, 2013:
3206	SNES: Made minor structural(shouldn't affect emulation accuracy) optimizations to SuperFX emulation.
3207
3208July 11, 2013:
3209	Added support for additional formats and rates to the new, experimental WASAPI exclusive-mode driver; fixes audio output on my
3210	Echo Mia MIDI sound card.
3211
3212May 28, 2013:
3213	CDPLAY: Added boolean setting "cdplay.visualization", default value of "1", to allow disabling of the CPU-intensive
3214	simplistic waveform visualization effect.
3215
3216	CDPLAY: Reduced horizontal and vertical resolutions to 60% of their previous values, to reduce CPU usage.
3217
3218April 20, 2013:
3219	Fixed a typo-bug that would cause Mednafen to crash when, in addition to the host, the port was specified via the
3220	/server command in the netplay console.
3221
3222April 3, 2013:
3223	Lynx:  Fixed an audio bug(or alternatively, replaced with kludges ;)) that was breaking the "mwahahaha" audio from the spiderthing in Gates of Zendocon, per a bug
3224	report and code patch from "sage".
3225
3226	The "autoip" and "autoipsharper" pixel shaders weren't working properly when the screen was rotated(such as via ALT+O); fixed.
3227
3228March 23, 2013:
3229	PSX: Changed Read* and Play CD command processing, and added support for playing CD-DA via the Read* commands coupled with
3230	bit0 of the mode set via SetMode; fixes music resumption after pause issue in "Mortal Kombat Trilogy".
3231
3232March 19, 2013:
3233	Rearranged the psg_channel struct in pce_psg.h a bit to potentially allow for tiny performance improvements on some
3234	architectures.
3235
3236	PCE_FAST:  Made a few micro-optimizations to the BG rendering code.
3237
3238March 17, 2013:
3239	PCE_FAST:  Added a runtime check for "cmov" instruction availability on 32-bit x86, and an alternate VDC BG/SPR mixing function
3240	that avoids using it when it's not available.  Fixes an illegal instruction-related crash on older
3241	non-Intel CPUs(like AMD K6-III+), and Intel CPUs older than Pentium Pro(though I doubt that even a 233MHz Pentium MMX is fast enough to
3242	run it fullspeed anyway).
3243
3244	Added a compiler version check to avoid utilization of "fastcall" calling convention when compiling with a version of
3245	gcc older than 4.1.0, as the older versions of gcc have code generation bugs relating to fastcall/regparm(though I'm not
3246	sure if Mednafen will even compile at all with those older versions...).
3247
3248	Repositioned the FPS display position when in SDL software rendering mode such that it won't cause a potentially
3249	expensive backbuffer clear operation for every frame which would compromise the accuracy/usefulness of the FPS display.
3250
3251	Fixed some bugs with the SDL software rendering mode fallback used when the "opengl" vdriver is selected but OpenGL initialization
3252	failed(doubled-buffered video wasn't being specified in this fallback case, which led to massive screen flickering when an OSD
3253	element was active).
3254
3255March 14, 2013:
3256	Added a configure script option to build without fancy software scalers(hq2x, 2xsai, scale2x, and the like).
3257
3258	Replaced ancient rectangle drawing code with newer, slightly different code!
3259
3260February 24, 2013:
3261	Renamed edc_lec_check_correct() to edc_lec_check_and_correct().
3262
3263February 19, 2013:
3264	SNES: Use higher-quality, but more CPU-intensive(and slightly higher latency, on the order of about 1ms), speex resampler
3265	instead of Fir_Resampler.
3266
3267	PC-FX: Save-game RAM is no longer stored compressed.
3268
3269	PCE, PCE_FAST: BRAM save-game RAM is no longer stored compressed.
3270
3271	Optimized special scalers slightly by not initializing dynamically allocated memory for pixel data, since it's overwritten in
3272	totality by the special scalers anyway.
3273
3274	Added a parameter to MDFN_Surface()'s constructor to allow the creation of a surface without initializing its pixel
3275	data to zero.
3276
3277	Added a kludge to try to clear all OpenGL backbuffers(when necessary) when an OpenGL implementation with forced
3278	triple-buffering is used.
3279
3280	Changed code so that the video backbuffer won't be needlessly cleared due to OSD presence if the OSD is only
3281	displayed in portions of the screen that are overwritten each frame anyway during normal emulated video blitting.
3282
3283February 18, 2013:
3284	When recording a QuickTime movie and the sound output rate is greater than 64000Hz, resample the audio stream written
3285	to the QuickTime file to 64000Hz, as the QuickTime format has issues with sound rates greater than 65535Hz.
3286
3287February 14, 2013:
3288	Removed MDFND_KillThread().
3289
3290	Worked around x87 excess-precision problems that were causing nonsensical error messages to be printed in some circumstances
3291	when parsing the settings file.  I'm so tempted to just compile with -mfpmath=sse when compiling for 32-bit x86...
3292
3293	Fixed broken error messages printed out when an error occurs when loading the settings file.
3294
3295	SexyAL:
3296		Changed DirectSound buffer writing algorithm to write up to an extra ~30ms of sound data beyond the
3297		effective buffer size on sound writes, and then synchronize(IE wait) to the effective buffer size
3298		after the data is written, to slightly reduce the chance of sound buffer underruns and sound glitches on a loaded
3299		system.
3300
3301		Changed DirectSound buffer underrun handling to better preserve the flow of emulated time.
3302
3303		Use a dynamically-allocated buffer sized to fit 25ms of output-device-format audio as the sound conversion target
3304		buffer, rather than a statically-allocated fixed-size buffer that could only fit a very small amount of audio data
3305		(time-wise) at higher output sample rates.
3306
3307		Added channel deinterleaving into the main audio format conversion code, and removed the driver-specific deinterleaving
3308		code from the "ALSA" and "JACK" driver code.
3309
3310		Fixed a potential buffer overrun bug when converting 1-channel audio from one sample format to another(it's unlikely to
3311		have triggered a crash though, due to the size of the sound buffers used and doing the conversion in chunks).
3312
3313		Added logic to the "SDL" and "JACK" output driver code so that the internal software buffers won't overflow if a
3314		large amount of data is passed to it at once(which wouldn't have happened anyway, since there's protection code
3315		in the SexyAL core to prevent that, but that protection code is in need of removal or updating).
3316
3317January 27, 2013:
3318	Added a floating-point-related compiler code generation bug test to tests.cpp.
3319
3320January 20, 2013:
3321	Changed endian detection in tremor header files to hopefully fix a compilation problem on Haiku.
3322
3323January 19, 2013:
3324	SNES: Renamed some functions to fix a compilation problem on "ALT Linux".
3325
3326	MD: Fixed broken default key assignments for emulated 3-button gamepads(for the A, B, and C buttons).
3327
3328-- 0.9.28-WIP: --
3329
3330January 13, 2013:
3331	PSX: Corrected lcm_width and lcm_height emulation module structure values(affects QuickTime movie recording).
3332
3333	Fixed a bug in the netplay sound buffer underrun mitigation code that was causing it to only write 1/2 the data it should
3334	be writing when the emulated system has stereo sound output.
3335
3336	Make netplay text line command processing only able to make the netplay text area visible or refresh its visibility, and not
3337	able to hide it; fixes a problem of the netplay text area disappearing before the command response text
3338	(like the disconnect message after /quit) can be seen.
3339
3340	Un-documented Musepack support for ripped CD images as the feature doesn't get much testing, and the support will eventually
3341	be removed(someday ;)).
3342
3343	Removed some ancient unused members of a debugger-related address space data structure.
3344
3345	Fixed a major bug in the CD image audio decoding code that broke repeated playback of
3346	CD audio tracks that are encoded in files handled by libsndfile(e.g. FLAC, WAV), although it may not have affected all
3347	formats, the problem was noted to occur with FLAC at least.
3348	(The bug is a regression apparently introduced in 0.9.25-WIP)
3349
3350January 12, 2013:
3351	PCE_FAST: Fixed some problems with the 8bpp palette generation routine.
3352
3353	Don't compile with -ffast-math anymore, as it was noted to mess up the NES sound resampler code when
3354	__attribute__((cold)) was used on the filter class constructor, to the extent that it was clearly audible.
3355
3356January 10, 2013:
3357	Don't needlessly clear the software video buffers to black when changing video modes; fixes the problem of the screen going
3358	black when in frame advance mode and toggling fullscreen.
3359
3360January 8, 2013:
3361	Fixed a crash(due to a buffer overflow) in Mednafen's test CD-DA player when sound is disabled.
3362
3363	Fixed recording of QuickTime movies when sound is disabled(it was producing unplayably broken QuickTime files before).
3364
3365	PSX: Added a pseudorandom component to command processing and seek timing, to prevent a lockup in "Legend of Dragoon".
3366
3367January 6, 2013:
3368	NES, PCE_FAST: Made limited use of MDFN_COLD.
3369
3370	Added "MDFN_COLD" define, expanding to "__attribute__((cold))" on sufficiently-recent versions of gcc.
3371
3372	NES, PCE_FAST: Implemented 8-bit rendering internally(for ports, not used by Mednafen proper), using static(in the sense
3373	that the palettes won't change while emulation is in progress) palettes.  The limitations of palettized 8bpp don't
3374	really affect the NES too much in practice, except for at least one homebrew demo.  The PC Engine, on the other hand, is
3375	a different story...
3376
3377January 5, 2013:
3378	PC-FX, VB, PSX: Fixed debugger trace log PC address recording.
3379
3380	VB: Corrected (lack of) disassembly of "di" and "ei" instructions.
3381
3382	PC-FX: Fixed broken VDC-A/VDC-B VRAM read/write aux debugger breakpoint support.
3383
3384	PC-FX: Fixed debugger's graphics viewer weirdness when viewing transparent KING BG pixels(by forcing them to black).
3385
3386	PC-FX: Fixed totally broken VDC VRAM debugger memory editor functionality
3387
3388January 4, 2013:
3389	Only rebuild and re-run the 68K core generator program when necessary, hopefully fixing one big problem when doing
3390	a pure cross-compiled build.
3391
3392January 3, 2013:
3393	Added "SABR"( http://board.byuu.org/viewtopic.php?f=3&t=3416 ) pixel shader, as an option for the *.pixshader settings.
3394
3395December 24, 2012:
3396	Added "WYSIWYG"-style(except for the "overlay" video.driver) scaled, filtered, maimed, diced, and so forth screen snapshots,
3397	taken with the SHIFT+F9 key
3398
3399	Marked "Insert/Eject disk/disc" key function assigned to key F8 as being "dangerous" and subject to the delay specified by
3400	the "ckdelay" setting, since many games respond very poorly to the disk/disc being ejected in the middle of a disc/disk
3401	operation.
3402
3403December 23, 2012:
3404	Simplified(less multithreaded message moving madness) and moved some driver-side netplay code into the Mednafen core.
3405
3406-- 0.9.27-WIP: --
3407
3408December 20, 2012:
3409	Removed some old unused code from the memory debugger.
3410
3411	PSX: The debugger's disassembler will now pull instructions from the instruction cache, if it's valid(and fall back
3412	to the memory map data if it's not).
3413
3414	NES: Fixed a bug in the FDS state loading routine that could cause sound issues(wrong volume of FDS sound channel).
3415
3416	NES: Replaced a floating-point filter used when expansion sound is in use with a 64-bit fixed-point integer math filter,
3417	to fix a problem of massive performance degradation in some circumstances(probably due to denormals).
3418
3419	NES: Fixed a bug that was causing a crash when Game Genie emulation was enabled while trying to emulate an FDS game.
3420
3421	Don't make use of errno in FileWrapper::read when handling an unexpected EOF.
3422
3423	NES, SNES: Replaced usage of stdio file access with FileStream usage.
3424
3425December 19, 2012:
3426	Fixed a startup multithreading race condition with QuickTime and WAV file recording.
3427
3428	PC-FX: Resolved a few compiler warnings.
3429
3430	Replaced usage of stdio file access with FileStream usage in:
3431		Memory debugger.
3432		NGP FLASH memory saving/loading routines.
3433
3434December 17, 2012:
3435	NES: Added setting "nes.correct_aspect".
3436
3437	Attempt to open a Linux (joystick) event device read-only if opening it for read+write fails, so at least some of the
3438	enhanced functionality will be available on Linux distributions with partially broken device permissions.
3439
3440December 16, 2012:
3441	PSX: Run EXE-loading MIPS binary code from a cacheable segment so it doesn't take so long to run.
3442
3443December 15, 2012:
3444	SNES: Changed frame/system synchronization point logic, to reduce input latency by 1 video frame(~17ms).
3445
3446	SNES: The setting "snes.correct_aspect" setting now supports the unique PAL aspect ratio with PAL games(rather than just correcting the
3447	aspect ratio per NTSC as before)
3448
3449	SNES: Fixed a bug that was causing distorted vertical scaling with PAL games.
3450
3451December 12, 2012:
3452	PSX: Improved CDC "ID" command emulation, fixes a problem with music in "WipEout 3".
3453
3454	PSX: Changed how end-of-disc is handled while CD-DA is playing, per tests on a PS1; fixes a major problem with
3455	"Wu-Tang - Shaolin Style" during its startup.
3456
3457December 11, 2012:
3458	PSX: Added a kludge to the CDC logical seek emulation code to fix the problem of missing music in "Gran Turismo 1".
3459
3460	PSX: More DMA emulation revising.
3461
3462December 10, 2012:
3463	PSX: Force DMA channel 6's channel control register bit1 to 1, per tests on a PS1.
3464
3465December 9, 2012:
3466	PSX: Added use of MDFN_LIKELY() and MDFN_UNLIKELY() to the CPU core.
3467
3468	Added MDFN_LIKELY() and MDFN_UNLIKELY() macros to provide crude branch prediction hints to the compiler.
3469
3470	PSX: Improved DMA controller emulation, per tests on a PS1 and nocash documentation.  Fixes major problems with "Final Fantasy 7",
3471	"Final Fantasy 9", "Chrono Cross", "Legacy of Kain - Soul Reaver", and "Dragon Quest 7".
3472
3473December 8, 2012:
3474	PSX: Added preliminary instruction cache emulation, fixes problems with "Formula One 99", "Formula One 2000", and "Formula One 2001".
3475
3476	PSX: Corrected the value in the CPU product ID register.
3477
3478December 5, 2012:
3479	PSX: Improved GPU info control port command emulation, per tests on a PS1.
3480
3481	PSX: Reset more GPU state on software(via control port) reset, per tests on a PS1.
3482
3483December 2, 2012:
3484	PSX: Initialize NTSC vertical and horizontal GPU display timings properly on software reset(via the GPU control port),
3485	per tests on a PS1(the horizontal timings might not be 100% correct, but they probably are).
3486
3487	PSX: Increased the amount of NTSC horizontal overscan shown.
3488
3489	PSX: Revamped GPU vertical display timing model, per tests on a PS1(the old model was Quite Wrong), and made the visible
3490	vertical 240-pixel "viewport" match standard PS1 NTSC game vertical timings.
3491
3492	PSX: Ignore lower bit of the GPU framebuffer X readout coordinate, per tests on a PS1.
3493
3494	Made CUE sheet parser slightly stricter.
3495
3496	Added setting, "cd.image_memcache", default value of "0", that when enabled will cause any referenced data files in CUE and
3497	TOC sheets to be loaded entirely into memory on startup, and cause the non-multithreaded CD reader interface to be used
3498	rather than the reader interface that uses an additional thread, for that emulated CD.
3499
3500November 16, 2012:
3501	Replaced various instances of "__attribute__((unused))" with MDFN_NOWARN_UNUSED, a macro defined in types.h.
3502
3503	Removed nonutilized file "git-virtb.h".
3504
3505November 13, 2012:
3506	PCE_FAST: Comment out a debug print statement in the CPU emulation core.
3507
3508	PCE_FAST: Fixed a heap overflow bug when loading excessively large ROM images.
3509
3510November 6, 2012:
3511	Fixed a compiler warning in the Linux joystick code that could hypothetically be treated as an error by some compiler(configurations).
3512
3513	In the Linux joystick code, Directly include <linux/input.h> instead of relying on it being included by <linux/joystick.h>.
3514
3515November 5, 2012:
3516	Removed internal input button data encoding method "IDIT_BUTTON_BYTE", as the sole user of it(Family Keyboard) has been changed
3517	to not use it, and it is wasteful(especially with netplay).
3518
3519	NES: Simplified Family Keyboard emulation, and compacted the key state.
3520
3521	NES: Removed unused members from emulated input device definition structures.
3522
3523November 4, 2012:
3524	Don't error out if the corresponding evdev to a jsdev device can't be opened, and instead rely
3525	on legacy jsdev functionality only, as Mednafen versions prior to 0.9.25-WIP would.
3526
3527November 3, 2012:
3528	The "SDL" audio driver/output method now respects the "sound.period_time" setting.
3529
3530November 2, 2012:
3531	PCE: Fixed a rather obvious major problem with the (incomplete/preliminary) MCGenjin emulation code.
3532
3533	Added missing sizeof(RAWINPUTDEVICELIST) parameter to a GetRawInputDeviceList() call in the Win32 DirectX joystick code.  It's
3534	probably not strictly necessary now when viewed in context, but may be in the future if Microsoft does something weird, which Microsoft
3535	tends to do, so better safe than sorry.  Thanks to zeromus for pointing it out.
3536
3537October 28, 2012:
3538	Fixed typos that broke compilation without internal CJK fonts.  Thanks to zeromus for pointing it out.
3539
3540October 25, 2012:
3541	VB: Completely removed the deprecated and disabled code for support for ".bin" file extension.
3542
3543	NES: Added support for iNES mapper 37.
3544
3545October 24, 2012:
3546	NES: Changed filter parameters for a "nes.soundq" setting of "-2", increasing the computational complexity slightly, so that
3547	games like "Solstice" and "Mega Man 2" don't sound like whining messes.
3548
3549October 19, 2012:
3550	Cleaned up TODO file a bit, migrating some of the useful data into the general documentation.
3551
3552	PCE_FAST: Brought aspect ratio correction in line with the "pce" module(which is about what it should be).
3553
3554-- 0.9.26-WIP: --
3555
3556October 13, 2012:
3557	PSX: Handle non-word-aligned timer port reads and writes, rather than triggering an assert().  Also, a warning message is
3558	now printed if a game tries to read from timer open bus space, rather than an assert() being triggered.
3559
3560	More C++11 warning fixes.
3561
3562October 12, 2012:
3563	NES: Added emulation of iNES mapper 101.
3564
3565October 11, 2012:
3566	PSX: Added a "Dance Pad" emulated device, that uses mostly the same code as the "Gamepad" device, but doesn't provide
3567	access to the shoulder buttons, and allows for opposing D-pad directions to be pressed simultaneously.
3568
3569	PSX: Improved emulation of bit15 of the SPU control register; fixes problems with "Dance Dance Revolution",
3570	"Medal of Honor", "Madden NFL 2003", "Fuuraiki", and "The Misadventures of Tron Bonne".
3571
3572October 10, 2012:
3573	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
3574	CPU logical address space.
3575
3576-- 0.9.25-WIP: --
3577
3578October 9, 2012:
3579	Fixed a problem of usage of uninitialized memory in a startup function in drivers/input.cpp.
3580
3581October 8, 2012:
3582	PSX: Tweaked GunCon hit detection, to improve menu behavior in games like "Point Blank 2".
3583
3584	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;
3585	more accurate modeling will need to take into account the time passed since the Pause command among other things(TODO for
3586	the future maybe, though the relationship between time passed and time to resume from a Pause state is a bit...wonky).
3587
3588	PSX: Pause command completion time is now more accurate, per tests on a PS1.
3589
3590October 7, 2012:
3591	PSX: Changed conditions under which "GetLocL" fails, per limited tests on a PS1.  Fixed a game-breaking lockup in "Star Ixiom".
3592
3593	PSX: Added CDC "Standby" command and status emulation, fixes a game-breaking lockup in "Philosoma".
3594
3595October 6, 2012:
3596	PSX: Don't run DMA channel 1 unless there really is data available from the MDEC; fixes partially-broken FMV in "Rayman".
3597
3598October 5, 2012:
3599	PSX: DMA, and GPU FIFO emulation tweaks, to fix a regression in "Legacy of Kain - Soul Reaver"(the game does something fairly
3600	unique; it has a transfer length of 0x10 in some linked-list headers).
3601
3602	PSX: Increased base cycle usage counts for polygon commands, per tests on a PS1.
3603
3604	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
3605	on limited data) to have a contention or dependency system with different functional units that have access to the FIFO; the changes
3606	here just simulate some of its less-computationally-expensive characteristics in regards to GPU status bits and
3607	gross/rough timing.
3608
3609September 30, 2012:
3610	Fixed numerous code constructs that caused errors and/or warnings when compiling for the C++11 standard.
3611
3612September 29, 2012:
3613	PSX: Improved reliability of the Konami Justifier simulated offscreen shot process.
3614
3615	PSX: More event handling tweaks.
3616
3617September 28, 2012:
3618	PSX: Added experimental emulation of the DREAD Konami Justifier.  This light gun makes tears of pain flow in a torrent.
3619
3620	PSX: Added partial emulation of some esoteric timer features, though what was added is probably not totally correct.
3621
3622	PSX: Altered the global event system to use a sorted doubly-linked list, to allow for more precise timing of events
3623	in relation of one sub-device/chip to another.
3624
3625September 27, 2012:
3626	Added code to allow CD image file data to be entirely loaded into memory, though the code is not used as such at current.
3627
3628	SNES: Added boolean setting "snes.correct_aspect", default value of "0"(preserving previous behavior).
3629
3630	PSX: Added additional heuristics for determining game region; fixes misdetection of the region for the North American release
3631	of "Wing Commander IV".
3632
3633September 25, 2012:
3634	PSX: Tweaked GunCon x coordinate scaling.
3635
3636	Changed absolute mouse x and y coordinate passing from driver->core to be in 1.15.16 fixed point format(previously
3637	simple integers), to avoid excess precision loss when scaling the coordinates from viewport dimensions
3638	to nominal_width and nominal_height.
3639
3640September 24, 2012:
3641	PSX: Added preliminary GunCon emulation.
3642
3643	Genesis: Adjusted aspect ratio slightly.
3644
3645	PSX: Adjusted NTSC aspect ratio slightly.
3646
3647	PSX: Reduced internal frame buffer width by 1/4(reduces memory usage).
3648
3649	PSX: When playing a PSF, virtual input(gamepad, etc.) devices are no longer emulated as being connected.
3650
3651	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
3652	message).
3653
3654	Fixed resource leakage issue when CUE/TOC sheet loading aborts due to an error.
3655
3656September 20, 2012:
3657	Removed the rawer parts of a half-baked idea implemented long ago in the virtual input device abstraction structures, and
3658	removed some extremely poorly-scaling-with-increased-emulated-system-count-and-emulated-device-count code that said
3659	half-baked functionality required, shaving a considerable amount off Mednafen's startup time
3660	(though probably not really noticeable on faster CPUs).
3661
3662	Modified settings loading and saving code to use new FileStream functionality.
3663
3664September 18, 2012:
3665	Modified the CD image reading and "AudioReader" code(used for reading MS WAV/Vorbis/MusePack/etc) to operate on a
3666	"Stream" object instead of using stdio functions on "FILE", in regards to files used for track data.  This allows MemoryStream
3667	to be used very easily to preload the track file data into memory, which may be put to use in the future.
3668
3669	Implemented FileStream, derived from Stream, as a quick wrapper around FileWrapper(HAH).
3670
3671September 15, 2012:
3672	Map SDL hats to buttons instead of axes in the new joystick interface abstraction code, to prevent loss of information.
3673
3674September 8, 2012:
3675	Entered more information into the possible values enum struct for the *.debugger.disfontsize setting(s) so that the possible values
3676	will be in the autogenerated documentation.
3677
3678September 7, 2012:
3679	Added a const char* "Description" member to the "InputDeviceInfoStruct", and did some minor internal plumbing so it will be propagated to the
3680	automatically-generated documentation if non-NULL.  (For the possibility of more verbose emulated input device information for the
3681	*.input.port* settings in the documentation)
3682
3683September 6, 2012:
3684	Increased size of line buffer used in settings file reading.
3685
3686	Changed input configuration evaluation code to allow multiple physical mappings to a single emulated analog button/axis to work properly(it is
3687	somewhat useful for neGcon emulation).
3688
3689	PSX: Added neGcon emulation.
3690
3691September 5, 2012:
3692	Added setting "input.joystick.global_focus".
3693
3694	Renamed settings:
3695 		autofirefreq -> input.autofirefreq
3696 		analogthreshold -> input.joystick.axis_threshold
3697 	 	ckdelay -> input.ckdelay
3698
3699September 3, 2012:
3700	PSX: Don't mask the address specified by the memcard write command, but instead signal an error condition if the address is invalid, per
3701	tests on a PS1.
3702
3703September 1, 2012:
3704	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.
3705
3706August 31, 2012:
3707	Only destroy and recreate the emulated device and device state on the port being altered with CTRL+SHIFT+[n], rather than all ports, to
3708	avoid usability problems with more complex input devices(like on the PS1 for instance).
3709
3710	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
3711	configuring input without an emulator exit in-between.
3712
3713August somethingth, 2012:
3714	PSX: Added DualShock emulation, complete with Analog mode toggle button emulation.
3715
3716	Revamped physical joystick/gamepad support:
3717		Added native code targeting DirectInput(5.0) and XInput on MS Windows, and jsdev and evdev on Linux.
3718
3719		Added support for rumble on Linux and XInput devices on MS Windows.
3720
3721		Refactored and recoded much of the joystick input configuration handling code.
3722
3723		Added kludgey support for handling physical joystick analog buttons in the input configuration process without it freaking out:
3724		  Note: The process described below should NOT be necessary if you're using an XBox 360/XInput controller under MS Windows.  If
3725		  you're using such a controller under a different operating system, or using a non-XBox 360/non-XInput controller, and it has
3726		  analog buttons, then you should perform the process as described below.
3727
3728		  Also note that the process is only necessary when you're configuring inputs, and not during "normal" gameplay/usage.
3729
3730		  Twirl all sticks and D-pads and press all analog buttons on any physical gamepads/joysticks with analog buttons you want
3731		  to use in the input configuration process, then press F3.  Then, configure input as normal.  The detected analog buttons
3732		  will be recognized during input configuration until Mednafen exits;  if you exit Mednafen and restart, and want to configure
3733		  input devices again, you'll need to repeat the twirling-pressing-F3 process again).
3734
3735August 12, 2012:
3736	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.
3737
3738	Removed the last vestiges of the driver-side handling of the long since removed/replaced PC-FX multi-resolution-frame multi-layer alpha
3739	blending method.
3740
3741August 11, 2012:
3742	Added setting "osd.alpha_blend", default value of "1", that controls enabling of OSD alpha-channel blending.  Set it to "0" for
3743	a speedup when using the "sdl" video.driver.
3744
3745	Software("sdl" video driver) render fixes/improvements:
3746		Improved precision and rounding behavior with the fixed-point math used for scanline effects and non-integer scaling.
3747
3748		Implemented alpha blending for all OSD elements except the FPS display.
3749
3750		Added support for the scanlines effect when the screen is rotated(via ALT+O).
3751
3752		Fixed a bug that caused an enabled scanline effect to be missing when a special scaler(hq2x, hq3x, scale2x, etc) is used
3753		and no post-special-scaler scaling is necessary.
3754
3755August 10, 2012:
3756	Implemented minor optimizations to the "sdl" "video.driver" scanlines effect code.
3757
3758	Changed a ton of driver-side OSD rendering code to use MDFN_Surface instead of SDL_Surface.
3759
3760August 1, 2012:
3761	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.
3762
3763June 14, 2012:
3764	Added a non-threaded alternative implementation of CDIF(currently unused, but will be useful if we ever target an OS without multithreading
3765	capabilities).
3766
3767July 13, 2012:
3768	Lynx: Made reporting of errors during game load to be more verbose.
3769
3770	GB: Error out if a ROM image to be loaded is less than 512 bytes in size.
3771
3772	GB: Don't use TestMagic() in Load(), and don't return -1.  (So that -force_module gb will work as expected)
3773
3774-- 0.9.24-WIP: --
3775
3776July 12, 2012:
3777	Only use "AI_ADDRCONFIG" flag with getaddrinfo() hints if it's available; fixes a compilation error on OpenBSD.
3778
3779	Disallow manual save states with "snes" module during netplay, since the bsnes save state code alters the current state on save state,
3780	which would cause desynchs, or annoyances and extra bandwidth usage to work around the issue, in a netplay environment.
3781
3782July 9, 2012:
3783	Netplay:
3784		Removed setting "netplay.merge", since similar functionality can be obtained by issuing one or more of the newly-added commands.
3785
3786		Added /take, /dupe, and /drop commands.
3787
3788July 8, 2012:
3789	PSX: Implemented CD-XA playback current file and channel matching(per very limited tests on a real PS1), fixes broken speech in
3790	"Yarudora Series Vol.1 - Double Cast".
3791
3792	Netplay:
3793		BSD/POSIX: Only use MSG_NOSIGNAL if it is defined; fixes compilation issue on Mac OS X.  And don't use MSG_NOSIGNAL
3794		for recv(), only send().
3795
3796		BSD/POSIX: Use socket option "SO_NOSIGPIPE", if available.
3797
3798		Handle a recv() return value of zero properly(or at least semi-properly :b), to prevent a lockup in certain situations.
3799
3800		Added player /swap command(requires mednafen-server 0.5.0).
3801
3802July 6, 2012:
3803	SMS: Added "Power Strike II" to the internal game database, to force PAL mode, per suggestion from "megadriver".
3804
3805-- 0.9.23-WIP: --
3806
3807July 5, 2012:
3808	PSX: Fixed a very small memory leak in frontio.cpp.
3809
3810	Updated internal copy of miniLZO from version 2.01 to version 2.06.
3811
3812July 4, 2012:
3813	SNES: Removed some debug printf()'s that got left in the code from the work a few days ago.
3814
3815	Networking:
3816		Don't pass a NULL pointer to the WSAIoctl() output length count pointer argument.
3817
3818		More verbose error reporting with Winsock2 network code.
3819
3820		Break out of the name resolution loop so that we don't erroneously connect() multiple times.
3821
3822		Fixed some socket leaks on error bugs.
3823
3824	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
3825	runtime(sans reset/power condition, of course); fixes audio glitches with the guitar sounds in "Um Jammer Lammy".
3826
3827July 3, 2012:
3828	Wrote netplay code directly targeting BSD/POSIX and Winsock2 APIs, and removed SDL_net support.  This change also brings support
3829	for IPv6.
3830
3831July 2, 2012:
3832	/server and /connect no longer accept "[HOST]:[PORT]" form, only "[HOST] [PORT]".
3833
3834	/server and/or /connect with no arguments in the netplay console will now connect to the server as specified by "netplay.host" instead
3835	of trying to connect to an empty string and trashing the "netplay.host" setting in the process.
3836
3837July 1, 2012:
3838	Fixed various internal problems with the netplay user interface code(memory leaks, using free()'d memory, definite multithreading unsafety,
3839	/quit not working properly, trying to access the network when the connection is closed, etc.).
3840
3841June 30, 2012:
3842	Further disable state rewinding functionality during netplay.
3843
3844	SNES: Backported(sort of) a fix to the serializer code that was breaking 64-bit integer restoring.
3845
3846June 29, 2012:
3847	SNES: Change various instances of "if(scheduler.sync == Scheduler::SyncAll)" to "while(scheduler.sync == Scheduler::SyncAll)" in the
3848	bsnes code, for better save state behavior.
3849
3850	SNES: Run S-SMP more tightly in sync with S-CPU, to further reduce frame timing jitter.
3851
3852June 27, 2012:
3853	Updated netplay protocol to increase the maximum number of allowed controllers per game from 8 to 16.
3854
3855June 26, 2012:
3856	Changed save-state header magic from the 16-bytes MEDNAFENSVESTATE to the 8-bytes MDFNSVST, to make room for a 64-bit creation
3857	timestamp(which will be used in the future).
3858	The old header magic is still recognized, for backwards compatibility.
3859
3860June 25, 2012:
3861	Cleaned up and remove VLA usage from core netplay code.
3862
3863June 24, 2012:
3864	NES: Fixed an annoying old compiler warning in "ines.cpp".
3865
3866	SNES: Disable some warnings to keep compilation of the bsnes code from spamming the screen with warnings.
3867
3868	SNES: Implemented kludges to prevent sound clicks and scratchiness when state rewinding functionality is enabled(but it's still plenty
3869	scratchy when actually rewinding ;)).  A more proper fix does not seem possible, due to the way bsnes works.
3870
3871	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.
3872	This change has a small negative speed impact.
3873
3874June 23, 2012:
3875	Tidied up netplay join/leave messages.
3876
3877May 30, 2012:
3878	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
3879	assert-triggered "crash" when using scale2x with PSX emulation(and possibly Genesis and PC Engine emulation with some games, as well).
3880
3881May 29, 2012:
3882	PSX: Fixed a stupid bug in the FB fill GPU command; the height iteration variable was being tested in respect to drawability(interlace mode,
3883	dfe, etc.), rather than the actual destination Y coordinate into GPU RAM.  Fixes major graphical problems with "Dead or Alive".
3884
3885May 28, 2012:
3886	PSX: Altered data structures to avoid instantiating a templated struct with 0-size arrays.
3887
3888May 26, 2012:
3889	PSX: The Pause CDC command will "complete" much, much faster now if the drive is already paused.  Fixes the lack of music after pausing
3890	and unpausing in "Dead or Alive".
3891
3892	PSX:  Corrected GPU line draw command coordinate precision handling, in regards to x,y drawing offset, per tests on a PS1; fixes a
3893	flickering line issue in "Triple Play 97".
3894
3895May 25, 2012:
3896	PC-FX: QuickTime movie recording will now (indirectly) take the "pcfx.high_dotclock_width" setting into account, to reduce the
3897	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
3898	of "1024", unless you understand the graphical degradation smaller setting values will cause in some games.)
3899
3900	MD: Fixed a bug that was causing the QuickTime movie recording code to instantly crash right after emulator startup with MD/Genesis emulation.
3901
3902May 24, 2012:
3903	PCE_FAST: Some 32-bit x86 inline assembly was listing "rbp" in the clobber list, when it should have been listing "ebp".  Fixed.
3904
3905May 23, 2012:
3906	PSX: Improved the emulation accuracy of GPU texture windows(and made the texture window code much simpler), per tests on a PS1.
3907
3908May 23, 2012:
3909	PSX: Mask sprite width and height for custom/variable-sized GPU sprites against 1023 and 511, respectively, per tests on a PS1.
3910
3911-- 0.9.22-WIP: --
3912
3913May 8, 2012:
3914	PC-FX: Increased the minimum allowable value for the "pcfx.cdspeed" setting from "1" to "2".
3915
3916	Replaced internal module graphics layer toggling code with absolute graphics layer enable mask setting code.
3917
3918May 5, 2012:
3919	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).
3920
3921May 4, 2012:
3922	Fixed broken support for "CTRL" modifier when configuring command keys/hotkeys(this doesn't affect hardcoded default key assignments,
3923	or manual configuration file changes to use the ctrl modifier, both of which already worked fine, it's just the in-Mednafen configuration
3924	process that was broken in regards to the CTRL modifier key).
3925
3926May 2, 2012:
3927	PSX: Fixed SPU handling of voice pitches > 0x3FFF; fixes broken sound effects in "Tales of Phantasia", and likely other games
3928	as well.  Thanks to "sparklewind" for bringing the bug to my attention, and recording sound samples of the sound effects from a PS1.
3929
3930April 30, 2012:
3931	MD: Reworked YM2612 LFO PM/FM emulation based on notes from Nemesis.  Changed the LFO AM waveform start phase so
3932	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
3933	setting 0x1 shift factor.
3934
3935April 29, 2012:
3936	PSX: Increased CD audio buffering slightly, and flush buffers on Pause, to reduce the number of voice audio glitches in "Tales of Destiny 2".
3937
3938April 28, 2012:
3939        PSX: Began adding save state support.
3940
3941	Fixed a regression in the deinterlacer code, from the April 20 fix, that was causing the first entry in a valid line widths array
3942	to be trashed.
3943
3944April 26, 2012:
3945	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
3946	that it can easily be removed in the future when the CPU timing mess is resolved).
3947
3948	PCE: Added direct BRAM editing capability to the debugger's memory editor.
3949
3950	PCE: Fixed broken direct main RAM viewing and editing in the debugger's memory editor.
3951
3952April 23, 2012:
3953	MD: Added support for region overrides in the internal database(though no entries that override region are present yet).
3954
3955	MD: Changed supported region(as indicated by the game's embedded header) preference order to prefer domestic NTSC over overseas PAL.
3956
3957	MD: Removed an erroneously superfluous interrupt pending check in the 68K emulator core(which should have been removed a long time ago,
3958	since it is apparently a leftover of the original C68K timing model).
3959
3960April 21, 2012:
3961	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
3962	in "Micro Machines", possibly other games.
3963
3964	MD: Corrected VDP vblank flag set and clear time, fixes sprite glitches in X-Men 2.
3965
3966April 20, 2012:
3967	Fixed a bug in the system-independent deinterlacing code that was causing graphical glitches with Genesis interlaced mode under
3968	certain conditions
3969
3970	MD: Reset-button-triggered reset no longer resets VDP state, fixes major graphical corruption with Bonkers after such a reset.
3971
3972April 19, 2012:
3973	MD: If the YM2612 channel "algorithm" has changed, start the attack phase on the next key on from maximum attenuation, to ostensibly
3974	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
3975	Genesis, which will have to wait until I'm able to obtain a Genesis flash cart.
3976
3977April 18, 2012:
3978	MD: Fixed the YM2612 save state code to work again(after the recent changes broke it); however, the recent changes have broken
3979	save state compatibility with save states from 0.9.21-WIP and earlier, and that isn't going to be "fixed".
3980
3981	MD: Fixed a major problem with the new EG implementation that was causing significant timbre and volume issues, due to an erroneous
3982	assumption(from PS1 emulation work) of how the attack phase entry works(thanks to a terse old forum post from Steve Snake
3983	for clarifying the issue).
3984
3985April 16, 2012:
3986	MD: Tweaked the sin and exp table algorithms to more or less match those described at https://docs.google.com/View?docid=dd8kqn9f_13cqjkf4gp
3987	(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.
3988
3989	MD: Fixed a bug(relating to ADSR phase skipping) in the new EG code that caused some broken music in Flashback.
3990
3991April 15, 2012:
3992	MD: Fixed CSM support(untested) in YM2612 emulator.
3993
3994	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
3995	need to be fixed, along with some other code cleanups)
3996
3997	MD: Simulated FIFO bits in the status register were only being set(to 1), and never cleared.  Fixed.  (Mega Turrican actually checks the
3998	FIFO full bit, unlike many other games).
3999
4000April 14, 2012:
4001	MD: Updated Z80 core to latest FUSE SVN revision(though it required heavy modification for inclusion in Mednafen, so it's possible
4002	something Z80-emulation-related could have broken in the process); the update fixes some undocumented flag results, and changes/fixes timing
4003	for some instructions.
4004
4005	MD: Implemented very crude VDP FIFO timing simulation, fixes issues with "Soldiers of Fortune" and "Fatal Rewind".
4006
4007	MD: Removed old, questionable YM2612 hack, fixes some missing sound effects in "Williams Arcade's Greatest Hits".
4008
4009April 13, 2012:
4010	MD: Changed VDP line timing based on information in Genesis Plus GX, "Bram Stoker's Dracula" is now playable.
4011
4012	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.
4013
4014	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
4015	increased CPU usage.
4016
4017	MD: Fixed a bug in the VDP DMA fill and VDP DMA VRAM copy timing calculations, fixes graphical glitches in a few games.
4018
4019	MD: Applied Yabause revision 1972 C68K timing fix patch.
4020
4021April 11, 2012:
4022	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
4023
4024April 10, 2012:
4025	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
4026	a game's crash from crashing Mednafen as a whole.
4027
4028	PSX: Removed unused partially-implemented CPU trampoline code and data, to reduce RAM usage and clean up code a bit(it was originally
4029	to ensure stability with a PC-as-a-pointer style CPU optimization, but that optimization was never implemented due to being in conflict
4030	with branch delay slot emulation).
4031
4032April 9, 2012:
4033	PSX: Added main RAM mirror addresses to the fast instruction fetch memory map.
4034
4035	PSX: Added various coprocessor-related instructions to the disassembler.
4036
4037	Added logical AND mode command key functionality(where all buttons/keys configured to the command are required to be in a pressed state
4038	simultaneously for the command to occur), on a per-command basis(commands can be configured in this mode with SHIFT+F2).
4039
4040April 8, 2012:
4041	Fixed transposed memset() value and length arguments in cdromif.cpp, thanks to skitt for the notice.
4042
4043	PSX: Fixed triangle coordinate precision in relation to draw offset based on more tests, fixes flickering graphical glitches on the
4044	right side of the screen in "Quake II", probably other games as well.
4045
4046April 7, 2012:
4047	PSX: Added L3 and R3 button emulation for emulated Dual Analog gamepads.
4048
4049-- 0.9.21-WIP: --
4050
4051March 30, 2012:
4052	Updated the internal copy of libmpcdec to r475(which supports SV8, whereas the version in Mednafen previously only supported up to
4053	SV7), and updated the CD audio file reading code to use the new API, fixing a few problems(with variable initialization, and seeking)
4054	in the process.
4055
4056	SNES, PSX: Moved cleanup/deallocation code into a separate Cleanup() function, and call Cleanup() instead of CloseGame() in case of
4057	error during file loading, to prevent nonvolatile saved memory deletion in case of error.
4058
4059	SNES: 8MiB of memory is now allocated for the ROM image buffer passed to bsnes, regardless of actual ROM image size, to work
4060	around potential design flaws in the bsnes cart loading code to prevent emulator crashes with malformed or corrupted ROM images.
4061
4062	SNES: Added an 8MiB limit maximum ROM image size limit.
4063
4064March 29, 2012:
4065	Updated the internal copy of tremor to SVN revision 18222, and imported and merged in libogg 1.3.0, since SVN tremor
4066	no longer has its own libogg implementation(and hasn't for some time apparently!).
4067
4068	PSX: Added draw time penalty for texturing on polygons.
4069
4070	SNES: Began adding SNSF support.
4071
4072	SNES: Added default mouse button assignments to emulated mice, and default key assignments to the emulated gamepad on the first
4073	port.
4074
4075March 28, 2012:
4076	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
4077	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).
4078
4079	PSX: Added draw time penalty for goraud/gradient polygon shading.
4080
4081	PSX: Reduced draw time penalty for having transparency enabled, and added a draw time penalty for mask evaluation, per a quick,
4082	noncomprehensive test on a PS1(more thorough testing in the future is warranted) on a flat-shaded triangle.
4083
4084	PSX: Reduced triangle coordinate integer component precision, and reduced the maximum allowed triangle height to 512; fixes some graphical
4085	glitches in "Fighting Force 2".
4086
4087	PSX: Added SPU RAM editing(as opposed to simply viewing, as before) capability to the debugger.
4088
4089	PSX: Noise mode being enabled on a voice will now suppress ADPCM block flags effecting an ADSR release, per tests on a PS1.
4090
4091March 27, 2012:
4092	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
4093	from plausible hypothetical behavior.
4094
4095	PSX: Added emulation of some bits of the SPU status "register" at 0x1F801DAE.
4096
4097March 21, 2012:
4098	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
4099	more SPU emulation work).  This should fix sound glitches in the "Legend of Mana" FMV sequences.
4100
4101March 20, 2012:
4102	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
4103	"halting" is likely more complex than simply halting the CPU unconditionally while the DMA runs; and even in a C program, the
4104	halting effect does not occur immediately, but is slightly delayed, which is not emulated).
4105
4106	PSX: Improved CDC DMA timing slightly.
4107
4108	PSX: Bit 28 of a channel control register is now cleared on DMA completion of that channel, per tests on a PS1.
4109
4110March 19, 2012:
4111	PSX: Mute/Demute is now implemented for CD-XA playback as well as CD-DA playback.
4112
4113	PSX: SPU control register bit14(mask 0x4000, the mute bit) no longer affects CD audio output, per a test on a PS1.
4114
4115March 4, 2012:
4116	PSX: Added emulation of SPU registers available at [0x1F801E00, 0x1F801E80).
4117
4118February 29, 2012:
4119	NGP, VB, GBA: Implemented minor optimizations for when running on PowerPC.
4120
4121February 28, 2012:
4122	PSX: Added support for running on big-endian hosts, and added PowerPC-specific optimizations(AltiVec IDCT for MDEC,
4123	and load/store byte-reverse instructions via inline assembly for memory accesses).  A 1.42GHz PowerMac G4 system
4124	is more than fast enough to play PSFs(especially with the idle loop detection speed hack added earlier), but is much
4125	too slow to play games at full speed.
4126
4127February 18, 2012:
4128	NES: Fixed Famicom Arkanoid controller emulation, thanks to raz0red for reporting that it was completely borked.
4129
4130February 16, 2012:
4131	Fixed a compilation problem with gcc 4.7-prerelease, reported by belegdol.
4132
4133Feburary 11, 2012:
4134	PSX: Fixed a mnemonic typo in the disassembler for "sltu", thanks to zeromus for reporting it.
4135
4136February 6, 2012:
4137	PSX: Altered DMA abort behavior to try to prevent lockups in some games.
4138
4139February 5, 2012:
4140	PSX: Fixed a potential buffer overflow crash when playing a PSF if the PSF tries to enable GPU video output.
4141
4142	PSX: Added a simple idle loop detection speed hack to the CPU core, used only during PSF playback.
4143
4144	PSX: Removed the InBDSlot variable, rolling its functionality into an interpretation of the lower 2 bits of the "new_PC_mask"
4145	variable.
4146
4147February 3, 2012:
4148	Fixed a spelling error in a 3D mode setting in vb/vb.cpp
4149
4150	Added some missing typecasts in src/file.cpp.
4151
4152January 31, 2012:
4153	Fixed a bug in the interpolation pixel shaders code that could cause a shader compilation error on some
4154	OpenGL implementations.
4155
4156-- 0.9.19-WIP: --
4157
4158January 28, 2012:
4159	Added workaround for questionable header changes with libcdio 0.83 and newer.
4160
4161January 25, 2012:
4162	Fixed "x" and "y" <system>.videoip settings not working properly with screen rotation(though the fix is a bit
4163	convoluted, in the future it may make sense to completely re-evaluate how destination rectangles and rotation
4164	are done).
4165
4166	Re-added "ipxnotysharper", "ipynotxsharper", and "ipsharper" pixel shader settings.
4167
4168	Fixed interpolation-pixel-shader algorithm texture coordinate evaluation.
4169
4170January 24, 2012:
4171	Re-added "ipxnoty" and "ipynotx" pixel shader settings, to compensate for the removal of the extended videoip settings.
4172
4173	Fixed "x" and "y" <system>.videoip settings to work properly in full-screen mode.
4174
4175	PSX: Added default mouse button assignments for emulated mice.
4176
4177	PC-FX: Fixed a crash when selecting the "RAINBOW" layer in the debugger's graphics viewer.  (Note that viewing
4178	the RAINBOW layer via this manner is still not supported; IE there's just empty space when the layer is selected in the
4179	graphics viewer).
4180
4181January 23, 2012:
4182	WonderSwan: Fixed a reset initialization bug(due to a design flaw) that was partially corrupting internal and
4183	external EEPROM.
4184
4185	PSX: Added emulation of LWL and LWR load delays, and emulation of LWL and LWR diversion of the register writeback
4186	stage of a previous instruction's delayed load.
4187
4188January 22, 2012:
4189	libcdio version information is now printed out on startup.
4190
4191January 21, 2012:
4192	PSX: Added mouse emulation.
4193
4194	Changed how physical mouse events are processed, removing a potential thread-safety issue with some SDL functions,
4195	and ensuring that a very quick mouse button press and release registers as pressed for at least 1 frame, as far
4196	as command processing and virtual input device emulation go.
4197
4198January 20, 2012:
4199	PSX: Added default keyboard button assignments for emulated digital gamepad 1.
4200
4201	PSX: Worked on multitap emulation some more.
4202
4203	PSX: Corrected gamepad and memcard emulation, to only respond when the first communication byte is 0x01 or 0x81
4204	respectively, rather than masking the byte with 0x81 and then testing, which is apparently incorrect based on
4205	real system testing.
4206
4207January 19, 2012:
4208	PSX: Began adding multitap emulation.
4209
4210	Fixed broken emulated input device selection command keys for ports 6, 7, and 8
4211
4212January 18, 2012:
4213	PSX: Front port I/O changes:
4214		Masked values written to control and mode registers to match tests on a real PS1.
4215
4216		Corrected RxD bit status when no device is driving it(was 0, should be 1).
4217
4218		Added emulation of DSR status bit to reads from the status register(though DSR emulation is totally kludgy
4219		at the moment, need to fix it up in the future).
4220
4221		Added emulation of interrupt status bit to reads from the status register.
4222
4223		Added emulation of memory card insertion detection bit, that is apparently set when the memory card receives
4224		power after being off, and is cleared by issuing a (successful?) write.
4225
4226		Attempted memory card block reads from beyond the end of the memory card will now fail as tested(granted
4227		not extensively tested for multiple beyond-end address values) on a real PS1.
4228
4229		The high byte of the read address specified in the memory card read command will now be echoed back in
4230		the following byte sent back to the PS1, as per tests on the real PS1(previously in Mednafen, that byte was
4231		just being sent as 0x00).
4232
4233		The receive buffer byte is now duplicated across all bytes of multi-byte reads of the data port address,
4234		as on a real PS1.
4235
4236		Began adding analog gamepad support; though, the current front port SIO device interface is a bit clunky,
4237		so probably no more emulated devices will be added until that can be improved.
4238
4239	PSX: Removed asserts on MFC0 from a debug register; a warning message will still be printed if a debug register
4240	is written with MTC0, however.
4241
4242	Fixed a bug that could cause an assert() to be thrown with small effective y-scale values on certain types of
4243	multires video frames, thanks to Speedvicio for reporting it.
4244
4245January 17, 2012:
4246	PSX emulation module compilation is now enabled by default in the configure script.
4247
4248	PC-FX: Fixed a lack of updating a cached copy of the debugger-editable KING register "ADPCMCTRL" on edit.
4249
4250	Added a rudimentary test in the configure script to determine if "-fno-strict-overflow" or "-fwrapv" should be used
4251	(in regards to gcc 4.2.x generating bad code for -fno-strict-overflow).
4252
4253	Updated list of gettext translateable source code files.
4254
4255January 16, 2012:
4256	PSX: Fixed emulation of bit7 of SPU control register, it actually appears to control the reverb algorithm writing
4257	into the reverb work area, rather than setting the inputs to 0 as it was emulated before.  Fixes music corruption
4258	in "The Roots" demo, music playback in "Vib-Ribbon", and possibly minor sound glitches in other games as well.
4259
4260	PSX: CD audio data is now written to SPU RAM without SPU output CD volume being applied, fixes course generation
4261	in "Vib-Ribbon".
4262
4263	Implemented support for mapping command keys(hotkeys) to mouse buttons; it was partially implemented before,
4264	in that the command key configuration process allowed you to select mouse buttons for a command key, but the
4265	mouse buttons had no effect in actually triggering the command.
4266
4267January 15, 2012:
4268	GB: Added GB system type selection via "gb.system_type" setting.  Sound emulation nuances have
4269	changed from the previous default, such that DMG games will select emulation of the DMG sound hardware whereas
4270	before they selected CGB sound hardware.  To achieve the previous behavior, set the "gb.system_type" setting to "cgb",
4271	though note that in a future version this setting may change color and palette selection as well.
4272
4273January 13, 2012:
4274	Corrected a wrong argument type in an error reporting function in drivers/shader.cpp, which should fix compilation
4275	issues with certain OpenGL implementations.
4276
4277	PSX: Removed erroneous coordinate check in line-drawing code that was preventing 1-pixel-long lines from
4278	being drawn, and fixed a divide-by-zero issue that removing the check caused.
4279
4280	Port cache is now cleared on game close; has no practical effect on stock Mednafen, but needed for ports
4281	that allow for more than one game loading per instance, to prevent problems with netplay and state rewinding.
4282
4283	PSX: Refined GPU status port bit28 emulation, per tests run on a
4284	real system(it's a bit weird and inconsistent).
4285
4286	PSX: GPU polylines now require at least one line segment(two vertices) to
4287	be specified before the termination code is honored, per tests on
4288	a real system.
4289
4290January 12, 2012:
4291	PSX: Fixed a problem with shaded polyline end code evaluation, fixes startup lockup in "Codename: Tenka".
4292
4293	PSX: Fixed GPU flipped sprite drawing, the starting coordinates were being set incorrectly as
4294	to how a real GPU apparently works(and how a real GPU apparently works is kind of wonky compared
4295	to sprite flipping on older consoles!).
4296
4297	PSX: Sprites are no longer dithered, per test results run on the real thing(though only with commands
4298	0x64 through 0x67, it's possible that the others couuuuld be different, more tests will be run).  Fixes
4299	the motion-blurred running scene in the beginning of "Silent Hill".
4300
4301January 11, 2012:
4302	PSX: Improved GPU FB Read, FB Write, FB Copy, and FB Fill command emulation(particularly coordinate and
4303	size masking; and doing mask bit handling for FB Copy, which fixes FF8 battle transitions), based on tests
4304	run on a real system.
4305
4306January 8, 2012:
4307	PSX: Fixed IRQ idle and FIFO room bits, fixes graphical update issues with "The Roots" demo.
4308
4309	PSX: Made OT clear DMA occur over time instead of instantly.
4310
4311	Fixed a deinterlacer bug that would cause a stale field to be displayed for the first interlaced frame after a
4312	period of non-interlaced frames.
4313
4314January 6, 2012:
4315	More build information is displayed on startup.
4316
4317	Fixed a memory leak in the internal message display code.
4318
4319January 5, 2012:
4320	Improved PAL region game support, and added rough region autodetection, with a BIOS filename setting for each supported
4321	region.
4322
4323January 4, 2012:
4324	Fixed multiple issues with the signal handler.
4325
4326January 3, 2012:
4327	Fixed temporal blur memory allocation that could lead to crashes with emulated systems that support
4328	interlaced video, it was only allocating for a fixed height of 256 when it should have been using the fb_height
4329	member of MDFNGameInfo.
4330
4331	Fixed problems with the configure script that caused user-supplied CPPFLAGS to be ignored.
4332
4333	The Win32 build is now compiled with gcc 4.5.4 20111030(prerelease), and compiled with gcc option "-mstackrealign".
4334
4335December 30, 2011:
4336        PSX: Added emulation of coprocessor->CPU transfer delay slots, fixes
4337        graphical glitches in "Tekken 2".
4338
4339        PSX: Fixed bug that was causing timer overflow flag to be set when it shouldn't be(when in target mode).
4340
4341	PSX: GPU CLUT offset wrapping fixed(fixes "Next Tetris").
4342
4343	PSX: Return interlaced mode field in bit 13 of GPU status port reads.
4344
4345	PSX: Miscellaneous GPU emulation improvements relating to coordinate precision.
4346
4347	PSX: Revamped GPU, SPU, and MDEC DMA, (and GPU command buffering), to run over time instead of all at once.
4348
4349December 29, 2011:
4350	Lynx: Fixed EVERON detection emulation, and emulated a hardware bug regarding SCB data reading, the latter of which
4351	fixes a graphical glitch in "Joust".  Thanks to sage and LX.NET for information and patches.
4352
4353December 21, 2011:
4354	PSX: Fixed a typo in the return value calculation for control command 0x10, fixes graphical glitches in
4355	"Xenogears".
4356
4357December 19, 2011:
4358	PSX: Added backing variables/memory for memory accesses to 0x1f801000-0x1f801023, though their actual functionality isn't
4359	emulated yet.
4360
4361	PSX: Added dummy SIO(rear serial port) emulation to fix a divide-by-zero crash in Wipeout.
4362
4363	PSX: Altered ReadN and ReadS semantics, fixes a lockup in Suikoden II.
4364
4365	PSX: CD sector error correction will no longer be attempted on mode 2 form 2 sectors, fixes data corruption and lockup
4366	issues with "Final Fantasy Tactics", "SaGa Frontier", and perhaps others.
4367
4368December 18, 2011:
4369	PSX: Fixed a problem with line drawing gradient shading, fixes some glitches with lighting effects
4370	in "Quake II", "Need for Speed III", and probably other glitches in other games as well.
4371
4372	PSX: Altered Mem->GPU DMA completion calculation to take into account the GPU's FIFO, though the FIFO simulation
4373	is rather crude; fixes various games that were flickering messes.
4374
4375	PSX: Fixed FB write coordinate and size masking to not be braindead(it didn't allow 1024 width or 512 height,
4376	which obviously broke games).
4377
4378December 17, 2011:
4379	PSX: Improved emulation of SPU control register bit 15, fixes sound effects and music glitches in "Viewpoint", "Mat
4380	Hoffman's Pro BMX", and likely other games as well(though "Hydro Thunder" still seems to have issues with
4381	garbage sound).
4382
4383	PSX: Improved emulation of SPU control register bit 14.
4384
4385December 16, 2011:
4386	SMS: Began work on fixing H-counter behavior.
4387
4388December 15, 2011:
4389	PSX: Masked FB write coordinates and widths to the bare minimum; not sure if this is totally correct(need to run
4390	tests on the real thing), but it fixes a startup lockup in "Crash Team Racing".
4391
4392	Revamped internal CD direct reading abstraction, and made several user-visible changes:
4393		Removed "cdrom.lec_eval" setting; it complicated internal design, and was a bad decision in the sense
4394		that it could promote distributing patches or CD rips that would likely not work properly when burned to
4395		an actual disc.
4396
4397		Added more proper support for multi-disc CD games; see the CD-emulation section in the documentation
4398		for further details.
4399
4400		Dropped support for physical CD drives that don't support MMC commands, don't support raw sector reading,
4401		and/or don't support raw subchannel reading.
4402
4403December 7, 2011:
4404	Added experimental support for enabling linear interpolation on one axis only(via the <system>.videoip setting),
4405	that doesn't require FBOs or pixel shaders.
4406
4407December 4, 2011:
4408	PSX: Corrected time of FB Y readout offset lower bit versus field bit setting, fixes startup freeze in
4409	"X-Men: Mutant Academy".
4410
4411	PSX: Made SPU IRQ emulation slightly more accurate.
4412
4413December 3, 2011:
4414	PSX: Added a kludge to prevent the GPU from returning busy status on status port reads after DMA to the GPU
4415	     finishes its simulated run time, to fix major problems with the battles in "Valkyrie Profile".
4416   	     TODO: This kludge will be removed when more accurate DMA emulation is in place in the future.
4417
4418	PSX: Reduced triangle vertex x,y coordinate integer precision, fixes missing level graphics in "Tony Hawk's
4419	Pro Skater 2".
4420
4421December 2, 2011:
4422	PSX: Improved mask bit emulation, fixes text brightness issues in "Dragon Quest 4", and possibly other
4423	graphical issues in other games as well.
4424
4425	Swapped the lines the scanlines effect is applied to, and removed the OpenGL texture offset hack used when scanlines
4426	were enabled.
4427
4428December 1, 2011:
4429	PSX: Improved display FB Y readout position emulation, and added support for line skipping and "dfe" functionality
4430	when drawing in interlaced mode(it's likely not 100% correct, though).
4431
4432November 29, 2011:
4433	Added emulation of the VDP quirk present in the Japanese SMS VDP to fix the graphical glitches in the Japanese
4434	version of "Ys"; however, the quirk will only be emulated when the "sms.territory" setting is set to "domestic".
4435
4436November 28, 2011:
4437	Replaced the various <system>.pixshader ip* settings with "autoip" and "autoipsharper", and rewrote
4438	the underlying "sharper" interpolation algorithm to produce more visually-pleasing results.  There is some loss of
4439	potential functionality with this change, but hopefully the gained functionality will greatly offset the loss in
4440	practice.
4441
4442November 25, 2011:
4443	SMS: Reduced FM volume to prevent some kind of overflow clicking in Blip_Buffer(TODO: investigate where
4444	exactly it was happening).
4445
4446November 17, 2011:
4447	Fixed some code causing compiler warnings in:
4448		psx/dis.cpp
4449		pcfx/king.cpp
4450		pcfx/fxscsi.cpp
4451		pce_fast/vdc.cpp
4452		pce/vce_sync.inc
4453		nes/boards/emu2413.cpp
4454		nes/ntsc/nes_ntsc.cpp
4455		md/debug.cpp
4456		md/cd/cdc_cdd.cpp
4457
4458November 15, 2011:
4459	Fixed the broken scanline effect when the screen is rotated when using the OpenGL video output driver.
4460
4461November 13, 2011:
4462	Genesis: Fixed left/right gamepad default key assignments, they were backwards for some reason.
4463
4464	Changed the default values for <system>.xres and <system>.yres to "0", which will cause Mednafen to use
4465	the same resolution as the desktop video mode.
4466
4467	Changed the default values for <system>.xscalefs and <system>.yscalefs to "1", and changed the default value
4468	for <system>.stretch from "0"(disabled) to "aspect_mult2".
4469
4470	Revamped the quick help(via F1) screen, removing the annoying partial opacity and changing colors and layout
4471	slightly.
4472
4473	Remapped the screen rotation button from "F8" to "ALT + O", enabled screen rotation for all emulated systems,
4474	and renamed the "command.rotatescreen" setting to "command.rotate_screen".
4475
4476November 12, 2011:
4477	Began adding support for emulated analog buttons/axes to the core and driver code(to be used in the future
4478	for additional PSX input device support).
4479
4480November 11, 2011:
4481	Implemented a workaround for compiling the unzip code with Gentoo's messed up zlib header files.
4482
4483November 10, 2011:
4484	NES: Corrected multiple problems with mouse coordinate translation for Zapper, Space Shadow Gun, Oeka Kids Tablet,
4485	and Arkanoid controller emulation, especially with non-default video settings.
4486
4487November 9, 2011:
4488	Altered "video.glvsync" semantics slightly, such that a setting of "0"(vsync disabled) will override video card
4489	system driver settings in the same way that a setting of "1" will.  (In short, it makes disabling vsync via this
4490	setting more reliable)
4491
4492November 8, 2011:
4493	Added new video stretch modes "aspect_int" and "aspect_mult2".
4494
4495	WonderSwan: Implemented experimental setting "wswan.language"; it's only known to affect one game.
4496
4497November 7, 2011:
4498        PSX: Made SPU execution slaved to the CDC, to prevent potential edge-case synchronization issues for audio streaming.
4499
4500	PSX: Implemented rudimentary CD-XA playback.
4501
4502	PSX: Implemented GetLocL CD command.
4503
4504October 30, 2011:
4505	PSX: Implemented more of MDEC, to the point where the video in FMV sequences is working to a degree.
4506
4507October 27, 2011:
4508	NES: Improved iNES mapper 69 expansion sound emulation accuracy(volume interpretation and channel frequencies
4509	were off).
4510
4511October 26, 2011:
4512	PSX: Fixed a bug that caused crashing when emulator sound output was disabled.
4513
4514	PSX: Fixed missing initialization of a local variable in a GTE emulation function(very curiously, gcc 4.4 optimized it
4515	as if it were initialized to zero, and didn't even print a warning about an uninitialized variable being used, but
4516	the lack of initialization DID cause a warning and broke the code with gcc 4.6).
4517
4518October 25, 2011:
4519	PSX: More GTE fixes.
4520
4521October 19, 2011:
4522	PSX: Altered GPU triangle rendering to fix the little problem of
4523	invisible walls in "Doom".
4524
4525October 18, 2011:
4526	PSX: Corrected GTE MVMA when mx is 3(it has very strange behavior).
4527
4528October 17, 2011:
4529	PSX: Improved CPU branch delay slot emulation, fixes a few graphical glitches in "Threads of Fate".
4530
4531	PSX: Improved GTE flag emulation, and support for MVMA with the far color vector.
4532
4533October 15, 2011:
4534	Fixed a bug that caused crackling and increased CPU usage when using certain non-integer fast/slow-forward speed
4535	multipliers.
4536
4537October 13, 2011:
4538	GBA: Added GSF-related file extensions to known file extensions list.
4539
4540	PSX: Added PSF-related file extensions to known file extensions list.
4541
4542	PSX: Disabled memory card emulation when a PSF is loaded.
4543
4544October 12, 2011:
4545	CDPLAY, SNES, PSX:  Changed several large statically-allocated arrays to be dynamically-allocated to reduce
4546	memory usage when those emulation modules aren't being used.
4547
4548	Increased the maximum supported sound output rate to 1048576 Hz, JUST BECAUSE.
4549
4550	GB: Fixed loading of custom per-game palettes.
4551
4552October 10, 2011:
4553	Changed setting and code constraints to increase the maximum supported sound output rate from 48KHz to 192KHz.
4554
4555	NES: Altered the resampler to work for output rates higher than 48KHz.
4556
4557	Modified Blip_Buffer to use 64-bit types for time-keeping and calculation instead of 32-bit, and extended
4558	the precision of the fractional component of the output-to-input rate ratio from 20 bits to 32-bits.  This
4559	change to 64-bit types also has the effect for allowing for very large buffer sizes with very high
4560	output rates.  However, if you're using a custom video mode with a refresh rate tuned to minimize juddering
4561	and frameskipping, you will need to adjust/recalculate those modes for all emulation modules
4562	*other* than "nes", "psx", and "snes".
4563
4564October 8, 2011:
4565	NES: Fixed a bug in the MMC5 split-screen emulation that caused a garbage scanline in the intro sequence
4566	of "Uchuu Keibitai SDF".
4567
4568	NES: Fixed MMC5 32K PRG switching mode.
4569
4570September 29, 2011:
4571	Fixed a file descriptor leak in the gzip loading code, and removed usage of dup().
4572
4573	Maximum ROM image size is now enforced in the gzip loading code.
4574
4575September 25, 2011:
4576	GBA: Fixed an endian-related bug in the sound emulation code.
4577
4578September 22, 2011:
4579	Changed an erroneous memcpy() of an object to an assignment in the MDFN_Surface constructor.
4580
4581	SMS: Removed an unecessary memset() that sometimes tried to memset() a NULL pointer.
4582
4583September 5, 2011:
4584	PSX: Changed coordinate precision in the GPU sprite drawing code so that the level in "Skullmonkeys"
4585	doesn't disappear when your character goes far enough to the right.
4586
4587September 4, 2011:
4588	PSX: Added memory card support.
4589
4590	PSX: Reworked SIO(for front ports) code, fixes problems with controllers acting totally wonky on some games.
4591
4592August 29, 2011:
4593	NES: Fixed potential(in ports) memory leaks in the Game Genie emulation code.
4594
4595August 28, 2011:
4596	PCE, PCE_FAST: Fixed an Arcade Card emulation bug that made Garou Densetsu 2 virtually unplayably difficult.
4597
4598August 25, 2011:
4599	Added a "close()" method to FileWrapper, and modified the QuickTime and WAV recording code to make use of it.
4600
4601August 24, 2011:
4602	GBA: Encapsulated in a namespace.
4603
4604	GB: Encapsulated in a namespace.
4605
4606	GB: Added a few minor missing variables to save states.
4607
4608        PCE, PCE_FAST, PC-FX: Fixed potential memory leak(in ports) in the SCSI CD emulation code.
4609
4610	NES: Fixed potential memory leaks(in ports) in the FDS and PPU emulation code.
4611
4612August 23, 2011:
4613	PC-FX: Fixed a potential memory leak in the RAINBOW emulation code, again currently only relevant to ports of Mednafen.
4614
4615	Refactored and reorganized physical CD and image reading code, and moved utility-type functions, types, and
4616	enums into their own namespace, with somewhat more consistent naming, and removal of redundant functions and macros.
4617
4618	Fixed a crash when "cdrom.lec_eval" is "0" and a physical data CD is loaded.
4619
4620	Fixed potential(in ports of Mednafen) memory leaks in the CD-ROM emulation code.
4621
4622August 20, 2011:
4623	PCE, PCE_FAST: Fixed potential memory leaks(in ports of Mednafen, not Mednafen as-is) in HES player code.
4624
4625August 18, 2011:
4626	WonderSwan: Fixed an issue in the debugger's disassembly code that had the potential to cause the
4627	compiler's linker to error out in certain situations.
4628
4629	NGP: Fixed a memory map initialization bug(won't affect Mednafen as it is currently, but may affect ports that
4630	load more than one game without restarting Mednafen).  Thanks to raz0red for pointing it out.
4631
4632August 13, 2011:
4633	Fixed(again) waveform Y coordinate saturation in the music player.
4634
4635-- 0.9.18-WIP: --
4636
4637August 11, 2011:
4638	SexyAL: Added support for reversed-byte-order(relative to CPU endianness) sample formats to the ALSA driver; this
4639	will allow for better support for non-native soundcards(such as a little-endian sample format "PC" soundcard plugged
4640	into an old PowerPC Mac big-endian system running Linux).
4641
4642	SNES: Added support for custom palettes.
4643
4644	GB: Added support for custom palettes.
4645
4646August 9, 2011:
4647	The "P" subchannel is now simulated along with the Q subchannel in the CD read functions.  This shouldn't have any
4648	effect on emulation now, as the P subchannel data isn't used by any system emulation code in Mednafen, but it may
4649	be used in the future.
4650
4651	Improved accuracy of simulated Q subchannel data for pregap areas, in the
4652	CD read functions.
4653
4654August 8, 2011:
4655	Added path checks to files referenced in CUE sheets and PSF files, controlled(enabled/disabled) via the
4656	setting "filesys.untrusted_fip_check".
4657
4658	Added untested support for the "POSTGAP" directive in CUE sheets.
4659
4660	Added support for specifying absolute file paths in PSF files and CUE/TOC files.
4661
4662August 7, 2011:
4663	When loading a state, if the recorded variable/datum size is not equal to the expected size of the variable,
4664	it will be treated as missing and not loaded.
4665
4666	Removed redundant function "CDIF_GetTrackStartPositionLBA()".
4667
4668	Removed mostly-redundant, and inconsistent across disc images and physical discs, functions
4669	"cdrfile_get_track_sec_count()" and "CDIF_GetTrackSectorCount()".
4670
4671	GB: Fixed coarse instruction timing and flag behavior for several instructions, based on blargg's CPU tests and
4672	on code in the VBA-M SVN repository.
4673
4674	Fixed a file descriptor leak in the save state preview code, that could cause file descriptor exhaustion
4675	if multiple save states are used extensively in one session.  Thanks to raz0red for reporting the bug.
4676
4677August 5, 2011:
4678	SNES: Implemented RAM cheats and cheat search via the common interface.
4679
4680	WonderSwan: Cart save RAM is now available to the cheat engine code(it was supposed to be before, but the code
4681	was passing the pointer before it was initialized).
4682
4683	Genesis: Updated EEPROM code to newer code from Genesis Plus GX, and fixed most of the EEPROM database entries
4684	that were previously broken in Mednafen.
4685
4686August 4, 2011:
4687	Genesis: Refactored and tweaked input device emulation a bit to fix input unresponsiveness issues in
4688	"Samurai Spirits/"Samurai Shodown".
4689
4690August 3, 2011:
4691	Genesis: Revamped 6-button gamepad emulation, and made it actually work.
4692
4693August 1, 2011:
4694	Fixed a lack of mutex locks in the debugger's memory viewer when editing memory, that could cause crashes or wrong
4695	behavior in certain cases.
4696
4697	Began work on supporting comments in the disassembled code in the debugger.
4698
4699July 29, 2011:
4700	Genesis: Made H-counter reading less completely wrong, but it's likely still mostly wrong(added a TODO entry
4701	for fixing it).
4702
4703	WonderSwan: Fixed(made considerably less broken at least!) debugger's fubar branch
4704	history(it only took a few years, I guess no one used the WonderSwan debugger much :b).
4705
4706July 28, 2011:
4707	WonderSwan: Cleaned up debugger code a bit.
4708
4709	WonderSwan: Encapsulated in a namespace.
4710
4711	The music player interface's waveform display will now saturate the Y coordinate to the screen boundaries
4712	rather than forcing it to the middle of the screen(not sure why it was doing that before, doesn't make much sense).
4713
4714	NES: Tweaked the audio resampling algorithms a bit to prevent degraded audio quality on high-amplitude input
4715	samples.
4716
4717	NES: Corrected audio resampler filter setup debug printfs to use more-correct labels, and added more information.
4718
4719	NES: Added AltiVec support to the audio resampler.
4720
4721July 27, 2011:
4722	Internal text renderer now truncates text with pixel granularity rather than glyph granularity.
4723
4724July 26, 2011:
4725	NES: Reduced fb_height from 256 to 240.
4726
4727	GBA: Changed "gba.bios" setting to use Mednafen's firmware path construction semantics rather than specifying a
4728	path used directly.
4729
4730	GBA: The "gba.bios" setting is now ignored when playing a GSF, fixing GSF playback with a real BIOS ROM
4731	image is used.
4732
4733July 25, 2011:
4734	PCE_FAST: Changed x86 inline assembly to manually push and pop rbx/ebx, rather than listing it in the clobber list,
4735	to work around pedanticness in compilers in certain cases.
4736
4737	Added a test to make sure "char" type is signed to "tests.cpp".
4738
4739	Added a quick and dirty signed overflow test to "tests.cpp".
4740
4741July 18, 2011:
4742	Lynx: ROM image headers are now read out field-by-field rather than memcpy()'ing into a packed struct.
4743
4744July 16, 2011:
4745	Genesis: A loaded file with an extension of "md" will now be treated as a Sega Genesis/Megadrive game.
4746
4747July 8, 2011:
4748	WonderSwan: Added "Code Segment", "Stack Segment", "Data Segment", and "Extra Segment" logical address spaces
4749	to the debugger's memory editor.
4750
4751July 5, 2011:
4752	Added highlighting to the instruction disassembly for the instruction that PC is pointing to, to avoid confusion
4753	when the disassembly cursor is moved off in step mode from the current PC.
4754
4755	Debugger disassembly will now be forcibly resynchronized to PC, in addition to the current disassembly cursor
4756	address(currently, only the latter was synched).
4757
4758	PCE: Revamped branch history to show the old PC in addition to the new PC, not to add an entry when a conditional
4759	branch isn't taken, to show reset and IRQ events/"branches", and to show branch count when repeatedly branching to
4760	the same target from the same source with no other branches in-between.  These changes necessitated reducing the
4761	number of entries in the branch history from 32 to 24.
4762	T = timer, 1 = IRQ1, 2 = IRQ2, R = reset.
4763
4764	Increased the available area for branch history display in the debugger.
4765
4766	Halved the size(and number of bytes displayed) of the memory watch section in the debugger when the disassembly
4767	list is selected(and offseted the watch address by -0x80 when the register list is selected).
4768
4769Jun 26, 2011:
4770	Replaced the old CPU flag testing code with newer code from libavutil from ffmpeg.
4771
4772	Restructured architecture detection code in configure.ac.
4773
4774Jun 19, 2011:
4775	Fixed a minor(it's unlikely to have noticeably affected any commercial games) LFO emulation bug in the HuC6280 sound
4776	core emulation code, reported by "mic_".
4777
4778Jun 13, 2011:
4779	GBA: GSF playback now uses new PSF loading code developed for the PS1 emulation module.
4780
4781	Changed the music player overlay to use std::string instead of C-strings.
4782
4783Jun 7, 2011:
4784	Fixed a lack of variable initialization in the WAV recording code, which could cause WAV recordings to have an
4785	erroneous value in a size field in the header.
4786
4787Jun 5, 2011:
4788	PC-FX, VB: Implemented a minor CPU optimization that could cause regressions. TODO: Test games.
4789
4790Jun 2, 2011:
4791	Changed "INLINE" #define in the SoftFloat target definition file from "extern inline" to "static inline" to resolve
4792	issues user "mziab" reported with gcc 4.6.0.
4793
4794May 30, 2011:
4795	NGP: Fixed the "ngp.language" setting to work properly with the non-numeric setting values("english" and "japanese")
4796	(previously it was always Japanese language selection for both strings).
4797
4798May 28, 2011:
4799	Genesis: Fixed a bug in the 68K emulation core that caused major problems in some games("Instruments of Power",
4800	"The Lost Vikings", perhaps others) when running on big-endian platforms.
4801
4802May 20, 2011:
4803	PCE: Loading Games Express CD games will now automatically load the Games Express CD Card BIOS; BIOS filename
4804	is specified by the new "pce.gecdbios" setting, default value of "gecard.pce".
4805
4806	PCE: Added Games Express CD game detection based on CRC32s for the remaining handful of games that the previous
4807	method didn't detect.
4808
4809May 18, 2011:
4810	Tweaked CD simulated read ahead to read farther ahead, but incrementally instead of all at once as before.
4811
4812April 28, 2011:
4813	SNES: Fixed PAL video output size, and frame rate when using netplay.
4814
4815April 27, 2011:
4816	SexyAL: Rewrote the channel and format conversion code, now allowing for output channel count up to 8; and,
4817	tweaked the ALSA code to work with devices that only support > 2(but code is limited to <= 8) channels.
4818	(The Audigy 2's "p16v" sub-device in ALSA can now be used directly by Mednafen)
4819
4820April 23, 2011:
4821	Fixed a crash on exit when one audio file(FLAC, WAV, Vorbis, etc.) is used for multiple tracks in a CUE sheet.
4822
4823April 17, 2011:
4824	NES, PCE: Fixed relative branch target address 16-bit wrapping in the debugger's disassembler.
4825
4826	PCE: Added "SET" instruction to the debugger's disassembler(can't believe it's been missing all this time).
4827
4828April 15, 2011:
4829	Fixed "--disable-vb" option to ./configure, thanks to Rakashazi for reporting the bug.
4830
4831April 8, 2011:
4832	PC-FX: Fixed debugger's timer register text, and hooked up sound chip register setting in the debugger.
4833
4834	PCE: Altered VDC line timing to fix raster effects in "Camp California" and "Shape Shifter".  The changed way probably
4835	still isn't right, but it's something commercial games are unlikely to rely on anyway(except in maybe those
4836	hidden "four-screen" modes), and the previous way WAS breaking commercial games.
4837
4838	PCE: Fixed a timing bug in the maximum VDC wait state calculation code(wasn't taking into account VCE-controlled
4839	events like hsync and vsync changing state).
4840
4841April 5, 2011:
4842	VB: Fixed register 30 state during and after *bsu instructions.  Thanks to blitter for pointing the bug out
4843	and submitting a patch.
4844
4845	PCE: Improved ADPCM emulation based on more tests run on the real system.  Fixes a lockup bug in "Hyper Wars".
4846	(The changes made have the potential to cause regressions, however, if any are found please report them)
4847
4848Mar 7, 2011:
4849	Hackish fix for problems with CUE/BIN disc images(particularly bad with multiple BIN style images) that contain
4850	"INDEX 00" statements in the CUE sheet.  (Problems ranging from incorrect Q subchannel data for the pregap
4851	to wrong track start LBAs)
4852
4853February 12, 2011:
4854	PC-FX, MD: Factored the deinterlacing code out of the individual emulation modules and into the core Mednafen code.
4855
4856	PCE: Adjusted ADPCM emulation slightly, fixes massive A/V sync problems with "Sherlock Holmes".
4857
4858January 29, 2011:
4859	NGP: Masked NGP BIOS syscall code properly, thanks to SANiK for pointing it out.
4860
4861	MD: Changed line timings so vertical refresh rates are the same in both 256 and 320-wide modes.
4862
4863	PCE: Fixed a Seiya Monogatari ADPCM-related lockup, thanks to Rakashazi for pointing the problem out.
4864
4865January 15, 2011:
4866	Began adding PlayStation 1 emulation.
4867
4868January 5, 2011:
4869	Fixed "volatile" placement on several pointer declarations.
4870
4871-- 0.9.16-WIP: --
4872
4873December 31, 2010:
4874	PCE: Re-enabled the VDC wait-state-limiting kludge, with some tweaks, to prevent hypothetical emulator crashes.
4875
4876	PCE: Added a FIFO to buffer the CD subchannel data.  Fixes CD+G playback, which was broken when VRAM access wait stating
4877	was implemented.
4878
4879	Adjusted a few setting descriptive texts, for the automatically-generated documentation.
4880
4881December 29, 2010:
4882	Added setting aliases, allowing old setting names to be used in the settings file(though the new setting name
4883	will be saved back to the setting file, not the old name) and on the command line.  Currently,
4884	settings renamed since December 15, 2010 have old setting name aliases. (Note: This of course doesn't apply to
4885	the numerous removed settings since 0.9.15).
4886
4887	Renamed settings:
4888		frameskip -> video.frameskip
4889		glvsync -> video.glvsync (Might want to rename this to video.opengl.vsync or video.driver.opengl.vsync in the future)
4890		fs	-> video.fs
4891		vdriver	-> video.driver
4892
4893
4894December 26, 2010:
4895	Added "gama" atom to recorded QuickTime files.
4896
4897	Added setting "qtrecord.vcodec", and added support for the QuickTime PNG codec.  Possible values for this setting
4898	are "raw", "cscd", and "png", with the default being "cscd".
4899
4900	Added "ftyp" atom writing to the beginning of QuickTime files created.
4901
4902	Class-ified PNG writing code, and fixed a bug from when the filesys.fname_* settings were added that broke
4903	screen snapshots.
4904
4905	Wrote new MS WAV file recording code to replace the old code that relied on libsndfile.  This allows sound recording
4906	to function even when Mednafen is compiled without libsndfile.
4907
4908December 25, 2010:
4909	Fixed various problems with the QuickTime writing code.  VLC and the official Apple QuickTime player can now
4910	play the files Mednafen produces(though not necessarily the video component in the Apple QuickTime player).
4911
4912	open() in the FileWrapper class is now passed with flag O_BINARY if it's defined.  Fixes QT recording
4913	on MS Windows.
4914
4915	Creation and modification timestamps in QuickTime files produced are now filled with the time of recording start,
4916	rather than being left at 0.
4917
4918	Adjusted the QuickTime matrix calculation used for aspect ratio correction.
4919
4920	Added settings "qtrecord.w_double_threshold" and "qtrecord.h_double_threshold".  Users on slower systems, or
4921	those who are transcoding via full-featured software after recording, may want to set these to 0.
4922
4923December 24, 2010:
4924
4925	Mednafen is now compiled with largefile support enabled on 32-bit platforms(Win32 kind of included, its largefile
4926	support is...DIFFERENT), though it is currently only necessary for QuickTime movie recording.
4927
4928	Added experimental QuickTime movie recording support via the -qtrecord command-line switch.  Video data
4929	is encoded via the CamStudio codec(this may cause problems for Apple's QuickTime player software, as this
4930	codec is typically not used in QuickTime containers AFAIK), audio data is raw.  A few auxillary atoms
4931	were left out, and may or may not need to be implemented in the future.
4932	MPlayer, ffmpeg, and Youtube seem to be able to handle the files produced, though MPlayer has occasional
4933	random A/V sync issues(at least for me).  The version of VLC I have installed can play the video, but aspect
4934	ratio correction and audio playback are broken.
4935
4936	Removed the custom MMM-format recording and playback.
4937
4938	Added lcm_width and lcm_height members to the MDFNGI struct, to aid in video recording(and perhaps other uses
4939	in the future).
4940
4941December 19, 2010:
4942	Added "%%" specifier to filesys.fname_* parser.
4943
4944	Fixed a couple of deadlock bugs in the signal handler, though the probability of them having been encountered
4945	during normal Mednafen use is very low.
4946
4947	sigaction() will now be used instead of signal(), if available.
4948
4949	Fixed strerror_r() usage(AGAIN, hopefully corectly this time) on non-glibc platforms.
4950
4951December 18, 2010:
4952	Renamed settings:
4953		nethost 	-> netplay.host
4954		netport 	-> netplay.port
4955		netpassword 	-> netplay.password
4956		netlocalplayers -> netplay.localplayers
4957		netnick		-> netplay.nick
4958		netgamekey	-> netplay.gamekey
4959		netmerge	-> netplay.merge
4960		netsmallfont	-> netplay.smallfont
4961
4962	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),
4963	and changed the default value for the "srwcompressor" setting from "minilzo" to "quicklz".
4964
4965December 17, 2010:
4966	Renamed settings:
4967		sounddriver -> sound.driver
4968		sounddevice -> sound.device
4969	        soundrate   -> sound.rate
4970		soundvol    -> sound.volume
4971	        soundbufsize -> sound.buffer_time
4972
4973	Added filesys.fname_movie, filesys.fname_state, filesys.fname_sav, and filesys.fname_snap settings.  These settings
4974	contain a format string, and through manipulation of this format string, the previous functionality of
4975	"dfmd5", filesys.*_samedir, and "snapname" settings can be obtained.  For example, remove the "%M" specifier
4976	to simulate setting the "dfmd5" setting to 0.  Available specifiers:
4977
4978		%b	-	Mednafen base directory (no trailing slash)
4979		%z	-	Path separator
4980		%d	-	Loaded file base directory("/games/nintendo/megaman.nes" -> "/games/nintendo")
4981		%f	-	File base("/games/nintendo/megaman.nes" -> "megaman")
4982		%F	-	Same as %f, but replaced with emulation module's short name with recognized multi-CD CD sets.
4983		%m	-	MD5 hash of the currently loaded game.
4984		%M	-	Empty for first evaluation per full path construction, then filled with the game's
4985				MD5 hash(or the game set's MD5 hash ID for multi-CD CD sets) followed by a period.
4986		%e	-	Loaded file extension("/games/nintendo/megaman.nes" -> ".nes")
4987		%s	-	Current emulation module's short name.
4988		%p	-	Special parameter(usually a number/numeric counter).
4989		%x	-	Default extension for the file type the path will be used for(extension is WITHOUT the period).
4990		%X	-	A merging of %p and %x(replaces the last character of %x with %p).
4991	If the constructed path is relative, it will be appended to the Mednafen base directory and value of the
4992	filesys.*_path settings automatically.  If the constructed path is absolute, this appending will not occur.
4993
4994	Removed setting dfmd5.
4995
4996December 16, 2010:
4997	Removed the filesys.*_samedir settings, as they're largely unnecessary, can cause file corruption in certain
4998	cases, and generally cause filesystem clutter.
4999
5000	Removed the "snapname" setting(it's now hardcoded-on, effectively), and altered the snapshot naming template to
5001	produce filenames that will be sorted correctly when in a list(IE in a file browser).
5002
5003	NES: Added hashes of alternate VS SMB and VS The Goonies ROM images into the internal VS Unisystem database.
5004
5005	NES: Cleaned up palette-handling code, and updated the VS System palettes.
5006
5007December 15, 2010:
5008	NES:  Added rudimentary bus conflict emulation to mapper 3, to fix corrupt graphics in Cybernoid.
5009
5010	Removed the "pce.colormap", "pce_fast.colormap", "nes.cpalette", and "gba.colormap" settings.  Custom palettes
5011	will automatically be loaded if they're named "pce.pal", "pce_fast.pal", "nes.pal", and "gba.pal" respectively,
5012	under the "palettes" directory under the Mednafen base directory.  All of these systems can now use custom per-game
5013	palettes by name a palette file as <FileBase>.pal or <FileBase>.<MD5 Hash>.pal, IE "Mega Man 4.pal" or
5014	"Mega Man 4.db45eb9413964295adb8d1da961807cc.pal".  Using the form that includes the MD5 hash is preferred, to
5015	prevent conflicts between games on different systems with the same filenames, and conflicts with the custom palette
5016	for all games on an emulated system.
5017
5018	Renamed path_snap, path_sav, path_state, path_movie, path_cheat, path_palette, path_firmware to filesys.path_*,
5019	changed the interpretation of the path so that if the path is relative, it is relative to the Mednafen base directory,
5020	and filled in the default values for these settings as the Mednafen default directories("sav", "mcs", "mcm",
5021	"snaps", etc.).
5022
5023	Changed the directory used for custom NES palettes from "gameinfo" to "palettes", since that was the only thing the
5024	directory was being used for.
5025
5026	Changed MDFN_Thread and MDFN_Mutex structs to forward declarations.
5027
5028December 13, 2010:
5029	Fixed a rather insidious bug with the 64-bit little-endian decoding function(bug was due to a misunderstanding of
5030	implicit type promotion rules).  This fixes some (potential) issues with MMM playback, and RTC clock corruption
5031	when loading the GameBoy MBC3 mapper's RTC data from a sav file.
5032
5033	Added MasterClock and MasterCycles fields to the MMM format.  This change is incompatible with previously-recorded
5034	MMM movies.
5035
5036	Added MasterCycles setting on the remaining systems.
5037
5038December 12, 2010:
5039	PCE: Implemented mid-frame synching and input updating(at this point, it only happens twice per frame, IE only once
5040	"in the middle"), although it can be extended to more points very easily in the future if the need should arise.
5041	This should reduce input latency by up to 8ms in cases not improved by the previous change(below),
5042	and allows "Takeda Shingen" to be playable.  Mid-frame sync required a lot of code refactoring and kludging, Mednafen
5043	was definitely not designed nor written with this feature in mind, so it's possible some things may be broken now
5044	when using the PCE module/emulation; for example, rewinding while movie recording is active might corrupt the movie.
5045	Also, mid-frame syncing isn't done while netplay is active, so "Takeda Shingen" will remain unplayable in netplay.
5046
5047	PCE: Altered frame end timing slightly to reduce input lag on some games by 1 frame.
5048
5049	SNES: Reduced input latency by 1 frame(~16.67ms).
5050
5051	If the MEDNAFEN_HOME environment variable is either unset or empty, and the HOME environment variable is unset,
5052	and getuid() and getpwuid() are available, the home directory used in consructing Mednafen's base directory will now be
5053	obtained from the system password file via getpwuid().
5054
5055	Rewrote most of the speed throttling and frameskip determination code to be cleaner, and made a few minor tweaks
5056	to the algorithms.
5057
5058December 9, 2010:
5059	Being in the input configuration process will now disable all emulated device input during the process, and until 300ms
5060	after it ends.
5061
5062December 8, 2010:
5063	PCE: Rewrote the HES VDC initialization HuC6280 assembly code to work correctly with the new VDC emulation
5064	accuracy improvements.
5065
5066	Fixed a bug that would prevent exiting if physical CD-ROM reading hung, and the exit key was assigned
5067	to a joystick button or a mouse button.
5068
5069	Fixed an old kludge/bug that caused keyboard input latency for emulated devices(IE not command keys) to be
5070	1 frame(16.7 ms usually) higher than it should have been.
5071
5072	PCE: Improved VRAM DMA emulation accuracy, improved wait state emulation accuracy, added kludgy emulation of a
5073	CPU VRAM-access dead zone tied to HSYNC(fixes "Star Breaker" locking up when leaving a town), and improved VDC
5074	horizontal timing register emulation.
5075
5076-- 0.9.15-WIP: --
5077
5078November 12, 2010:
5079	SNES: Reworked a floating-point compare to work correctly with x87 FPU math on gcc(and probably most 32-bit x86
5080	compilers).  TODO: Audit code to find and correct any other instances of similar problematic floating-point code.
5081
5082November 11, 2010:
5083	MasterCycles field of EmulateSpecStruct is now assigned in more emulated systems.
5084
5085November 10, 2010:
5086	Genesis: Converted the "md.region" and "md.reported_region" settings to enum types, to allow for automatic document
5087	generation for the various values for these settings.
5088
5089	Genesis: Fixed various issues that were preventing emulation from working properly on big-endian systems.
5090
5091	SNES: Updated the PowerPC code in libco with "blargg_libco_ppc64-5".
5092
5093November 9, 2010:
5094	VB: Fixed an endian-related bug with joystick input state decoding.
5095
5096	VB: Made the VIP emulation code big-endian-compatible.
5097
5098	VB, PC-FX: Made the V810 core's "fast" mode work on big-endian platforms.
5099
5100	Genesis: Fixed a major problem with illegal instruction handling; executing a long string of illegal instructions
5101	will no longer lock up Mednafen.  Thanks to Zombie for pointing out the lockup problem.
5102
5103November 8, 2010:
5104
5105	Fixed(hopefully) OpenGL pixel shader initialization error detection.
5106
5107	Fixed "supereagle" special scaler crashing when the source surface was large.
5108
5109	VB: Added setting "vb.sidebyside.separation", which controls the number of pixels between the L/R view(pixel count is
5110	pre-scaling by xscale(fs)), with a default value of 0.  Previously, the effective separation for the sidebyside
5111	was 16, so if you want to replicate the behavior of previous versions, set this setting's value to 16.
5112
5113November 7, 2010:
5114	NGP, SMS, NES: const-ified some const data.
5115
5116	NGP, PC-FX, NES, WonderSwan: Fixed various initialization issues(they're not a problem now, but it's done for future-proofing).
5117
5118	WonderSwan: Fixed internal EEPROM initialization to not persist across game loadings(this doesn't apply to Mednafen...
5119	yet ;)).  TODO: Evaluate removing persistence across power events.
5120
5121	MDFND_DestroyMutex() now actually frees the memory for the mutex wrapper.
5122
5123	Fixed a few initialization and deinitialization bugs in cdrom/cdromif.cpp (thanks to Rakashazi for pointing them out)
5124
5125-- 0.9.14-WIP: --
5126
5127November 6, 2010:
5128	Corrected the last updated dates in the auto-generated documentation files.
5129
5130	VB: Uncommented out important save state code that was commented out for debugging purposes(and was accidentally left
5131	that way).
5132
5133-- 0.9.13-WIP: --
5134November 5, 2010:
5135	PCE: The timestamp displayed in the debugger is now counted from when a virtual power off->on occurred, rather
5136	than the start of the Mednafen video frame.  However, the displayed value wrap when it reaches 2^32 due to limitations
5137	in the debugger code(TODO: fix in the future).
5138
5139	PCE: Fixed default mouse L/R button assignments(they were reversed).  (You'll need to delete the Mednafen configuration
5140	file for the new defaults to take effect, or reconfigure the mouse in Mednafen, with the correct L/R button
5141	assignment)
5142
5143	PCE: Fixed a bug that caused the debugger to corrupt Arcade Card state in certain common situations while the debugger
5144	was open or breakpoints were enabled.
5145
5146	PCE, PCE_FAST: Reworked and fixed the ADPCM code to closer match a real system(based on hardware tests).  Previously,
5147	ADPCM playback IRQ generation was sooooo wrong.  These changes finally fix the broken battle voices in "Langrisser",
5148	yay.
5149
5150October 17, 2010:
5151	Fixed 2xSaI family filters to not crash; the 2xSaI filter source image data is now from a temporary video buffer
5152	created from the original source video buffer, but with padding on all sides to handle 2xSaI's lack of source
5153	video buffer coordinate bounds checking.
5154
5155October 14, 2010:
5156	Re-disabled physical CD unreadable sector testing code, as it causes too long of a delay at startup.  A
5157	different solution will need to be found.
5158
5159October 4, 2010:
5160	PCE: Optimized debugger PC and opcode breakpoint testing during emulation.
5161
5162October 3, 2010:
5163	PCE: Fixed CD register reads with side effects when the debugger is open, and changed PCE_InDebug from bool to uint32,
5164	to allow for ++/-- pairs instead of = true, = false, to handle potential recursion.
5165
5166September 30, 2010:
5167	PCE_FAST: Fixed a emulator crash in the case that a game didn't initialize MPRs properly.
5168
5169	PCE_FAST: Made a small optimization to the HuC6280 core.
5170
5171	PCE_FAST: Rewrote a bit of HES playback code so it works at a lower-level, allowing the removal/privatization of some
5172	HuC6280 state setting functions.
5173
5174September 29, 2010:
5175	PCE_FAST:  Fixed a reversed-tile issue with BG drawing on big-endian platforms(thanks to Rakashazi for pointing it out).
5176
5177	PCE_FAST:  Added 16bpp rendering support.
5178
5179	NES:  Added 16bpp rendering support.
5180
5181	Added 16bpp support to MDFN_Surface and MDFN_PixelFormat.  However, most internal components in Mednafen currently
5182	can't handle 16bpp, emulation modules included.
5183
5184September 25, 2010:
5185	Altered the text for the "sound" setting to better match what it actually does.
5186
5187September 19, 2010:
5188	The destination blit rectangle in the video output code now has the lowermost bits of the X and Y coordinates cleared,
5189	as a quick kludge to fix potential issues with the VB emulation's "hli" and "vli" video modes.  A cleaner
5190	solution may be prudent in the future.
5191
5192	VB: Added setting "vb.liprescale".
5193
5194	Optimized the "hli" video mode drawing code slightly.
5195
5196September 18, 2010:
5197	VB: Added setting "vb.3dreverse".
5198
5199	VB: Renamed "pbarrier" 3dmode to "vli".
5200
5201	VB: Added 3dmode "hli".
5202
5203September 16, 2010:
5204	When -force_module is used with an unknown/invalid system, Mednafen will print an error stating so, rather
5205	than stating that the file format is unrecognized.  If the system is recognized, but the system only supports CDs
5206	and the file being loaded is not a CD image, a message will be printed to that effect.
5207
5208September 13, 2010:
5209	PCE_FAST: HDS is now used in calculating the screen viewable area position, fixing the "Final Blaster" intro
5210	sequence.
5211
5212September 12, 2010:
5213	Fixed a significant memory leak in the video output code(the leak would increase every time fullscreen is toggled
5214	while Mednafen is running).
5215
5216	PCE_FAST: Fixed a benign(in Mednafen as it is now) memory leak.
5217
5218	PCE_FAST, PCE: IsSGX variable is now explicitly initialized to 0 correctly.
5219
5220	Updated the AX_CFLAGS_GCC_OPTION autoconf macro.
5221
5222	PCE_FAST: Renamed various identifiers in the HuC6280 emulator code to avoid conflicting with C reserved identifier
5223	conventions.
5224
5225	PCE_FAST: Removed unused VDC debug code.
5226
5227	NES: An error while attempting to open the file specified by setting "nes.cpalette" will no longer cause Mednafen
5228	to crash.
5229
5230	SCSI CD:
5231		Refactoring and code cleanups.
5232
5233		Added various command error condition checks, and corrected various error codes(NEC uses a few
5234		nonstandard ASC values). (INCOMPLETE)
5235
5236		Specific command fixes for PCE CD:
5237		 Command 0xD8:  If the command is executed with the same address as when it was previously executed,
5238		 		and the previous execution was < 190ms ago, then the new execution
5239				is ignored(this occurs regardless if the previous command was ignored).  This is more
5240				of a kludge than a proper fix, and it is intended to fix the silent CD-DA problem
5241				with "Steam Heart's".
5242
5243		Specific command fixes for PC-FX:
5244		 MODE SENSE and MODE SELECT:
5245			Added support for block descriptor(incomplete), and the DBD bit for MODE SENSE.
5246			Added support for all the mode pages present on a PC-FX(though most don't actually do anything
5247				in emulation yet, as I do not know their function or their function is irrelevant at the current
5248				level of CD emulation accuracy).
5249
5250		 Command 0x25:  Corrected returned data when PMI bit is set.
5251		 Command 0x42:	Fixed the relative address returned when the address results are expressed as LBA.
5252		 Command 0xD8:  Proper support for play bit.
5253		 Command 0xD9:	Improved play mode evaluation, and play mode 0x1 is no longer erroneously
5254				interpreted as loop mode(only 0x4 is).
5255		 Command 0xDD:	The control/adr field is now returned in the data.
5256		 Command 0xDE:	Added emulation of returned data mode 0x03(there was a dummy stub before, to get the PhotoCD
5257				player to work).
5258
5259September 11, 2010:
5260	Changed hqxx's sole supported pixel format to match the new OpenGL texture pixel format used(in the future, changing
5261	its hardcoded pixel format based on an #ifdef MSB_FIRST may be warranted).
5262
5263	WonderSwan:  Re-enabled(and fixed) debugger's graphics viewer.
5264
5265	PCE_FAST: Reduced fb_height from 256 to 242.
5266
5267September 10, 2010:
5268	If Mednafen is running with an OpenGL implementation of OpenGL >= 1.2, and is on an x86 or x86_64 platform,
5269	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.
5270	This may need to be tweaked for older video cards.  Would it have killed the OpenGL developers to have
5271	included a means of querying the fastest formats for texture uploading?
5272
5273September 8, 2010:
5274	todo: make sure tblur works right with surface->pitch32 != gameinfo->fb_width and player
5275
5276        Converted MDFNGI pitch(in bytes) to fb_width(in pixels).
5277
5278        Fixes for incorrectly using MDFNGameInfo->fb_width instead of the surface's pitch:
5279		gb
5280		gba
5281		lynx(was hardcoded)
5282		nes
5283		ngp
5284		pce_fast(was hardcoded)
5285		player
5286		wswan
5287		mmrecord.cpp
5288		tblur.cpp
5289
5290	Reduction of fb_width to minimum acceptible for the module(the driver-side can still round up to a power of 2 when
5291	creating the MDFN_Surface, of course):
5292		gb
5293		gba
5294		lynx
5295		ngp
5296		pce_fast(required a bit of work in vdc.cpp to eliminate non-visible-area surface rendering)
5297		vb
5298		wswan
5299
5300
5301September 5, 2010:
5302	PC-FX: Implemented an optimization to the FX VCE layer mixing priority evaluation code, that will also allow further
5303	optimization in the future.
5304
5305September 4, 2010:
5306	NES: Replaced "femms" inline assembly generated when compiling for x86_64 with "emms", as not all x86_64
5307	processors are made by AMD.
5308
5309August 24, 2010:
5310	PC-FX: Track numbers in READ TOC(10) are now returned in hex instead of BCD(fixes BIOS handling of discs
5311	with a large number of tracks; no PC-FX games are like this, but it may be useful for playing audio CDs or audio
5312	portions of PCE CD).  The bug was present in 0.8.x, but due to a design decision/bug elsewhere, it didn't
5313	cause the BIOS to be unable to play the CD-DA tracks.
5314
5315August 22, 2010:
5316	Re-enabled raw MMC command usage for reading physical discs(it had been disabled for debugging purposes).
5317
5318	PC-FX: A PhotoCD disc will now automatically be detected as being handled by the PC-FX module.
5319
5320	L-EC correction code is now called external to cdromfile.cpp, and with PC-FX/PCE CD emulation, will generate
5321	a SCSI error if it fails.
5322
5323August 20, 2010:
5324	SNES: Applied a patch from Jonas Quinn to fix a Cx4 emulation bug.
5325
5326	VB: Mednafen will no longer automatically recognize files with the ".bin" extension as Virtual Boy games,
5327	as the extension conflicts with Sega Genesis/Megadrive.  If you have any such files, they will need to be renamed
5328	to have an extension of ".vb" or ".vboy".
5329
5330	VB: Files with the extension ".vboy" are now automatically recognized as Virtual Boy games.
5331
5332	VB: Altered timer emulation to fix digital sound and voice playback in "Virtual Bowling".  The change has the
5333	possibility of causing regressions with other games, but none were detected in very quick and not thorough testing.
5334
5335August 14, 2010:
5336	Cleaned up git.h slightly.
5337
5338-- 0.9.12-WIP: --
5339August 13, 2010:
5340	Updated internal copy of "libmpcdec" library from 1.2.5 to 1.2.6.
5341
5342	Updated internal copy of "trio" library to 1.14(I believe the previous version was a pull from CVS between the 1.10
5343	and 1.11 releases).
5344
5345August 12, 2010:
5346	PCE_FAST: Added setting "pce.correct_aspect", default value of 1.  When disabled(value of 0), no aspect correction
5347	will take place(other than in the 10MHz dot clock mode to halve its width), and overscan color will be used to
5348	fill in the empty space when in 5MHz/10MHz dot clock modes.
5349
5350	PCE_FAST: Corrected aspect ratio when playing HES files.
5351
5352	PC-FX, VB: Fixed CPU operand order for FPU subops in the disassembler.
5353
5354	VB: Hooked up more debugger functionality.
5355
5356	PC-FX, VB: Fixed V810 read/write breakpoints in "fast" V810 emulation mode.
5357
5358August 9, 2010:
5359	Mednafen's now compiled with -Wempty-body and -Wignored-qualifiers.
5360
5361	NES: Removed a typoed semicolon in sound.cpp.
5362
5363August 8, 2010:
5364	Added "math.h" header order inclusion check to "types.h", and fixed a few instances of incorrect #include order.
5365
5366	Fixed C68K code generator dependency when building on/for a platform that has an extension for executables(AKA MS Windows).
5367
5368	Fixed a structure initialization problem in the input setting generation code that could cause crashing under
5369	certain circumstances.
5370
5371	Fixed Makefile.am to actually link against SDL(somehow it was working anyway on Linux, probably through
5372	an indirect linkage through SDL_net).
5373
5374August 5, 2010:
5375	Debugger settings *.debugger.disfontsize and *.debugger.memcharenc are now automatically generated, the latter based on the system's DebuggerInfoStruct.
5376
5377	Renamed *.debugger.memcharset settings to *.debugger.memcharenc
5378
5379	PC-FX: Added settings "pcfx.input.port1.multitap" and "pcfx.input.port2.multitap".  These settings shouldn't be enabled by average users.
5380
5381August 4, 2010:
5382	PC-FX:	Added RAINBOW buffer data to save states.
5383
5384		Added a variable to save states whose absence was breaking save states made in the middle of a CD-ROM transfer.
5385
5386        Switched to using the internal copy of Tremor to decode Ogg Vorbis files during CD emulation preferentially over libsndfile, as libsndfile has
5387        an unacceptably slow seek implementation for Ogg Vorbis.
5388
5389August 3, 2010:
5390	PC-FX: 	Added emulation of the 2 gamepad switches.
5391
5392		Fixed a bug that caused a crash if input type of "none" was selected for a virtual input port.
5393
5394		Input device state is now saved in save states(missing a call before).
5395
5396		Fixed mouse emulation(previously, cursor movement was totally broken).
5397
5398		Disabled various debug printf statements.
5399
5400		Removed "bios.fastboot" setting and the HuEXE loading code(both of which have been broken for a while).  The fastboot code likely
5401		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
5402		the use of the PC-FXGA BIOS most likely).
5403
5404August 2, 2010:
5405	PC-FX: Fixed the horizontal position of the VDC layers vs KING BG and RAINBOW layers when VDC is in 7MHz dot clock mode.
5406
5407	PC-FX: Disabled a few unknown memory address read/write debug printf()s.
5408
5409August 1, 2010:
5410	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
5411	no Princess Rolfee".
5412
5413	PC-FX, VB: Values written to system registers EIPSW, FEPSW, EIPC, and FEPC by instruction "ldsr" are now masked properly.
5414
5415	PC-FX: Added emulation of the TIMER TIREQ bit.
5416
5417	PC-FX: Interrupt controller level/priority register writes are now ignored unless all 7 bits in the interrupt mask register are set.  This matches
5418	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
5419	registers, however, given that this ignoring behavior is documented in the hardware documentation, this seems highly unlikely).  This *finally* fixes
5420	the PC-FX BIOS PhotoCD player!
5421
5422	PC-FX: Fixed interrupt controller register value masks.
5423
5424July 31, 2010:
5425	PCE: Removed a (mostly benign) debug addition left in the extended SF2 mapper size calculation code.
5426
5427July 30, 2010:
5428	NES: Removed/Disabled some debug(not debugger :b) code.
5429
5430	NES: Fixed the FDS written-disk shadow copy code.  Previously, the FDS loading code was updating the MD5 hash improperly, causing
5431	the filename of the shadow copy to be different when it was written than it was when a shadow copy was to be opened.
5432
5433	NES: Altered FDS IRQ emulation to fix "Druid".
5434
5435	NES: Fixed a bug that caused the entire file pathname to be evaluated when determining system type, now only the filename is examined.
5436
5437	NES: Added strings "(Europe)", "(Germany)", "(USA)", and "(Japan)" to the filename scanning code for system determination.
5438
5439	NES: Prettified the NES filter.cpp debug printf()s a little.
5440
5441	PCE: Fixed HES player screen dimensions.
5442
5443	PCE: Removed debug printf on bad opcode execution.
5444
5445	PCE: HES playback code now initializes the VDC horizontal and vertical timing registers before calling the song initialization routine.  Interestingly,
5446	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...
5447
5448	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
5449	real reset values are unknown, though they might just be 0).
5450
5451	PCE: When in LFO(FM) mode, excessive playback frequency for channel 0(carrier) is handled more gracefully(but still not "correct",
5452	as it would be too CPU intensive).
5453
5454	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
5455	resetable independently, however, rolling them into one shouldn't cause any audible differences and simplifies the code(and fixes a bug due to how
5456	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
5457	reload values).
5458
5459July 25, 2010:
5460	Fixed Ogg Vorbis playback when libsndfile doesn't support it(I'd accidentally inverted the ov_open() success test during the change to AudioReader()).
5461
5462	PCE: PSG channel numbering in the debugger's memory editor is now from 0 instead of 1.
5463
5464July 24, 2010:
5465	Fixed libsndfile linkage with mingw32 target(it was broken when we added --with(out)-libsndfile configure option).
5466
5467July 22, 2010:
5468	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
5469	allocated off the heap.
5470
5471	PCE: Added support for HES files that load data into banks 0x80-0x87.
5472
5473	PCE: Fixed HES controls(song increment/decrement) to not lose responsiveness if the frame is being skipped.
5474
5475July 21, 2010:
5476	PCE: Added a setting to select the PSG revision, "pce.psgrevision".
5477
5478	PCE, PCE_FAST, PC-FX: Added revision selection functionality(only supporting HuC6280 and HuC6280A revisions currently) to the PSG emulation code, and
5479	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.
5480
5481July 17, 2010:
5482	PCE: Fixed inconsistencies in how an emulated "power toggle" affects timestamps, correcting a failed assert in the CD-ROM emulation code if the user
5483	tries to reset/power in the debugger under certain conditions. (TODO: Make similar fixes to PC-FX emulation code)
5484
5485	PCE, PCE_FAST, PC-FX: Revamped and refactored PCE PSG core code to implement new details obtained through tests on a real SuperGrafx(HuC6280A)
5486	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
5487	to determine what differences, if any, are in its PSG core vs the HuC6280A's sound core.
5488
5489July 10, 2010:
5490	PC-FX, PCE: SCSI CD-ROM emulation code cleanup and minor tweaks.
5491
5492July 7, 2010:
5493	PCE: Improved mouse emulation greatly; previously, emulation of two buttons was missing.  The two newly-emulated buttons "Select" and "Run" are mapped to
5494	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
5495	one game("Lemmings").
5496
5497July 5, 2010:
5498	Fixed a temporal blur code bug that was causing an unblurred section of the screen on PCE games.
5499
5500	Renamed the <system>.vblur* settings to <system>.tblur* (for temporal blur) to reduce confusion.
5501
5502July 3, 2010:
5503	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).
5504
5505	The core CD reading functions now always put CD-DA data in the buffer in little-endian form.
5506
5507	Separated and refactored the audio format decoding code out of cdromfile.cpp into audioreader.cpp
5508
5509July 2, 2010:
5510	PCE_FAST: Scrapped the old arcade card code in favor of the modularized code from the "pce" emulation module.
5511
5512	PCE: Moved arcade_card.* to hw_misc/arcade_card/arcade_card.*, and made its save state section names more verbose.
5513
5514July 1, 2010:
5515	PCE_FAST: Corrected the aspect ratio.
5516
5517	PCE_FAST: Scrapped the old PSG code in favor of the new modularized PSG code already being used by the regular "pce" module.
5518
5519June 27, 2010:
5520	PCE: Fixed PRAM poking in the debugger to not allow unused bits to be set.
5521
5522June 26, 2010:
5523	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
5524	that game.
5525
5526June 22, 2010:
5527	SNES: Hooked up backup memory loading.
5528
5529	Fixed the "autosave" option to work instead of causing a crash on exit.
5530
5531June 21, 2010:
5532	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.
5533
5534	Removed support for automatically patching with compressed IPS patches, as it causes a problem with at least one patch that has semi-hidden
5535	PKZIP-format data in it that was confusing the file loader.
5536
5537June 20, 2010:
5538	SNES: Hooked up multitap and mouse input emulation code(you'll need to manually enable multitap by setting "snes.input.port2.multitap" to "1"
5539	because it can cause problems if it's enabled by default.
5540
5541	SNES: Updated to bsnes v0.59(for SA-1 and SuperFX save state support).
5542
5543June 17, 2010:
5544	NES: Added cart WRAM to mapper 18 emulation to fix "Jajamaru Gekimaden".
5545
5546	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
5547	randomly have graphics corruption in certain conditions.
5548
5549June 11, 2010:
5550	PC-FX: Fixed a bug that caused only half of the VDC BG tiles to be displayed in the debugger's graphics viewer.
5551
5552	Fixed segfault on 0-entry setting enum lists.
5553
5554	Wrote some simple PHP scripts to automatically generate portions of the individual emulation module documentation based on templates and the
5555	settings definition file produced by -dump_settings_def.
5556
5557	Added a command-line option "-dump_settings_def", which will dump definition data for all possible settings in Mednafen.
5558
5559June 8, 2010:
5560	PCE: Adjusted VDC VDW start timing to fix vibrating screen in World Court Tennis.
5561
5562June 7, 2010:
5563	PCE: Fixed "pce.h_overscan" setting to actually work right.
5564
5565	PCE: Fixed screenshot width.
5566
5567June 6, 2010:
5568	Finally got rid of the old FSettings global, moving SndRate to SoundRate of EmulateSpecStruct.
5569
5570	Video frames are now recorded before temporal blur effect is applied(rationale: external movie encoders will have a wider variety of filters, whose
5571	quality and parameters are not constrained by being able to run in realtime).
5572
5573June 5, 2010:
5574	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.
5575
5576	PCE: Added more missing data to save states.
5577
5578June 2, 2010
5579	PCE: Altered vblank IRQ start timing to fix occasional massively-glitchy frames in Street Fighter II.
5580
5581	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
5582	not padded to the Street Fighter II mapper size.
5583
5584	PCE: Fixed missing intialization of many VDC variables on reset.
5585
5586	PCE: Added support for a hypothetical extended Street Fighter II mapper.
5587
5588June 1, 2010:
5589	Revamped CD-ROM system determination code.
5590
5591	PCE: Altered VDC BXR/BYR latch timing again to fix Seiya Monogatari, and probably breaking another game in exchange though. :/
5592
5593	PC-FX: Fixed a problem caused by V810 optimization changes that broke CD ROM emulation in save states.
5594
5595	Fixed loading of game cheats when loading a CD game(PCE CD, PC-FX).
5596
5597May 31, 2010:
5598	PCE:  Added a few missing variables to save states.
5599
5600May 29, 2010:
5601
5602	Fixed a bug that could cause crashing on invalid save states(or with a state variable name >= 128 chars in length).
5603
5604	NES:  Added a few missing sound variables to save states, and added a missing CPU state variable to save states that could cause netplay
5605	desync(unlikely, but still possible).
5606
5607	PCE_FAST:  Fixed broken frameskip behavior in regards to sprite overflow IRQs(which caused netplay desyncs).
5608
5609	PCE_FAST:  Added missing variables to save states(whose absence caused netplay desyncs).
5610
5611May 26, 2010:
5612	Made an optimization to the V810 emulation code in order to improve performance on RISC CPUs(TODO: Make sure this didn't break anything).
5613
5614	Fixed compiling when the configure script was passed "--disable-debugger".
5615
5616May 25, 2010:
5617	Added support for compiling without libcdio and without libsndfile, by passing --without-libcdio and --without-libsndfile to the configure script,
5618	respectively.  Compiling without either is not recommended for general use of course, but may be of use to porters(especially compiling without libcdio).
5619
5620May 23, 2010:
5621	Lynx: Fixed a few pieces of poorly-formed(and possibly undefined) code in the UART emulation code.
5622
5623	Fixed an incorrect object creation bug in cdrom/pcecd.cpp
5624
5625	SMS: Fixed a couple of strict aliasing violations.
5626
5627	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.
5628
5629May 22, 2010:
5630	Moved MDFN_Rect typedef from types.h to video.h.
5631
5632	Removed an extraneous semicolon after an if statement in the V810 save state code.
5633
5634	Fixed a few code constructs causing compiler warnings.
5635
5636	Added various macros(to force no inlining, force arbitrary alignment, etc.) to allow for an easier time getting the code to compile on
5637	non-gcc-compatible compilers.
5638
5639May 21, 2010:
5640	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
5641	absolute branch afterwards.
5642
5643	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"
5644	to a SettingChanged() notification function so that those settings can be changed during emulation runtime.  "vb.cpu_emulation" and "vb.3dmode"
5645	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
5646	require a virtual power toggle).
5647
5648May 15, 2010:
5649	Began work on expanding the information in the setting definition structures, so that the documentation on settings can eventually be mostly auto-generated.
5650
5651	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.
5652	Perhaps we'll add additional command-line options in the future to list settings according to a simple filter.
5653
5654May 14, 2010:
5655	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.
5656
5657	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
5658	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
5659	CD-style backup memory.
5660
5661May 13, 2010:
5662	NES:  Moved read/write handler installation from the Power function to the Init function for input emulation, PPU emulation, and VS Unisystem emulation.
5663
5664	NES:  Corrected the power-up state(values) of internal RAM.
5665
5666	NES:  Fixed mapper 99 emulation(hopefully, I'm unable to test it currently).
5667
5668	Fixed #include order(for config.h, basically) in many files.
5669
5670May 7, 2010:
5671	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.
5672
5673May 6, 2010:
5674	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.
5675	This should fix garbled video with "overlay" vdriver in some circumstances.
5676
5677	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.
5678
5679	NES:  Added a (slow) kludge so that the output image is not totally wrong when NTSC blitter is enabled while using the "overlay" vdriver.
5680
5681April 30, 2010:
5682	Altered the strerror_r() implementation detection preprocessor code to hopefully work correctly on non-GNU platforms.
5683
5684April 29, 2010:
5685	GBA:  Fixed a small bug that totally broke GSF loading.
5686
5687	PCE_FAST:  Added padding to memory mapped into the HuC6280 virtual address space to avoid potential emulator crashes if a game crashes.
5688
5689	VB:  Implemented more of the debugger.
5690
5691April 27, 2010:
5692	Added 2xSaI, Super 2xSai, and Super Eagle scaling filters courtesy of a code submission from "donb04".
5693
5694	Fixed fatal bugs in the IPS patching code(the bugs were introduced from the refactoring of the file loading code).
5695
5696	Genesis:  Removed various debug calls to exit() so that games crashing should no longer cause Mednafen to crash/exit.
5697
5698	Genesis:  Fixed interlaced mode to not be totally broken.
5699
5700April 23, 2010:
5701	VB: Fixed brightness calculation bug that resulted in very dark images instead of completely black images.
5702
5703April 12, 2010:
5704	SMS: Encapsulated in a namespace.
5705
5706	SMS: Added missing state to save states to fix netplay and movie desynchs.
5707
5708April 11, 2010:
5709	VB:  Null-terminated the anaglyph preset list.
5710
5711April 11, 2010:
5712	VB: Changed nominal width in pbarrier 3dmode to 768.
5713
5714	Removed stale build files.
5715
5716April 7, 2010:
5717	Removed unused PulseAudio option from configure.ac.
5718
5719	Genesis:  Encapsulated more code in a namespace.
5720
5721April 6, 2010:
5722	PCE_FAST:  Changed "inc" instructions to the equivalent "add" forms in inline assembly for better performance.
5723
5724April 5, 2010:
5725	Replaced MDFN_FastU32MemsetM8() with code that doesn't violate strict aliasing(at least when an array with 32-bit elements is passed...which
5726	is not exactly the case in every place it's called), and with inline assembly for x86 and x86_64.
5727
5728April 4, 2010:
5729	VB:  Fixed graphics output when "vdriver" is set to "overlay", and "vb.3dmode" is set to "anaglyph".
5730
5731	Fixed command-line argument "-force_module" handling.
5732
5733	PC-FX:  Renamed setting "pcfx.adpcm.restrict_range" to "pcfx.adpcm.emulate_buggy_codec", since it now does more than effectively restrict the range,
5734	thanks to David Michel's analysis of an official PC-FX ADPCM encoder.
5735
5736April 3, 2010:
5737	Settings are now sorted before being saved to disk.
5738
5739	Invalid/Unknown settings are now saved back to the configuration file on exit rather than being discarded.
5740
5741	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
5742	automatically generated by about 400).
5743
5744	PCE:  Multitap emulation is now automatically disabled when Tsushin Keyboard is selected on input port 1(TODO: document this fact).
5745
5746	NES:  Fixed a few memory leaks in filter.cpp.
5747
5748March 30, 2010:
5749	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
5750	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. ;)
5751
5752	VB: Fixed input automatic reading code to read 16 bits, not 32.  Stupid typos.
5753
5754	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
5755	calling it with a timestamp before this change, so this change should fix potential input lag issues.
5756
5757March 29, 2010:
5758	Factored some cheat management function calls out of individual emulation module code.
5759
5760March 26, 2010:
5761	Added support for "enum" setting type.
5762
5763	Added support for recognizing integer settings expressed as hexadecimal, with a 0x prefix.
5764
5765March 19, 2010:
5766	PCE:  Added (untested) emulation of Arcade Card register 0x1AE5, based on information from FluBBa.
5767
5768	PC-FX, VB:  Fixed "DIV" and "DIVU" instruction emulation when the destination register is "r30".
5769
5770March 18, 2010:
5771	VB:  Began adding Virtual Boy emulation.
5772
5773March 17, 2010(FIXME/TODO these changelogs):
5774	Reorganized sufficiently-abstracted chip hardware emulation into directories hw_cpu, hw_sound, and hw_video.
5775
5776	PC-FX: Fixed V810system register "PIR" value.
5777
5778
5779March 16, 2010:
5780	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
5781		PC Engine emulation.
5782
5783		Removed KING KRAM mode masks(they were pretty much disabled, anyway, and only served to bloat the code).
5784
5785		Moved the KRAM arrays to the end of the king_t struct, so that commonly-used variables don't require 1MB+ offsets.
5786
5787		Added page setting cache pointers to speed up rainbow and DMA operations slightly.
5788
5789		The V810 event handler and memory+IO read/write functions are now accessed via pointers(small speed penalty, unfortunately).
5790
5791		Minor V810 optimizations.
5792
5793		FINALLY fixed the ADPCM decoding algorithm for the most part(I'm still unsure about loss of precision in interpolation mode, though),
5794		removing that ugly hack that ran a DC-bias removal filter on the ADPCM predictors themselves.  However, it turns out PC-FX games
5795		are somewhat glitchy, so the following settings have been added(implemented as hacks that can improve sound quality over that
5796		of an actual PC-FX):
5797			pcfx.adpcm.restrict_range (Default: Disabled)
5798				Hack that restrict ADPCM predictor to 50% normal range.  Can improve sound in some games whose ADPCM was encoded
5799				improperly(for example, in Miraculum FMV), but will make sound worse in other games(for example, Nirgends).
5800
5801			pcfx.adpcm.suppress_channel_reset_clicks (Default: Enabled)
5802				Hack to suppress clicks caused by forced channel resets.  This will MURDER those nasty clicks that occur
5803				when games reset the ADPCM predictor values when they are off-center.  It shouldn't harm anything(except in
5804				pathological cases, and even then, only minimally), thus it is enabled by default.  However, people developing
5805				new code for the PC-FX may wish to disable it for testing their programs.
5806
5807
5808March 7, 2010:
5809	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).
5810
5811	PC-FX: V810 event handling revamp.
5812
5813March 5, 2010:
5814	PC-FX: Added untested V810 bitstring search instructions.
5815
5816	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).
5817
5818	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
5819	called before SetFlag()).
5820
5821March 4, 2010:
5822	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
5823	value on overflows required hacking the SoftFloat code to "wrap" the exponent on overflows, instead of transforming the value into an infinity.
5824
5825March 3, 2010:
5826	PC-FX: Fixed the value returned on reads from the "PIR" V810 system register.
5827
5828	PC-FX: Fixed the exception generated when an invalid FP instruction is executed.
5829
5830	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
5831	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
5832	backported to RealityBoy.  The new V810 emulation code also has much more accurate FPU flag calculation and exception handling.
5833
5834February 27, 2010:
5835	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
5836	register.
5837
5838	PC-FX: Fixed unused variable warnings in the V810 emulator.
5839
5840	PC-FX: Fixed lastop variable in V810 emulation code after a bitstring instruction is executed.  Fixed bitstring handling so that the emulator
5841	won't malfunction if an unhandled/illegal bitstring instruction is executed.
5842
5843
5844February 15, 2010:
5845	PCE:  Reworked HES playback code to be lower-level.
5846
5847	PCE_FAST:  Copied more CPU state to local variables in the execution loop.
5848
5849	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
5850	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
5851	or stack, the ROM data will be trashed.  FIXME.
5852
5853February 10, 2010:
5854	PCE:  Added VCE and VPC registers to the debugger.
5855
5856February 8, 2010:
5857	PCE_FAST:  Optimized the SuperGrafx VPC mixing code a bit.
5858
5859February 5, 2010:
5860	PCE_FAST:  Refactored the HuC6280 cycle counting code to reduce CPU usage, and made a simple event system to reduce CPU usage further by
5861	factoring timer updates out of the per-instruction execution loop.
5862
5863	PCE_FAST:  Increased the maximum overclock value accepted to "100", for testing purposes.  TODO: Decrease this to a sane value
5864	(or not, if 100 will work correctly even with PCE CD emulation) for 0.9.0 final.
5865
5866January 27, 2010:
5867	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
5868	emulation code.
5869
5870	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.
5871	(TODO: This needs to be documented in detail later when my thoughts are more collected)
5872
5873January 25, 2010:
5874	Fixed a bug that would cause the emulator to crash if any opcode breakpoints triggered when the debugger screen was disabled and no other
5875	breakpoints were active.
5876
5877January 24, 2010:
5878	PCE: Encapsulated HuC6280 emulation in a class, and fixed(mostly) the debugger-related code.
5879
5880January 22, 2010:
5881
5882	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
5883	field.
5884
5885	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
5886	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
5887	into the std::map incurs).
5888
5889January 20, 2010:
5890
5891	Fixed a couple of remotely-exploitable(if connected to a malicious server) stack manipulation bugs in the network play code.
5892
5893January 18, 2010:
5894
5895	PCE: Removed settings "pce.ocmultiplier" and "pce.cdspeed", as they break games and cause code obfuscation(especially the overclocking option).
5896	They will still be available in the PCE_FAST module, though(with no plans to remove them from it).
5897
5898	PCE: Fixed the SF2 bank mask value to prevent invalid memory accesses.
5899
5900	PCE:  Altered multitap emulation slightly to fix input in "Strip Fighter".
5901
5902	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
5903	the timestamp was reset.
5904
5905	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
5906	spot instead of scattered about).
5907
5908	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
5909	doubt the wait states are done with 21MHz granularity.
5910
5911January 17, 2010:
5912
5913	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
5914	status bar glitches in Langrisser.
5915
5916	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.
5917	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
5918	need to try to write LENR/SOUR/DESR while VRAM DMA is in progress on a real PC Engine).
5919
5920	PCE:  Adjusted horizontal line timing slightly to fix a broken scanline in Aoi Blink.
5921
5922	PCE:  Removed various debug print statements.
5923
5924	PCE: Dot clock mode changes will now reset the VCE's clock divider.  This is done, in combination with
5925	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
5926	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
5927	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.
5928
5929	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).
5930
5931January 16, 2010:
5932
5933	PCE: Added a lot of missing VDC variables to save states.
5934
5935	PCE: Adjusted horizontal line timing slightly to fix a jittery problem with Shin Megami Tensei.
5936
5937January 15, 2010:
5938
5939	PCE: Fixed arcade card state loading(it wasn't saving and loading the ACRAMUsed variable, causing the actual RAM contents to not be loaded
5940	unless the arcade card RAM was written to before the state was loaded).
5941
5942	PCE: Fixed the end of VRAM DMA code to actually commit any pending reads/writes(fixes an assert() failure in Crest of Wolf).
5943
5944January 14, 2010:
5945	PCE: Added a semi-hack to fix VRAM and screen corruption in Asuka 120%'s split-resolution screen.
5946
5947January 10, 2010:
5948
5949	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
5950	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"
5951	as a guide to some of the more exotic keys I was having trouble with).
5952
5953January 9, 2010:
5954
5955	PCE_FAST:  Fixed CD BIOS loader to look in the "firmware" directory with non-absolute paths.
5956
5957	PCE_FAST:  Changed the default setting for "pce_fast.cdbios" from a warning string to "syscard3.pce".
5958
5959	PCE_FAST:  Fixed CD emulation crash.
5960
5961January 8, 2010:
5962
5963	Added very basic support for threading functions on the driver side(which right now are just basic wrappers around SDL's threading support).  This
5964	was done to get the SDL dependency out of the new multi-threaded CD-ROM reading code.
5965
5966January 7, 2010:
5967
5968	PCE:  Fixed graphics rendering to use the actual pitch of the MDFN_Surface, instead of the hard-coded requested pitch/framebuffer width in
5969	EmulatedPCE.
5970
5971	Fixed a compilation problem with MINGW in src/cdrom/lec.h
5972
5973	SNES, MMPlay, PCE_FAST: Fixed sound emulation to use driver-side supplied buffer.
5974
5975	PCE, PC-FX: lastts is now initialized in the PCE_PSG constructor.
5976
5977	WonderSwan:  EEPROM is now initialized to 0 on startup(it wasn't being initialized at all before).
5978
5979	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
5980	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.).
5981
5982	Overloaded the Open() method of the MDFNFILE class to allow for passing a "std::string" type for the path argument.
5983
5984	PCE:  Fixed the base path used in CD BIOS loading.
5985
5986	PCE:  Fixed loading of CD BIOS ROM images with 512-byte headers(broken in the HuCLoadCD->HuCLoad merge).
5987
5988	SNES:  Fixed compilation with (at least old) mingw32.  byuu will include the fix in future bsnes.
5989
5990	Fixed link order of libintl and libiconv.
5991
5992	Fixed the include dir for config.h in intl/Makefile.in
5993
5994January 6, 2010:
5995	Moved the "<sysname>.forcemono" setting functionality out of individual emulator modules, into the core Mednafen code.  The new way will be slightly
5996	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
5997	of sound emulation in the emulation modules.
5998	(This definitely breaks/changes the music format player's waveform visualization, which we might want to fix in the future)
5999
6000	PCE: Merged HuCLoadCD() into HuCLoad().
6001
6002	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...).
6003
6004	PCE: Fixed CD sound emulation(broken in the PCE PSG refactoring).
6005
6006	PCE: Stuffed arcade card emulation into a class.
6007
6008	SMS: Fixed YM2413 detection(though I'm not sure it's 100% correct, games that can use it actually do use it now).
6009
6010	SMS: Fixed an output overflow bug in the YM2413 emulation code.
6011
6012	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
6013	for every pixel(which was especially slow in YCbCr mode).
6014
6015	SNES: Updated to BSNES v058.
6016
6017January 5, 2010:
6018	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.
6019	It is controlled via the new settings "sftoggle" and "sfspeed", which behave similarly to "fftoggle" and "ffspeed", except that "sfspeed" can be
6020	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,
6021	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
6022	Frussiranistanadengia keyboard somewhere.
6023	If fast-forwarding and slow-forwarding are activated simultaneously(YOU MONSTER), the fast-forwarding speed multiplier will have precedence over the
6024	slow-forwarding multiplier.
6025	...and since we recently moved to resampling the audio post-emulation-module-...emulation, slow-forwarding won't bring inaudible frequencies down
6026	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
6027	caused by games "silencing" sound channels by setting their playback rates extremely high will be heard).
6028
6029        GB:  Fixed a bug(still many left) in the external RAM handling code, fixing an
6030        emulator crash with "Wizards & Warriors - Chapter X". (I think! TODO: confirm)
6031
6032        Added support for "lurkers" on the network play server.  Previous versions of Mednafen don't lack support for this per se, but there
6033        would be cosmetic issues with status messages printed to the internal console.
6034
6035	Lynx, GBA, PC-FX, MD, SMS: Fixed sound emulation to use the driver-side allocated buffer.
6036
6037January 4, 2010:
6038
6039	PC-FX:  Added more checks to error conditions during fast booting, and cleaned up and added a few error messages.
6040
6041	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
6042	main thread.  This is what I should have done in the first place...  (This change fixes, among other things, dropped status/error messages
6043	when CD-ROM loading fails).
6044
6045	SMS:  Fixed video output, broken during the transition to MDFN_Surface.
6046
6047January 3, 2010:
6048	PCE: Fixed broken Soldier Blade title screen by altering the conditions of when D6 is set(TODO: alter/rename VDC_IS_BSY).
6049
6050	Finished implementing priorities for emulation modules when loading a game.  The priorities are, from highest to lowest:
6051		External_high
6052		Internal_high	(All modules but pce_fast are currently set to this)
6053		External_low
6054		Internal low	(pce_fast is set to this)
6055
6056	Added <sysname>.enable settings(type boolean, default value of 1) for all emulation modules.  Setting the setting for an emulation module to 0
6057	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
6058	specified via -force_module or -loadcd).
6059
6060	Added TestMagic() to Lynx, NES, GG, SMS, SNES.
6061
6062	Removed SetSoundVolume() from the emulation modules, it's handled in the core code now, but the emulation modules can handle it themselves
6063	if speed is critically important.
6064
6065        Removed SetSoundMultiplier() from the emulation modules, sound is now resampled in the main core if fast-forwarding is in effect.  However,
6066        there still is a provision to handle it in the emulation modules if speed is critically important.
6067
6068        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
6069	buffer allocated in emulation modules.  Currently, the following modules have been converted to the new system:
6070		GameBoy
6071		Neo Geo Pocket
6072		NES
6073		WonderSwan
6074
6075January 2, 2010:
6076	Updated the documentation to reflect the additions and changes made between 0.8.5 and 0.8.D.
6077
6078        GBA:  Fixed a bug that would cause data corruption and the loaded game to crash whenever a state was
6079        saved(but the state itself, and loading it, was fine) on a big-endian platform.
6080
6081	NES:  Removed support for sound quality setting "-3".  It's too low-quality(Solstice sounds awful) and is unlikely to give a significant % performance
6082	boost over quality -2.
6083
6084December 31, 2009:
6085	Replaced more instances of usage of strerror() and "%m" in format strings with usage of the ErrnoHolder class.
6086
6087	Lynx: The boot ROM is now loaded through MDFNFILE instead of stdio f*().
6088
6089	PC-FX: ROM BIOS and FX-SCSI ROM are now loaded through MDFNFILE instead of stdio f*().
6090
6091        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
6092        file(as is the case with some homebrew programs).  Thanks to "Wookie" for the patch.
6093
6094	GB: Fixed colors when "vdriver" is set to "overlay".
6095
6096        Fixed strerror_r() usage in error.cpp/error.h
6097
6098	SexyAL:  Fixed a bug affecting the return value from RawCanWrite() in the ALSA driver.  The returned value was typically too
6099		 small by a factor of 4.  The effects of this bug included potential long periods of garbled sound
6100		 during netplay.
6101
6102		 Fixed the return value from RawCanWrite() in the JACK driver.  It was being clamped to a value
6103		 that was too small by a factor of 4; however, the clamp value was already excessively large in a way
6104		 that this bug would should have only been triggered if the "soundbufsize" setting was excessively large.
6105		 The effects of this bug would be similar to the ALSA RawCanWrite() bug.
6106
6107		 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
6108		 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,
6109		 the minimum period sizes are expressed in bytes, not sound frames.
6110
6111		 The ALSA and OSS drivers will now try to set lower period/fragment sizes than previous versions of Mednafen did.  With default settings, for
6112		 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
6113		 the SexyAL's driver's preferred period/fragment sizes, named "sound.period_time"(default value of 0: no override).
6114		 The period/fragment size is expressed in microseconds.  If the new, lower fragment sizes cause problems, the setting can be changed to "2666"
6115		 to approximate the fragment size selection in previous versions of Mednafen when using ALSA output, and "5333" when using OSS output.
6116
6117		 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
6118		 too fast for a short period of time if a buffer underflow occurred.
6119
6120		 The ALSA's driver's RawCanWrite() method now(finally) uses snd_pcm_avail_update() instead of snd_pcm_delay().
6121		 This should improve performance and frameskipping behavior when the ALSA output is not routed directly to a physical device, such as the case with
6122		 PulseAudio(though PulseAudio is still not recommended :b).
6123
6124	If an invalid "sounddriver" is selected, Mednafen will now print an error message and not initialize sound
6125	instead of silently selecting the default sound driver.
6126
6127	SexyAL: Altered the argument order of SexiALI_Convert() to make more sense.
6128
6129		Fixed the broken conversion code used when the frame count passed to Write() is greater than 2048.
6130
6131		Fixed a bug/design flaw in the SexyAL SDL sound driver that can cause a crash during program
6132		deinitialization.
6133
6134		Added support for "float" output format to the ALSA driver.
6135
6136		The ALSA driver will now try all formats that SexyAL's conversion code supports if the desired
6137		format is not supported by the output device, rather that simply erroring out as before.
6138
6139		Added support for converting to 24-bit and 32-bit PCM output formats from the source format(which
6140		is still fixed to signed 16-bit).
6141
6142		The driver function RawCanWrite() is now passed a pointer to a uint32_t, which it sets to the number
6143		of bytes that can be written without blocking, rather than returning the value directly, so that
6144		the return value can be used as a success/failure indicator.
6145
6146		The driver function RawWrite(), and the "user" function Write(), will now return 1 on success, 0 on
6147		(fatal) error, rather than returning the amount of data written.
6148
6149		The OSS driver was testing the return value of open() incorrectly.  Fixed.
6150
6151		SexyAL is now compiled as C++(but doesn't use many C++ features yet), which necessitated
6152		adding several explicit casts in various code, and fixing some inconsistent function prototypes and
6153		declarations.
6154
6155                JACK: Fixed a stereo playback crashing problem(a loop count was being calculated incorrectly).
6156
6157                JACK: Switched to using jack_client_open() instead of the deprecated jack_client_new().
6158
6159                JACK: The "sounddevice" setting is now used, to specify the JACK server to connect to.
6160
6161                JACK: Fixed a possible race condition in RawCanWrite().
6162
6163		JACK, SDL: Changed the inter-thread ringbuffer setup to be less likely to underrun, while not hurting
6164		latency.
6165
6166		JACK, SDL: Additional playback position precision is now obtained by using
6167		jack_get_time()/SDL_GetTicks().  This will improve Mednafen's performance with larger fragment sizes
6168		with these drivers, but smaller fragment sizes are still preferred for latency-to-underrun-occurrence-ratio
6169		reasons.
6170
6171		Renamed the "byteorder" field of SexyAL_format to "revbyteorder", and changed it to a boolean type,
6172		to avoid confusion over what it actually represents.
6173
6174December 30, 2009:
6175	Altered autogen.sh to force updates(copy to Mednafen's source dir) of automake standard files.
6176
6177	Added usage of the AM_SILENT_RULES macro to the autoconf script, allowing pretty compile output via:
6178			./configure --enable-silent-rules
6179		or
6180			make V=0
6181
6182        PCE: Fixed the BRAM initialization(it was wrong, and generated from when Mednafen erroneously emulated 8KiB of BRAM).
6183        Fixes lockups in "Sorcerian".
6184        Note that if you have any existing save states or battery-backed RAM files for "Sorcerian" in "sav" or "mcs" under
6185        Mednafen's base directory from when you attempted to run "Sorcerian", you will need to delete them
6186        for this fix to have any effect.
6187
6188	Fixed:
6189		joystick.cpp:141: warning: format ‘%016llx’ expects type ‘long long unsigned int’, but argument 4 has type ‘uint64’
6190
6191
6192November 30, 2009:
6193	Fixed some PC-FX interlaced compile errors(resulting from an earlier effort to fix 0-width source rect blits
6194
6195	due to not verifying that the variables for the previous field contained valid data).
6196
6197	Fixed a minor typo in NGPGFX_CLASS::reset()
6198
6199        GB:  Fixed initialization of "HRAM" on virtual power toggle/reset.
6200
6201        SMS:  Fixed the input and reset emulation when the territory was
6202        set to "domestic"(Japan) and FM emulation was enabled; the emulated system was erroneously
6203        being treated as a Game Gear in a few places when those conditions were met.
6204
6205
6206
6207November 8, 2009:
6208	Reran ./autogen.sh, under Ubuntu 9.10
6209
6210	Reverted drivers/opengl.cpp and drivers/opengl.h to pre-PBO experimentation copies.
6211
6212	Fixed incorrect(and excessively complex, old code nearby) usage of MDFNI_DispMessage() in drivers/input.cpp in
6213	the input configuration process.
6214
6215	Removed archaic and unused(but still being compiled!) files drivers/config.cpp and drivers/config.h.
6216
6217	Fixed cases of file I/O return values being ignored in:
6218		mempatcher.cpp
6219		mmmreader.cpp (not complete)
6220
6221	Fixed some strict-aliasing-conflicting code in nes/ppu/ppu.cpp, and somewhat ambiguous parentheses.
6222	TODO: Clean it up more.
6223
6224	Reverted PC-FX KING/FXVCE rendering/mixing code to pre-black-bias-optimization attempt.  It was convoluting the
6225	code too much.
6226
6227
6228Before(some of these changes listed below are seriously out of order from when they occurred, development was kind of chaotic and haphazard):
6229
6230	Altered the netplay protocol, adding "INTEGRITY", "SERVERTEXT", and "ECHO" commands.  Added "/ping" and "/integrity" commands to the netplay
6231	text console.
6232
6233	CD emulation:
6234	        Added new multi-threaded CD image and physical drive reading code, with a small readahead buffer.
6235	        This new code will also allow sector read hints to be given, which should alleviate
6236	        emulation freezes once we emulate CD seek delays in cdrom/scsicd.cpp.
6237
6238	        Simplified the base CD reading code, to always fetch 2352+96 bytes of data.
6239
6240                Physical CD reads will now read semi-"raw" data(2352 bytes per sector regardless of sector type),
6241                along with 96 bytes of subchannel data per sector.
6242
6243                extra commands(WIP)
6244
6245                requires_medium
6246
6247	Added "ErrnoHolder" class, to be instantiated immediately after a function that modifies errno(passed "errno" as the constructor argument).
6248	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,
6249	which is essentially a wrapper that will use strerror_r(), or if not available, strerror(), and return a const char * pointer to a buffer
6250	internal to the ErrnoHolder class.
6251
6252
6253        PC-FX: (August 30, 2009) Fixed stupid ASC value bug in DoPAUSERESUME that broke PC-FX CDDA player
6254
6255        PC-FX, PCE:  (August 30, 2009) Fixed stupid CD-DA playback volume bug
6256
6257	PC-FX: Fixed ADPCM IRQ handling(fixes random lockups in Sparkling Feather during the initial period of FMVs).
6258
6259	NES:  Changed DMC IRQ emulation to fix "Apple Town Story".
6260
6261	NES:  Greatly improved FDS sound emulation(thanks to Disch's document, and VirtuaNES source code).
6262
6263	The framebuffer that emulation modules render to is now abstracted behind the "MDFN_Surface" class, instead of having naked pointers and
6264	various video format global variables out the wazoo.  Adding the "overlay" output driver/method necessitated this change, too.
6265
6266	Added support for SDL Y'CbCr overlays(USUALLY hardware accelerated).  Enabling this video output method can be achieved by setting the "vdriver"
6267	setting to "overlay".  This is a very experimental video output method, it may not work properly on all operating systems and video cards.
6268
6269	Added a special case faster 5x scaler for the "SDL soft" video driver.
6270
6271	Added a faster generic integer scaler for the "SDL soft" video driver.
6272
6273        PCE:  Added the ability to load a custom colormap(palette) by setting "pce.colormap" to the path of the colormap
6274        file.  The colormap consists of either 512 or 1024 RGB triplets, 8-bits per color component,
6275        in the order R,G,B,R,G,B,R,G,B,... .
6276        It is recommended that the colormap provide all 1024 entries(the first 512 entries are for normal mode,
6277        the second 512 entries are for grayscale/strip-colorburst mode). If it doesn't, Mednafen will calculate
6278        the grayscale colors using a formula similar to that used with the real VCE, but with more precision.
6279        The colormap may be disabled by setting the "pce.colormap" setting to an empty string, or 0.  Command-line
6280        examples:
6281                mednafen -pce.colormap /path/to/blueblue.cmap /yarr/pirate/booty.pce    [Enable]
6282
6283                mednafen -pce.colormap 0 /some/where/over/the/rainbow/islands.cue       [Disable]
6284
6285	Added a (convoluted) compiler bug test to tests.cpp, to guard against buggy gcc versions when
6286	compiling with -fno-strict-overflow with optimizations enabled.
6287
6288	Added "frameskip" setting to disable internal frameskip for speed testing(because we invariably forget
6289	to disable manual frameskip disabling code changes after we're done running tests).
6290
6291        Fixed a crashing problem when entering an invalid menu choice("0") in the cheat interface.  Thanks to
6292        tsenart for reporting the bug.
6293
6294	Fixed several instances of mismatches between format strings and passed argument types, which could cause
6295        nonsensical information to be printed on big-endian platforms, and perhaps some little-endian platforms as well.
6296
6297        Fixed the minimum field-width specifier on the statements that print the loaded game's CRC32 in several
6298        places.
6299
6300        Added the "format(...)" function attribute to the MDFN_DispMessage(), MDFN_PrintError(), and MDFN_printf()
6301        function prototypes to catch format string errors.
6302
6303	Changed the INLINE define to always force an inline with gcc(contrast with 0.8.x, where we introduced
6304	a new ALWAYS_INLINE in addition to INLINE).
6305	...and added a blip_inline that does the same for Blip_Buffer.
6306	...and changed various "inline" statements to INLINE and blip_inline, where appropriate.
6307	TODO: Audit our INLINE statements to make sure we're using them only in speed-critical code and with
6308	smallish functions.  Looking at Lynx and NES code here especially...
6309
6310        NES: Fixed an intialization bug in mapper 193.
6311
6312        NGP: Fixed an unaligned memory access bug in the memory r/w handlers, causing crashes on platforms
6313        that do not support unaligned memory accesses.
6314
6315	Removed erroneous dependency on CD-ROM emulation when WonderSwan emulation is enabled in the configure script.
6316
6317	The included Tremor is now compiled with "-fvisibility=hidden" to work around a dynamic symbol collision
6318        problem with libsndfile(BUT, -fvisibility is only available in gcc 4.0 and newer).
6319        This solution may not be correct...
6320
6321	Updated Tremor to the latest SVN version.
6322
6323	Upped the minimum playback rate to 22050 Hz, from 8192 Hz.  The lower rates aren't tested very often,
6324	and the sound resampling code works very poorly at such low rates(not to mention sound quality in general is
6325	going to be pretty bad at such low rates anyway).
6326
6327	Added sanity checks to the first track number and total track count returned from libcdio, to prevent
6328	a crash in Mednafen if the libcdio driver fails and returns nonsensical values.
6329
6330        Removed unused file sms/state.h.
6331
6332        Fixed a very-old bug that caused joystick unique ID collisions if more than 2 of the same "type" of physical
6333        joystick were available.
6334
6335        Mednafen is now compiled with -fsigned-char, to prevent any potential problems on systems with an "unsigned" char
6336        type as default.
6337
6338	Reworked the setting code to use a multimap with a 32-bit key(CRC32 of the setting name) instead of a vector
6339	that was iterated over(TODO:  Sort settings written to the configuration file).
6340
6341	PC-FX:  Adjusted the range of the I/O map mirror access range in the memory map, and added emulation of reads from it.
6342
6343	PC-FX:  Refactored the KING BG drawing code, adding support for BG0 subscreen.  Fixes problems with
6344	"Angelique Special".  (We'll add a simple hack/very limited subscreen code to 0.8.x to fix this problem)
6345
6346	PCE, PC-FX:  Fixed the emulation of SCSI command 0xDE, mode 0x1.  The value returned was too small by
6347	2 seconds.
6348
6349	PCE, PC-FX:  Fixed the sector count for the last track(which influences the leadout track start position/total
6350	sector count) in multi-track CUE/BIN CDROM images.
6351
6352	PC-FX:  Greatly improved the KING->RAINBOW block transfer logic(previously a hacky buggy mess).
6353	Fixes some minor glitches in Zenki.
6354
6355        Fixed several problems in file.cpp, including buggy and overly-complicated MDFN_read*le() functions,
6356        and a problem with the const-ness of the return value of strrchr() with gcc 4.4.
6357
6358        PC-FX:  Fixed the exception code set when an FPU divide-by-zero occurs(previously, it was being set to the
6359        integer divide-by-zero exception code).
6360
6361	PC-FX:  Fixed the handler address called when a TRAP instruction is executed.
6362
6363	PC-FX: Added boolean setting "pcfx.rainbow.chromaip", default enabled, that controls whether or not
6364	the chroma channel of the RAINBOW chip's YUV output(usually used when decoding still full-color or moving images)
6365	should be interpolated bilinearly.  Turning it off will make the output image appear blockier and slightly
6366	less blurry, and closer to what a real PC-FX displays.  For a good example of its effect, look at the scrolling
6367	red letters in "Kishin Douji Zenki" with it on, and then with it off.
6368
6369        GBA: An error loading the custom colormap file is now treated as fatal.
6370
6371	Increased the maximum X scale and Y scale sanity check value from 20 to 50.
6372
6373        Fixed an off-by-one error in the software SDL graphics rotation code(used for Lynx and WonderSwan).
6374
6375        SexyAL:  The return values of ALSA functions are now treated as errors only if they're less than 0, rather
6376        than non-zero as before.  Thanks to R.L. for pointing this out.
6377
6378        The default "nethost" setting is now "fobby.net" instead of "mednafen.com".  The latter was allowed to
6379        expire and lost to domain squatters some time ago.  Domain squatters cause desires to commit grievous face-stabbing.
6380        However, the netplay server on "fobby.net" is not guaranteed to be up. :p
6381
6382        Fixed the rectangle calculation for screen rotation with Lynx and WonderSwan to use X scale and Y scale
6383        values appropriately(they were reversed before; also, assuming square pixels on your monitor ;)).
6384        Rotation still poses a problem in fullscreen with the default settings, however.
6385
6386	Added new entries to "InputDeviceInputInfoStruct" concerning rotated inputs, and removed the Lynx and WonderSwan
6387	partially-specific rotation code in drivers/input.cpp
6388
6389        WonderSwan: Fixed a bug that made it impossible to push a direction on one D-pad while the opposing direction
6390        was being pressed on the other D-pad.
6391
6392	fflush(stdout) is now called after printing status messages or errors(may be nominally slower, but should
6393	provide more information if something goes kaka on some platforms).
6394	TODO:  Synchronous error messages and status messages from the game thread, rather than asynchronous.
6395
6396	Z80(SMS, NGP, MD): Ported the following changes from the FUSE SVN repository:
6397		Unhalt on NMI (thanks, Simon Owen).
6398
6399	Changed how firmware is located.  Firmware is now searched in several locations, in this order:
6400		MEDNAFEN_BASE_PATH/firmware/SYSTEM_SPECIFIC_FIRMWARE_FILENAME_SETTING
6401		MEDNAFEN_BASE_PATH/SYSTEM_SPECIFIC_FIRMWARE_FILENAME_SETTING (for backwards compatibility)
6402	...or, if SYSTEM_SPECIFIC_blahblahblah has been set to an absolute path by the user, it will only search
6403	there.  Also, the firmware path override "path_firmware" setting has been added.  Note that setting "path_firmware"
6404	to a non-default value will cause Mednafen to only try to open SYSTEM_SPECIFIC_FIRMWARE_FILENAME_SETTING in
6405	that path, it won't look anywhere else.
6406	TODO:  Document all this in the primary documentation.
6407
6408        Fixed a race condition that could cause rapid oscillation between fullscreen and windowed when trying to
6409        toggle it.
6410        ...and fixed a race condition that could cause oscillations when rotating the screen with Lynx and WonderSwan
6411        emulation.
6412
6413	Changed the name of the mednafen configuration file to "mednafen-09x.cfg", to prevent conflicts with 0.8.x
6414	and older(when going back and forth).
6415
6416	NES:  Renamed the misnamed Famicom input device "Quiz King Buzzers" to the correct name, "Party Tap".
6417
6418        Fixed a bug when creating an SDL source surface, whose negative effects(clipping rightmost columns) could be
6419        triggered when the "sdl" vdriver setting was used with certain xscale and yscale settings that would
6420        cause a 1:1 pixel copy operation.
6421
6422        PCE: Altered the Street Fighter 2 autodetection code to be data-agnostic.  The SF2 mapper will now be enabled for
6423        any ROM images 2MiB and over in size.
6424
6425	Fixed string constant-to-(char *) problems in drivers/cheat.cpp
6426
6427	PC-FX:  Fixed bugs in "Play Audio Track Index" and "Read Subchannel" MMC commands, fixing the totally broken
6428	cinematic sequences in "Boundary Gate".  There may still be bugs in these commands that don't cause any known
6429	problems with games, so I will need to run tests on a real system.
6430
6431	PCE:  Fixed ST0, ST1, and ST2 instruction timings(they were too low by 1 cycle).
6432
6433	(Autoconf/automake cleanups and fixes)
6434
6435        NES:  Fixed "Time Lord" by altering the PPU startup sequence timing.
6436
6437	Netplay (New commands, WIP)
6438
6439	PC-FX:  Chroma keying is now disabled in the 7.16MHz dot-clock mode(the problem that making this change
6440		caused with Nirgends before was apparently a bug in the handling of RAINBOW's non-endless scroll mode,
6441		which was fixed during optimizations).
6442
6443	PC-FX: Made various optimizations:
6444		Altered how chip linebuffer transparencies are expressed.  They are now expressed simply by the pixel
6445		being 0(along with layer number reorganization, the layer number in the upper bits of the internal
6446		pixel prevents a YUV-triplet of "0" erroneously being interpreted as transparent).
6447
6448		Reworked the VDC layer mixing code to be simpler, and have separate optimized(if the compiler works
6449		properly :b) versions for the 4 different VDC 240-color-mode-enable settings.
6450
6451		Rewrote pieces of the RAINBOW Huffman decoder to use LUTs.
6452
6453		Rewrote the RAINBOW chroma-key evaluation code on suggestion of Exophase, and added several
6454		special-case faster versions for common simple chroma-key settings.
6455
6456	PC-FX:  Modified the ADPCM play back code to use linear interpolation, with respect for the enable bits
6457		in the control register, and to use the OKI/Dialogic ADPCM decoder class originally written for
6458		PCE CD ADPCM emulation.
6459
6460	NES:  Cleaned up the iNES loading code a bit, and added support for WRAM on a few mappers that nominally shouldn't
6461	have WRAM, enabled if the battery-backed bit is set in the iNES header.  Fixes "Family BASIC", and probably
6462	a few bootleg games as well.
6463
6464	Added configure script option "--enable-altivec/--disable-altivec (default: enabled)" for compiling on
6465	PowerPC architectures where AltiVec is not supported, or causes problems.
6466
6467        Fixed a call to putenv(), to pass a static character array initialized to a string constant instead of a string
6468        constant directly.
6469
6470        SMS:  Removed the old unused Z80 emulator code from when SMS Plus was assimilated.
6471
6472	NES:  Added support for mapper 163(TODO).
6473
6474	NES:  Added support for mapper 241.
6475
6476	PCE, PC-FX:  Improved LFO emulation again, fixing vibratto effects in the intro of "Hanii in the Sky".
6477
6478	Debugger:  Fixed a bug in the trace log code.  It would cause the emulator to lock up if the user pressed
6479	Enter/Return in the prompt popup without any text in the input field.
6480
6481	Fixed a few argument descriptions(invoked with the -help command-line switch) that weren't properly gettextized.
6482
6483	TODO-itemize? Added Sega Genesis emulation:
6484		Based on cgfm2's Genesis Plus.
6485		Uses YM2612 emulator from Gens
6486		Uses Stef's C68k emulator(still needs more bug fixes for "The Lost Vikings").
6487		Uses blargg's Sms_Apu.
6488		Some code based on/imported from Genesis Plus GX.
6489
6490	PCE:  Revamped input emulation:
6491		Individual devices(exluding multitap) are now in their own classes.
6492		Added incomplete emulation of the Tsushin Keyboard.
6493		Added setting "pce.input.multitap" to allow for disabling the multitap(enabled by default).
6494
6495	Fixed a few deprecated const string to char* conversions in:
6496		v810_cpuD.cpp:188: warning: deprecated conversion from string constant to ‘char*’
6497		romdb.cpp:21: warning: deprecated conversion from string constant to ‘char*’
6498
6499	(More driver interface changes)
6500
6501	GB:  Corrected a lack of address masking in most of the cart RAM emulation code.  Fixes a few Chinese GameBoy
6502	Color games.
6503
6504	GBA:  Fixed a buffer overflow in the ROM image loading code.
6505
6506	NES: (Re?)-added support for mapper 240(it was erroneously listed in the documentation as being supported...).
6507
6508	PC-FX:  Several variables related to subchannel reading weren't being saved in save states.  Fixed.  (This fixes
6509	save states made within the BIOS' CD-DA player)
6510
6511	Changed default key assignments for d-pads on emulated input devices from WASZ style to WASD.
6512
6513	Altered the save state format and file extensions.  Save states made from previous versions of Mednafen will obviously be
6514	completely incompatible with this version. (Support for older save states may be readded later...)
6515
6516        Added setting "osd.state_display_time", to control the length of time, in milliseconds, the save state/movie
6517        screen is displayed after selecting a save state or movie.
6518
6519	Added a save state function to the base Z80 emulation code(since the Z80 emulation is now used in 3 places).
6520
6521	Added <string.h> to the global include list in mednafen.h.
6522
6523	Moved the multi-byte single-variable decoding/encoding functions from endian.cpp to endian.h as inline functions.
6524
6525        PC-FX:  Emulated gamepad button presses weren't being decoded from the driver-side data correctly(causing problems on big-endian
6526        platforms).  Fixed.
6527
6528	SMS:  SMS pause and 2-player support were erroneously commented out.  Fixed.
6529
6530	NES:  Fixed CNROM emulation initialization bug.
6531
6532	PCE:  Added the VDC register select register to the debugger.
6533
6534	PCE:  Reads from the timer count register the cycle it is set to reload after expiring will now return 0x7F.  Fixes "Battle Royale".
6535
6536	PCE:  Rewrote arcade card emulation based on information from David Shadoff, and a tip from Exophase.  The ADPCM sound effects
6537	in Garou Densetsu II work correctly now.
6538
6539	PCE:  ADPCM:	Combined the two dividers into one.
6540
6541			Rewrote the ADPCM nybble decoder.
6542
6543			Fixed an off-by-one-nybble playback bug.
6544
6545			Altered how the read and write addresses are set.  Fixes the Super CD version of "Tengai Makyou Ziria", and
6546			"CD Mahjong Bishoujo Chuushinha".
6547
6548
6549	PCE, PC-FX:  Improved PSG LFO emulation.
6550
6551	PC-FX:  Disassembly of the "nop" instruction will no longer show the virtually meaningless operand.
6552
6553	PC-FX:  Fixed alignment and prettified the disassembly of LDSR and STSR instructions.
6554
6555	Added boolean setting "debugger.autostepmode" that, when set to 1, will cause Mednafen to automatically start
6556	the debugger in step mode after a game is loaded(only if Mednafen has a debugger for the emulated system, of course).
6557
6558        The most recently-saved save state slot will now be colored differently when selecting a save state slot.
6559	Increased the brightness of non-empty save state slots.
6560	Empty save state slots are now black instead of being partially transparent.
6561
6562	PCE:  Fixed emulation of a few VDC vertical timing registers when in SuperGrafx mode(this change shouldn't affect the released
6563	commercial SuperGrafx games at all, but it will fix a few graphical emulation problems when trying to play normal PCE games
6564	in SuperGrafx mode).
6565
6566	PCE:  ADPCM software reset was erroneously also resetting the playback frequency.  Fixed.  (Fixes ADPCM voices in Gulliver Boy)
6567
6568	Added magic testing functions to the MDFNGI structure.
6569
6570	Added known file extensions to the MDFNGI structure.
6571
6572        PC-FX:  KING BG and CG offset registers are now emulated as 8-bit instead of 9-bit.  This shouldn't affect emulation at
6573	all(these registers were write-only to the game code, and the background rendering code already
6574        effectively masked these to 8-bits when rendering), but it will fix potential confusion when using the debugger's register
6575	viewer.
6576	Also, did the same to the soundbox ADPCMControl register(limiting it to 6-bits, in this case).
6577
6578	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
6579	glyph being requested.
6580
6581	PCE:  Fixed disassembly of the JMP $(AAAA, X) instruction.
6582
6583	GBA:  Fixed a startup crashing bug on big-endian platforms.
6584
6585	Removed unnecessary indirection of sound buffer variables in EmulateSpecStruct.
6586
6587	Changed many instances of *printf() and *scanf() to their trio equivalents.
6588
6589	Changed instances of fprintf() in mempatcher.cpp to trio_fprintf() to work around major issues with pre-C99 standard C libraries.
6590
6591	WonderSwan:  Added rudimentary support for playing back WSR(ripped WonderSwan music) files.
6592
6593	Cleaned global header files.
6594
6595	NES:  Replaced the old FIR+Blip_Buffer resampler with an experimental new, all-in-one, polyphase resampler, written with some code and help
6596	from blargg.  Two new settings were added to control its characteristics:
6597		nes.soundq - An arbitrary sound quality setting, default of 0.  Higher values will increase sound quality(decreasing
6598		passband width and increasing stopband attenuation), while lower values will decrease sound quality.  The maximum is 3,
6599		and the minimum is -3.  Going below sound quality -1 is not recommended
6600
6601		nes.sound_rate_error - The error tolerance of the polyphase resampler's output rate versus the real output rate.
6602				       Lower values will cause the resampler's output rate to come closer to the real output rate, at
6603				       the cost of more memory usage(and possibly cache thrashing), while higher values will do the opposite.
6604				       The default is 0.00005.  The range is 0.0000001(most accurate) to 0.01(least accurate, will likely
6605				       cause sound to sound out of tune).
6606				       Changing this setting is not recommended for normal usage, though it may make sense to set it
6607				       to its minimum value if you are recording Mednafen's sound output.
6608
6609	The setting <system>.scanlines now takes the opacity of scanlines directly, in percent(range 0-100), instead of the old totally-fubar
6610	formula.
6611	WARNING:  THIS CHANGE BREAKS BACKWARDS COMPATIBILITY FOR THIS SETTING IN EXISTING CONFIGURATION FILES AND ANY FRONTENDS OR SCRIPTS.
6612
6613	GBA:  Cleaned up a few benign shadowed-variables.
6614
6615	GBA:  DMA registers were being saved as 32-bit arrays instead of 16-bit arrays in save states, potentially causing memory
6616	corruption, and broken save states on big endian platforms.  Fixed.
6617
6618	Abused C++ function overloading to force the SFARRAY16, SFARRAY32, etc. macros in state.h to force a compiler error if they
6619	are passed arrays of an unknown/invalid type.  Updated GBA, Lynx, NES... to not save invalid types(usually with a typecast to
6620	the appropriate type, for union'd types).
6621
6622	Added support in state.cpp and state.h for saving/loading bool types properly.
6623
6624	Removed the hackish "bool8" type.
6625
6626	Changed instances of manual SFORMAT structure creation in a lot of old system emulation code to use the SF* macros instead.
6627
6628	GB, GBA:  Upgraded Gb_Apu and replaced Gba_Apu(a Mednafen-specific hacked-up ancient version of Gb_Apu) to a newer version
6629	provided by blargg, that includes builtin support for GBA's legacy sound channels.  This change breaks save states for GB and GBA
6630	created in previous versions of Mednafen(though this shouldn't happen again, at least not for updates to the sound code).
6631
6632	Added a "fullname" member to the MDFNGI struct.
6633
6634	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).
6635
6636	GBA:  The Load() function was returning a largeish integer, instead of 1, after successfully loading a ROM image.  Fixed.
6637
6638	Removed the "fb" variable from the MDFNGI struct.
6639
6640	Renamed "width" and "height" in the MDFNGI struct to "nominal_width" and "nominal_height", fixed NES and PCE emulation code to set nominal_height
6641	correctly, and modified save state code to use these variables for generating and displaying save state previews(TODO:  rewrite
6642	save state preview resize code to resize vertically when DisplayRect.h != nominal_height, though this should never occur at the moment,
6643	it may if we add support for systems with selectable interlaced video modes).
6644
6645	Removed the save state preview width variable from the MDFNGI struct.
6646
6647	Added an fb_height member to the MDFNGI struct.
6648
6649	Fixed header include order in the JACK audio driver.
6650
6651	GB:  Corrected loading/saving of MBC3 time values in save files(this will cause incompatibility with MBC3 RTC save games created in previous
6652	versions of Mednafen, unless they were created running on a 64-bit little-endian system).
6653
6654	GB:  The setting "filesys.disablesavegz" will now affect GameBoy save files.
6655
6656	MDFN_DumpToFile() now checks for errors in fclose().
6657
6658	Added preliminary movie(audio+video) recording support to a custom format.  A secondary
6659
66600.8.6:
6661        PCE:  Removed a statement, that was used for debugging, that broke PC Engine multiplayer support in 0.8.5. (I'm not sure
6662        how it got there in the first place...).
6663
66640.8.5:
6665
6666	Fixed a crashing bug when loading an uncompressed file and using the automatic IPS-patching feature when mmap() is available.
6667
6668	PCE, PC-FX:  All SCSI CDROM commands are now logged in the debugger's log viewer(when logging is enabled, of course).
6669
6670	Added group support to the debugger's log viewer.
6671
6672	PC-FX:  Renamed the type of BIOS ROM font calls in the debugger's log viewer from "BIOS" to "ROMFONT".
6673
6674	PC-FX:  BIOS filesystem syscall(for backup memory access) calls are now logged in the debugger's log viewer.
6675
6676	PC-FX:  Added internal backup memory and external backup memory address spaces to the debugger's memory editor.
6677
6678	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
6679	flickering and other weird graphical glitches in Der Langrisser FX.
6680
6681	Added setting "filesys.disablesavegz", to disable gzip compression when saving save states and backup memory.
6682	(In the case of backup memory, disabling gzip compression isn't supported for GB yet)
6683
66840.8.4:
6685
6686	PC-FX:  Some RAINBOW registers weren't being reset on emulated system reset.  Fixed.
6687
6688	PC-FX:  Added dummy support for the external bus reset register.
6689
6690	PC-FX:  Altered the way garbage data is handled by RAINBOW to fix a graphics bug in the Tengai Makyu options screen.
6691
6692	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
6693	"Battle Heat" and "Tengai Makyu" work now.
6694	The non-anime game mode in "Tyoushin Heiki Zeroigar" works now.  "Der Langrisser FX" no longer locks up if you skip the intro movie.
6695	"Yuna FX" no longer locks up in one of the intro movies.
6696	These changes will cause some save state incompatibilities with previous versions of Mednafen.
6697	(Some of the SCSI changes also affect the PCE CDROM emulation, which may also result in save-state incompatibility issues, particularly if
6698	the save state occurred during a CDROM data transfer operation.)
6699
6700	PC-FX:  Added setting "pcfx.cdspeed".  If you want to change this, read the documentation first!
6701
6702	Cleaned up the video deinitialization code slightly, and fixed a few bugs in the OpenGL deinitialization code.
6703
6704	PC-FX:  Reads from the dummy KING register 0x07 will now return 0xFF, per the devkit docs.
6705
6706	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).
6707
6708	Fixed a compilation error after running configure with --disable-nes.
6709
6710        PC-FX:  Reads from I/O port 0xFC0 will *now* return the current timer counter value.  The switch statement mask value was wrong...
6711
6712	Removed the warning in the documentation about error correction of raw data track rips, as Mednafen will now perform simple correction
6713	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
6714	the EDC and L-EC data, so it can be disabled by setting the setting "cdrom.lec_eval" to 0.
6715	L-EC correction is based off code from dvdisaster(http://dvdisaster.net/).
6716
6717	PCE, PC-FX:  Removed some debug printf()'s that were left in 0.8.4-rc3 by mistake.
6718
67190.8.4-rc3:
6720
6721	PCE:  Added preliminary(it works, but the code needs to be cleaned) ADPCM support for HES rips.
6722
6723	PCE:  Interrupts will be enabled with a CLI after a HES' init routine is called, to fix rips that neglect to do it themselves.
6724
6725	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
6726	will be printed the first time this occurs after loading.
6727
6728	PCE:  Added sanity checks to the HES loader to prevent crashes if invalid data is present.
6729
6730	PCE:  Reads from the I/O port will now return D7 as clear when emulating a PCE CD game.
6731
6732	PCE:  ADPCM RAM is now reset(to 0) on emulated PCE reset.
6733
6734	PCE:  Sprites trying to pull tile data from $8000-FFFF of VRAM will now be invisible(probably not correct, but trying to emulate indeterminate
6735	effects is too difficult :b).  Fixes a minor sprite garbage issue in Camp California.
6736
6737	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.
6738
6739	Moved some code in the source root directory to appropriate subdirectories.
6740
6741	Added setting <system>.debugger.disfontsize, valid settings being "xsmall", "small"(default), "medium", and "large", to control the font
6742	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.
6743
6744	Refactored a few address space and register group debugger support functions out of individual system code.
6745
6746	Fixed various low-impact memory leaks.
6747
6748	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
6749	that will involve proper escaping/unescaping and quoting of strings, to prevent problems with extra whitespace added by manually editing
6750	the configuration file).
6751
6752	Fixed state rewinding on big-endian machines, and removed some unnecessary operations from the state rewinding code path.
6753
6754	Mednafen will now refuse to try to load ROM images larger than 64MiB, as a sanity check.
6755
6756	mmap() and madvise() will now be used to load ROM images, assuming they're available(UN*X only, generally).
6757
6758	Errors during automatic IPS patching are now fatal.
6759
6760	Sped up loading gzip'ed ROM images.
6761
6762	Removed a global variable from the NES emulation code that had invaded state.cpp.  Though, this makes the error message when trying to use
6763	save states with authentic Game Genie emulation very unhelpful...
6764
6765	GBA:  Added support for loading a real GBA BIOS ROM image, using the setting "gba.bios".
6766
6767	GBA:  Added the ability to specify the backup memory type for games by creating a file with the same name as the ROM image,
6768	with the extension replaced with "type", in the "sav" directory under the Mednafen base directory.
6769	 Example: SexyPlumbers.gba -> SexyPlumbers.type
6770
6771	One or more of the following strings(on separate lines) may appear in the file:
6772		sram
6773		flash
6774		eeprom
6775		sensor
6776
6777	Additionally, the flash size can be specified by specifying the size(real size, or divided by 1024) after the type, like "flash 128" or
6778	"flash 131072".
6779
6780	PCE:  Improved noise LFSR and volume emulation, thanks to cgfm2 for the detailed information.
6781
67820.8.4-rc2:
6783
6784	Added meaningful descriptions to the command.* settings.
6785
6786	PC-FX:  Added an experimental feature to use mmap() to create a virtual 32-bit address space to speed up V810 instruction reads.
6787	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!
6788
6789	PC-FX:  Removed some redundant logic in the KING BG 8x1 drawing functions.
6790
6791	PC-FX:  FX VCE and VDC port access are now emulated as 16-bit, as in the real PC-FX, instead of 8-bit.
6792
6793	PC-FX:  Altered the debugger's memory peek and disassembly functions to not read the emulated memory map in the 0x80000000-0xEFFFFFFF region.
6794	(Reading those addresses can cause side effects, and this is a temporary workaround)
6795
6796	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
6797	loading screen, but decrease it in the actual game.
6798
6799	PC-FX:  Altered the V810 opcode fetch logic to do 16-bit reads instead of 32-bit, fixing potential crash issues
6800	when Mednafen is run on CPUs that don't support unaligned memory accesses.
6801
6802	PC-FX:  Factored-out a few address masks in the memory read and write handlers.
6803
6804	PC-FX:  Replaced most of the V810 signed-variable bit-size converting code that uses conditional branches to code that uses 2 shifts,
6805	taking advantage of modern 2's-complement CPU's arithmetic right-shift capabilities.  It reduces generated machine code size slightly,
6806	and should provide a slight speed boost as well.
6807
6808	PC-FX:  Optimized V810 address mode decoding by removing an unnecessary conditional jump.
6809
6810	Added an important warning to the documentation regarding Mednafen's ripped CD image support:
6811
6812		 Mednafen does *not* correct bit errors in the user data of "raw" data track rips.  It is strongly recommended to use
6813		 "cooked" data track rips(2048 bytes/sector for mode 1, not counting any subchannel data) with Mednafen.
6814
6815	PC-FX:  Improved exception handling, and added untested emulation of the TRAP instruction.
6816
6817	Debugger:  Rewrote the memory load and dump functions to be faster, and also to fix a bug in the load function that would
6818	trash memory if the user tried to load more data than the specified file contained.
6819
6820	Debugger:  Using the Goto function will no longer cause memory edit mode to be exited.
6821
6822	Debugger:  Fixed a bug that occurred when entering a prompt(goto, change charset, etc.) while in editing mode, that caused
6823	keyboard focus to be misdirected.
6824
6825	SexyAL:  The ALSA driver will try to set smaller period sizes when lower playback rates are used.
6826
6827	GBA:  Changed the heuristics used to detect SRAM/Flash usage, though they're still not perfect...if a game tries to use flash
6828	memory improperly, it could be detected as using SRAM instead, or silently corrupt parts of flash memory...
6829
6830	GB:  Fixed sound register initialization on reset, fixes missing sound in A Boy and His Blob
6831
6832	GB:  Slightly increased the contrast of GBC colors.
6833
6834	GB:  Reworked blitting of mono GB colors for future features.
6835
6836	GB:  Removed a redeclaration of a variable in the same scope in a function in gfx.cpp.
6837
6838	Debugger:  Fixed PCE VRAM breakpoints to work with block memory transfer instructions.
6839
6840	Debugger:  Fixed parsing of single-address breakpoints after range breakpoints.
6841
6842	Mednafen will now print out SDL version information when it starts.
6843
6844	(The Win32 build will now be distributed with SDL 1.2.12)
6845
6846	Debugger:  Fixed -/+ opacity adjustment to not be done when entering text(such as in a dialog).
6847
6848	Debugger:  Fixed null termination of the ASCII string buffer displayed in the memory watch section.
6849
6850	PCE, PC-FX:  Fixed the frequency of the highest-frequency noise generation register setting, hopefully!
6851
6852	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
6853	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
6854	on the PC Engine's sound output...).
6855
6856	Non-power-of-2-sized-textures will not be used when a pixel shader is selected and enabled, to prevent a severe graphical corruption
6857	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...
6858
6859	SMS:  Fixed soft reset.
6860
6861	SexyAL:  Removed smallc.c, and modified the OSS driver to use snprintf() instead of the single function smallc.c provided.
6862
6863	SexyAL:  "sexyal.h" is now included before all other header files.
6864
6865	SexyAL:  Revamped parts of the ALSA driver to fix reported lockup issues under certain conditions.
6866
68670.8.4-rc1:
6868
6869	Added preliminary support for inputting text directly into the selected address space in the debugger's memory editor.
6870
6871	Moved the temporal video blurring code in mednafen.cpp to vblur.cpp
6872
6873	Added settings "filesys.snap_samedir", "filesys.sav_samedir", "filesys.state_samedir", and "filesys.movie_samedir", default 0, that when
6874	set to 1, will read/write the respective files from/to the same directory the game was loaded from.  If you want
6875	to use these, PLEASE read the documentation first, there are caveats!
6876
6877	PCE CD, PC-FX:  Added support for MS WAV file offsets and lengths in TOC files.
6878
6879	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).
6880
6881	Began work to allow settings to be temporarily overridden during netplay and movie playback.
6882
6883	PCE, PC-FX:  Added settings "pce.disable_softreset" and "pcfx.disable_softreset", default 0, which when set to 1 will disable
6884	simultaneous pressing of RUN and SEL.  The current implementation kind of abuses the driver-side code that disallows opposing diagonal buttons
6885	being pressed at the same time, so if we ever change that (undocumented) feature to go with the last-pressed direction rather than
6886	clearing both, the description of these settings in the documentation will need to be updated.
6887
6888	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
6889	games).
6890
68910.8.3-beta:
6892
6893	Fixed an OpenGL function typedef in drivers/opengl.h.
6894
6895	PC-FX: Writes and reads to the KING and FXVCE chips "mapped" in parts of 0xA0000000 through 0xBFFFFFFF will now go through the respective
6896	data port write handlers, instead of directly to KRAM or palette RAM.
6897
6898	If non-power-of-2-sized OpenGL textures are not available, and bilinear interpolation or a pixel shader is enabled, and the emulated
6899	system resolution changes(such as on the PCE), two lines of black pixels will be written to the texture buffer to prevent the display
6900	of multi-colored garbage at borders, though the right+bottom borders will still be slightly darker than they should be...
6901
6902	PC-FX:  Added support for VDC data port writes via writes to 0xB4000000-0xB7FFFFFF and 0xB8000000-0xBBFFFFFF in the V810's
6903	memory map.  Fixes major graphical problems in "Super Power League FX".
6904
6905	Updated the srwcompressor description in mednafen.cfg.
6906
6907	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
6908	screen size is now limited to 512x512(BG0 is still 1024x1024), per the official developer documents.
6909
6910	Non-power-of-2-sized OpenGL textures will now be used if the "GL_ARB_texture_non_power_of_two" extension is detected.
6911
6912	Fixed a bug that sometimes would cause black screens when using the "sdl"(non-default) video driver(SDL surface per-pixel alpha blending
6913	was enabled when it shouldn't have been).
6914
6915	PCE:  Fixed a line clearing bug when BG is disabled that was causing some minor graphical garbage on some games that
6916	use multiple horizontal resolutions per frame.
6917
6918	Changed some nonsensical #ifdef statements that were intended to always evaluate as false with "#if 0".
6919
6920	Renamed SYSTEM_CLOCK to System_Clock in scsicd.cpp to work around a potential macro conflict on OSX.
6921
6922	PC-FX:  Added partial support for NEC's "scan" SCSI command, used in the BIOS' CD-DA player screen.
6923
6924	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
6925	note regarding cdrdao "TOC" files and "RW_RAW" subchannel data was added to the documentation.
6926
6927	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
6928	corruption in the PC-FX BIOS CD player screen.
6929
6930	Fixed a compilation error when --disable-debugger was passed to the configure script.
6931
69320.8.2-beta:
6933
6934	Added blargg's experimental blz compressor, for use with state rewinding(change the setting "srwcompressor" to use it).
6935	(This was added a while back, after 0.8.1, but I forgot to document it)
6936
6937	SMS,GG:  Added missing default key configurations.
6938
6939	PC-FX:  Added untested emulation of scaling+rotation in 4-color KING BG mode.
6940
6941	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.
6942
6943	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
6944	a custom version of Mednafen which emulates extra VDC VRAM.
6945
6946	PCE:  Removed 0xEB as SBC immediate in the disassembler(it was left over from the 6502 disassembler).
6947
6948	Changed setting type of setting "vdriver" to a string, with possible values "opengl" and "sdl"(and "0" and "1" for backwards compatibility,
6949	of course).
6950
6951	PCE:  Set the default char set in the debugger's memory viewer to shift_jis.
6952
6953	PCE:  Fixed a missing #include <iconv.h> in debug.cpp.
6954
69552007-6-17:
6956
6957	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
6958	vs VDC VBlank IRQs).  Unforunately, this change has caused some 1-line graphical glitches in games that do "raster effects".  This
6959	may be solved once/if V810 emulation has accurate cycle counts, which would require emulating instruction cache and prefetch logic. -_-;
6960
6961	Fixed branch traces display in the debugger, it was broken to only display half of them twice sometime since 0.8.1.
6962
6963	PC-FX:  Optimized RAINBOW JPEG-like decoding by using a static implementation of bit fetching functions(instead of a class).
6964
6965	PC-FX:  Added untested emulation of the CAXI V810 instruction.
6966
6967	PC-FX:  The RAINBOW transfer block count register is now emulated as being 5-bits instead of 16-bits, fixes screen issues(blue blue!)
6968	after defeating the snake monster in Zenki.
6969
6970	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
6971	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".
6972
6973	PC-FX:  Fixed transparency testing with 16M color KING backgrounds(only 1 Y component of every 2 pixels was being checked, now
6974	both are checked).
6975
6976        PC-FX:  Implemented back cellophane support.  Fixes fadeouts in "Lunatic Dawn", fadeins in "Team Innocent", and screen darkening issues
6977	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
6978	to black after the dialogue is over, leaving the upper and lower parts of the screen outside the play area slightly dark greenish).
6979	The hindmost color when mixing the layers is now set to palette entry #0, except when all layers are disabled(set to black),
6980        or front cellophane(set to black) or back cellophane(set to value in CCR) is enabled.
6981
6982	PC-FX:  Added emulation of the expansion backup RAM.  While not particularly necessary since Mednafen already emulated backup memory
6983	separately for each game, it does give a few extra save slots to some games(such as Miraculum ^_^).
6984
6985	Added opacity control(-/+) to the debugger.
6986
6987	Added an always-on zero page view to the CPU debugger for NES and PC Engine.
6988
6989        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
6990        a minimal amount of time to eliminate the chances of deadlock with this mutex.
6991
6992	GBA:  Fixed a bug that caused only half of the legacy wave sound channel's sample data to be saved.
6993
6994	GB:  Updated to Gb_Snd_Emu 0.1.5, fixes hanging note problems on some games, and cleaned up the sound save state code.
6995
69962007-5-30:
6997
6998	Added preliminary Sega Master System and Game Gear emulation based off of SMS Plus.
6999
7000	Factored the remaining state rewinding code out of the individual systems' code.
7001
7002	Fixed a minor visual bug when using state rewinding(also with save states, but it's not really visible) with the NTSC blitter.
7003
7004	Simplified how state rewind requests are passed to the emulation code, and fixed a small bug when using state rewinding with
7005	frame advance(now, a rewind will only occur if the state rewind button is held down while the frame advance button is pushed).
7006
7007	Changed a local variable name in selblur.cpp to fix compilation on OS/X(and maybe PPC in general?), thanks to Matt Beaumont
7008	for pointing out the conflict with a definition in altivec.h.
7009
7010	PCE:  Fixed cycle counts for BRA and BSR(they were 1 too high).
7011
7012	PC-FX:  Reads from I/O port 0xFC0 now return the current timer counter value.
7013
7014	Parameters to MDFNI_Emulate() and the internal system Emulate() functions are now passed through a structure, to allow
7015	for easier future expansion.
7016
7017	PCE, PC-FX:  Fixed audio track reading from physical CDs on big-endian platforms.
7018
7019	NES:  Fixed a bug that caused an emulator crash if Game Genie-style cheats were enabled at the same time as authentic Game Genie
7020	emulation was enabled.
7021
7022	Added setting "srwframes", which controls the number of save states to keep when state rewinding is enabled.
7023
7024	Debugger:  Fixed a bug that caused a crash if a PC breakpoint was triggered while the debugger screen was disabled.
7025
7026	Added an experimental logging feature to the debugger, currently only used by the PC-FX emulation code, to log CD-ROM read commands
7027	and calls to the PC-FX BIOS' glyph bitmap address function, both of which should be quite helpful in translation work...
7028
7029	PCE, PC-FX:  Moved the mouse sensitivity adjustments to the driver side to fix mouse emulation with network play and movies
7030	when using non-default pce.mouse_sensitivity/pcfx.mouse_sensitivity settings.
7031
7032	Added a few more entries to the in-emulator help screen.
7033
7034	PC-FX:  Increased the keyport latch delay, and added emulation of the PC-FX mouse.
7035
7036	PC-FX:  The keyport data ready flag is now reset only on low reads from the keyport data registers.
7037
7038	PCE:  Fixed disassembly of the BSR instruction.
7039
7040	NGP:  Fixed Z80 emulation cycle counts(they were far too low), and fixed emulation of the EI delay.
7041
7042	GB:  Reworked various things, including Z80 interrupt and HALT emulation.  GameBoy emulation will be a bit more CPU intensive now,
7043	and save states from older versions won't work with this version(sorry!).  These changes could easily break some games, but...at least
7044	"A Boy and His Blob" works now!
7045
7046	GBA:  Changed the file type detection code to reduce the chance of false positives.
7047
7048	PCE:  Files with the extension "sgx" will now be treated as raw SuperGrafx ROM image files(AKA SuperGrafx emulation will be enabled).
7049
7050	NES:  Refactored the file type detection code, so that emulation data structures and memory won't be initialized unless it's
7051	a recognized file type.
7052
7053	NES:  NSF(but not NSFE) game/album name, artist, and copyright strings are now trimmed of leading and trailing whitespace.
7054
7055	Added MDFN_trim(), MDFN_rtrim(), and MDFN_ltrim() functions.
7056
7057	WonderSwan:  Fixed a buffer overflow bug in the sprite drawing code.
7058
7059	GBA:  Flash and SRAM save games are now stored gzip-compressed.
7060
7061	PCE:  Fixed raw bytes display of relative branch instructions in the disassembler.
7062
7063	PC-FX:  Added CD-ROM data tracks to the memory debugger/viewer, read-only, however.
7064
7065	The selected character set in the memory debugger/viewer will now be saved for that emulated system when exiting.
7066
7067	Fixed text search in the memory debugger/viewer(iconv() was being called before the variables passed to it were initialized, oopsie).
7068
7069	Simplified the scrolling code in the memory debugger/viewer, the line containing the cursor will now always be centered vertically
7070	on the screen.
7071
7072	PCE:  Fixed an ambiguous if() statement in huc.cpp in the BRAM emulation code.
7073
7074	GB:  Fixed a semi-ambiguous boolean math statement in the cpu emulation code.
7075
7076	Fixed an ambiguous else statement in the throttling code in drivers/main.cpp
7077
7078	NGP:  Neo Geo Pocket emulation code is now compiled with -fno-strict-aliasing to work around issues in the TLCS-900h code.
7079
7080	GBA:  Removed unused ELF code.
7081
7082	Fixed some implicit conversions of const char * to char *. (stupid putenv() prototype grumble mumble)
7083
7084	<stdlib.h> is now included in "mednafen.h", added notes to README about system header files automatically included,
7085	and removed inclusions of such header files in source code files that include mednafen.h(most do, and should).  This change
7086	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
7087	and safer than #include'ing the system headers manually(and forgetting to >_>).
7088
7089	Modified instances of "Makefile.am" to stop including the top directory in the include search path, and removed the symlink of
7090	config.h to include/config.h, and fixed the references to "config.h" in intl/Makefile.in.
7091
7092	PCE:  Made hes.cpp use MDFN_de32lsb() and MDFN_de16lsb() from endian.cpp.
7093
7094	PCE:  Changed some instances of free() to MDFN_free().
7095
7096	GBA:  Un-inlined the CPUWriteMemory() function.
7097
7098	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".
7099
7100
71010.8.1:
7102
7103	PC-FX:  Added more registers/SetRegister() support to the debugger.
7104
7105	Trying to edit a register in a debugger register groups with a NULL SetRegister method will no longer crash Mednafen.
7106
7107	NES:  Fixed a misnamed save state variable in the FME-7 code.
7108
7109	Mednafen will now be compiled with "-fno-strict-overflow" if the C compiler supports that option, for the upcoming gcc 4.2 release,
7110	as I'm not sure this optimization is safe with Mednafen's code(it may be, but better safe than somewhat sorry!).
7111
7112	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"
7113	format.  Ripped CD+G CDs can be played back this way in the PCE CD and PC-FX BIOS CD players.
7114
71150.8.0-beta:
7116
7117	PC-FX:  Improved VDC chain/256-color mode emulation.
7118
7119	PC-FX:  Altered FXVCE->VDC vsync emulation.
7120
7121	PC-FX:  Revamped RAINBOW code, adding support for JPEG-like encoded content, thanks to David Michel's help.
7122
7123	WonderSwan:  Fixed a bug in the debugger(HAH) regarding the display of HBTimerPeriod and VBTimerPeriod(they were erroneously listed as 1-byte
7124	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
7125	were >= 0x100).
7126
7127	GBA:  Structurized free-floating various variables...there shouldn't be any regressions, aside from save state incompatibility, unless
7128	typos were made(if so, please tell me!).
7129
7130	PC-FX:  Added support for scrolling/rotation in 64K color mode.
7131
7132	PC-FX:  The KING data structure(including KRAM) is now dynamically allocated.
7133
7134	GB, GBA:  The memory for the color map/filter is now dynamically allocated.
7135
7136	PC-FX:  Changed the size of the emulated X tile coordinate register when drawing KING BG, affecting in-range calculation when in
7137	non-endless scroll mode.  Fixes missing eyes and mouths and other craziness in cutscenes in Chip Chan Kick.
7138
7139	PC-FX:  Fixed playback of the last 4 samples of an ADPCM playback sequence, fixes crazy volume problems in "Team Innocent".
7140
7141	PCE:  VDC chip data structures(including emulated VRAM) are now dynamically allocated.
7142
7143	NES:  FDS and several mappers' larger data structures are now dynamically allocated.
7144
7145	NES:  NSF write handler info structure is now dynamically allocated, which should reduce memory usage by 1 or 2 MiB(depending on the platform)
7146	on other games/files.
7147
7148	PCE:  CDROM-related memory is now dynamically allocated, which should reduce Mednafen's memory usage for non PCE-CD games
7149	by at least 2.25MiB.
7150
7151	PCE:  Added untested support for the Tsushin Booster's expansion RAM
7152
7153	Replaced the hard-coded file extension tests when loading from a ZIP archive in MDFN_fopen() with code that tests extensions passed as
7154	a double-NULL-terminated(each entry is single-NULL-terminated) string to MDFN_fopen().
7155
7156	Added QuickLZ to the codebase, and added the setting "srwcompressor" to specify which compressor to use for staterewinding,
7157	"minilzo" or "quicklz", with "minilzo" as the default.  QuickLZ can be considerably faster at compression than MiniLZO, though QuickLZ is written
7158	with x86 and x86_64 CPUs in mind, and performance will likely suffer on other platforms, and its compression ratio isn't as good
7159	as MiniLZO(which itself isn't that great!).
7160
7161	PCE:  Added the settings "pce.adpcmvolume", "pce.cddavolume", and "pce.cdpsgvolume", for people who like music more than sound effects, or
7162	vice-versa for some weirdos! ;)
7163
7164	PCE:  Burst mode will now be tested for when the VDC would enter the active display area.
7165
7166	PCE:  Altered the relative volume of CDDA vs PSG vs ADPCM with CDROM games, based on tests done on a real system.
7167
7168	PCE:  ADPCM no longer uses saturated addition for the current output value, instead just wrapping(like apparently occurs on a real system).
7169
7170	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).
7171	The Game Express CDROM card image now works, including Game Express CD games(at least Hi-Leg Fantasy ;)).  John Madden Duo CD Football
7172	works.  Steam Hearts plays stage music now.  3x3 Eyes doesn't seem to have desynchronized audio anymore during cutscenes...
7173
7174	Updated libmpcdec to 1.2.5(I think it was 1.2.2 previously...).
7175
7176	PC-FX:  Added VRAM and FXVCE palette RAM to the debugger's memory editor.
7177
7178	PCE,PC-FX:  Fixed CUE+BIN pregap handling, it was totally borked before.
7179
7180	PC-FX:  Improved byte writes to KING I/O ports, fixes graphics problems in First Kiss Monogatari and Pia Carrot He Youkoso
7181
7182	PC-FX:  Changed how reads/writes from/to KING registers 0x09 and 0x0A are handled.
7183
7184	PC-FX:  All writes to 0x80000000-0x80000FFF are now translated to I/O port writes.
7185
7186	PC-FX:  Reads from "unmapped" areas in the V810's memory address space will now return 0xFF(or 0xFFFF, or 0xFFFFFFFF).
7187	This fixes a lockup that could occur
7188	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!
7189	Also, while this is probably the correct value to return for unmapped areas < 16MiB, it's not correct for at least some higher addresses...
7190	more tests are called for, but we can't just dump the entire 4GiB address space...can we?
7191
7192	PC-FX:  D4 of reads from KING register 0x05 will now be set if a SCSI CD interrupt is pending.
7193
7194	PC-FX:  Fixed READ TOC SCSI command emulation.  The starting track field is no longer treated as BCD.  Silly me...  Fixes
7195	"Power Dolls FX" ADPCM sounds, and probably other games that have data tracks numbered 10 or above...
7196
7197	PC-FX:  D0 of reads from the KING DMA status registers is now the only bit returned.
7198
7199	PC-FX:  D0 of writes to the KING SCSI DMA length register is now ignored.
7200
7201	PC-FX:  Started work on initial support for for KING's 1M KRAM chip mode...I need to run tests!
7202
7203	PC-FX:  Reads from KING register/port 0x05 will now return the ATN and ACK SCSI status bits.
7204
7205	PC-FX:  Reads from KING register/port 0x04 will now return the SCSI status bits.
7206
7207	PC-FX:  Changed reads to KING registers/ports 0x01, 0x02, and 0x03 to return the last values written to those registers, rather
7208	than setting the bits returned corresponding to the current SCSI status bits.
7209
7210	PC-FX:  Improved keyport emulation, fixes Can Can Bunny Extra DX title-screen "lockup".
7211
7212	PC-FX:  Added support for negative KRAM increment values on read/write(king register 0xE).
7213
7214	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).
7215
7216	PCE:  Block memory transfer instructions are now emulated at 6 cycles per byte transfered(+extra if VDC is accessed) instead of 5, to
7217	match tests done by malducci.  This does break Wonder Momo, unfortunately...
7218
7219	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.
7220	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
7221	to libcdio(or CD-ROM in general) limitations. :(
7222	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
7223	data, and using libcdio's direct MMC functions results in much much more latency(probably because it bypasses the OS's caching
7224	of CDROM data), which would require an extra CDROM reader thread, which does its own caching and prefetch, in Mednafen.  Maybe later!
7225
7226	PC-FX:  Fixed cmpf.s emulation, fixes lockups in "Pachio Kun FX".
7227
7228	PC-FX:  Added a tidy structure to contain SCSI command numbers, CDB lengths, and function pointers.
7229
7230	PC-FX:  Added support for SCSI command 0x08(READ6), which "Mahjong Gokuu Tenjiku" uses.
7231
7232	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.
7233
7234	PC-FX:  Modified the KING background rendering code to only draw to one buffer, instead of multiple buffers that are later mixed,
7235	to improve speed slightly.
7236
7237	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!)
7238	values in vblank.
7239
7240	PC-FX:  SCDI CD interrupts on end of CD-DA track playback are now emulated.
7241
7242	PC-FX:  SCSI CD "Test unit ready" command now expects to receive 6 data bytes total(1+5) instead of 1.
7243	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.
7244
7245	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.
7246
7247	PC-FX:  Added support for non-endless-scroll in BG0 rotation mode.  Fixes the title screen flipping effect for
7248	Last Imperial Prince.
7249
7250	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...
7251	but it does fix a problem with disappearing sprites when leaving the airship in Miraculum.
7252
7253	PC-FX:  Added KING BG0 scaling/rotation support, but only for 8bpp backgrounds(direct or indirect) in endless scroll mode for now...
7254	Fixes graphics in Miraculum(yay!) and Konpeki no Kantai.
7255
7256	PC-FX:  Fixed direct CG mode width mask, corrects graphics bugs in "Boundary Gate" and others.
7257
7258	PC-FX:  Added partial microprogram emulation, fixes junk graphics in Megami Paradise II.
7259
7260	PC-FX:  Combined the different KING background non-endless/endless and direct/indirect rendering codepaths.  This will make it
7261	a bit slower, but much more maintainable and...changeable!
7262
7263	SexyAL:  Added support for sound cards that don't support interleaved stereo samples...probably.
7264
7265	Changed the font glyph cache to use an array of pointers instead of 2-dimensional array.  This reduces resident memory
7266	usage considerably, even on systems with 64-bit pointers.
7267
7268	Readded the old 6x13 and 12x13 fonts for future usage in the debugger.
7269
7270	Fixed the documentation to list the controls for configuring virtual devices as ALT+SHIFT+1, ALT+SHIFT+2, etc. instead of ALT+1.
7271	Oops.
7272
7273	PC-FX:  Made fairly invasive minor optimizations/refactoring to the cellophane code...
7274	I *have* tested it, and hopefully it won't break anything that worked before!
7275
7276	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
7277	Stage 2 of Tyoushin Heiki Zeroigar!
7278
7279	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
7280	could cause problems with some games, so it causes a hard reset(the same as the F11 key) now.
7281
7282	PCE:  Added PSG registers to the debugger.
7283
7284	Enclosed many strings in _() or gettext_noop() for translation purposes.
7285
7286	Altered po/Makefile.in.in to pass "-N" to msgmerge, to disable fuzzy string matching.  Fuzzy strings are braindead I say!
7287
7288	Reworked MDFN_malloc(), it now takes a purpose, and on error, will print out the number of bytes attempted to be allocated,
7289	the purpose of the allocation, and the file and line number in which the allocation was attempted(through macro magic!).
7290
7291	PC-FX:  Changed the 7.16MHz dot-clock emulation mode to use an internal layer 1024-pixels wide(the least-common multiple of the
7292	2 different screen resolutions that are mixed by the video chip), rather than having 2 different
7293	layers that are merged by the video code(which causes problems on edges).  This new method is much slower, unfortunately...
7294	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.
7295	ADDITIONALLY, a setting "pcfx.high_dotclock_width" has been added.  The default is, of course, 1024, but other accepted values
7296	are 341 and 256, though I REALLY don't recommend using 256, as it will cause dropped pixels, whereas 341 will only cause somewhat
7297	distorted pixels horizontally.  The advantage of using 341 over the default of 1024 is SPEED, and bilinear interpolation(if enabled) will
7298	work much better as well.
7299
7300	PC-FX:  Fixed major problems when using more than one breakpoint of a type(read, write, etc.); it also occurred with the PCE debugger,
7301	but only with Aux breakpoints.
7302
7303	PC-FX:  Fixed the VDC state restore code to properly recache all the tiles, instead of half of them!
7304
7305	GB, GBA:  Fixed a few duplicate and misnamed variables in the save state structures.
7306
7307	PCE, PC-FX:  Fixed a misnamed variable in the VDC save state structures.
7308
7309	Lynx:  Removed a duplicate variable in the CPU save state structure.
7310
7311	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).
7312	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
7313	disc, so it isn't truly hot-swap ;)).
7314	When a game requests you to change the disc, the procedure is:
7315		Eject virtual disc(F8 key).
7316		Save state.
7317		Exit emulator.
7318		Load emulator with second CD.
7319		Load state.
7320		Wait for the game to load it. :b
7321
7322	PC-FX:  Implemented virtual CD insert/eject, via the F8 key.
7323
7324	PC-FX:  Added dummy handling of SCSI command 0x01(rezero unit), Doukyusei II no longer aborts the emulator.
7325
7326	PC-FX:  Fixed bitstring instructions to fetch from the proper source address, fixes major graphics corruption bugs in "Anime Freak FX Vol. 4"
7327	and probably some other games as well.
7328
7329	PC-FX:  Fixed RAINBOW decoding to not begin block decoding until a 0xFF is discovered in the bytestream.  Fixes some graphical problems
7330	in "Ojousama Sousama".
7331
7332	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,
7333	there was some really weird frequency aliasing at +10% playback speed on a real PC-FX...).
7334
7335	WonderSwan:  Refactored the SRAM and external EEPROM code, and added support for larger SRAM sizes(Dicing Knight works now!).
7336
7337	PCE:  Extended the Sherlock Holmes 1 hack to Sherlock Holmes 2 as well.
7338
7339	The address displayed in the "Cursor position" field in the memory viewer/debugger is now masked properly.
7340
7341	PC-FX:  Fixed the ADPCM lowpass filter rolloff frequency calculation(forgot to divide by 2!).
7342
7343	PC-FX:  Changed priority handling of KING background for priorities 5-7, though I don't know if the new way is correct...  fixes
7344		a graphical bug in "Power Dolls FX".
7345
7346	PC-FX:  The ADPCM volume control registers are now emulated as logarithmic, instead of linear.
7347
7348	PC-FX:  Modified 256-color VDC sprite and bg palette index calculation, to fix color problems in the 3/4 view of Ojousama Sousamou.
7349
7350	PC-FX:  Altered ADPCM address emulation so that the "active" play address is 17 bits instead of 18 bits, fixes problems in several
7351		games(Anime Freak FX Vol. 1, Tenchi Muyo! FX), hopefully it doesn't cause any new ones. ;)
7352
7353	PC-FX:	Added support for KING bitstring writes and reads, and changed maximum BGn screen dimension setting from 0x9 to 0xA.  "Boundary Gate" works
7354		much much better now due to these changes.
7355
7356
7357	NES:
7358		NULL-terminated the debugger's list of MMC1 registers, which was apparently forgotten earlier.  Oops.
7359
7360		Added MMC3 registers to the debugger.
7361
7362		Added the current scanline(read-only) to the debugger's list of registers.
7363
73640.7.2:
7365
7366	NES:  Added MMC1 registers to the NES debugger.
7367
7368	Various cleanups(removing dead code and header declarations).
7369
7370	Added settings "vblur.accum", enables motion blur accumulation mode, and "vblur.accum.amount".
7371
7372	Added setting "vblur", when enabled, will (motion) blur adjacent video frames 50/50.
7373
7374	Added WonderSwan emulation, based on Cygne, but greatly improved, and with a debugger.
7375
7376	Modified the time base adjustment code used when sound is disabled to fix fast-forwarding when sound is disabled.
7377
7378	"Fixed" a few instances of mostly harmless variable shadowing.
7379
7380	Mednafen is now compiled with -Wshadow.
7381
7382	Modified the save state preview rescaling code to properly(with interpolation instead of nearest-neighbor) rescale PCE games that use the
7383	512pixel-width mode, or in other words... the rescaling code will now work where (fb_width / state_preview_width) <= 2 whereas previously
7384	it only worked properly where (fb_width / state_preview_width) < 2.
7385
7386	Errors saving save states are now propagated and reported.
7387
7388	NGP:  Files with an extension of "npc" are now also treated as Neo Geo Pocket ROM images.
7389
7390	PC-FX:  Added setting "pcfx.nospritelimit".
7391
7392	Removed the memory dump and graphics memory dump functionality from the main debugger.  The new memory editor provides the same
7393	or higher level of functionality.
7394
7395	Added a new memory editor to the debugger interface, accessible by pressing ALT + 3 in the debugger.
7396
7397	PCE:  Added support for reduced-bit-depth background mode.
7398
7399	If the ALSA driver code is unable to set stereo or mono sound, it will try mono or stereo sound instead, respectively.
7400
7401	PCE:  PSG waveform RAM will now only be updated if the channel is turned off.
7402
7403	glFinish() will no longer be called every frame in the OpenGL code, which should improve performance(if it causes problems, like
7404	tearing where there wasn't any before or decreased performance,	please file a bug report!).
7405
7406	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),
7407	then it will be set to "1".  This has the effect of forcing vblank synchronization when running under Linux with
7408	NVidia's drivers.
7409
7410	Fixed configure script option "--disable-jack".
7411
7412	Lynx:  Screen rotation now works in non-OpenGL mode(SDL+framebuffer), sans scanlines support.
7413
7414	Lynx:  Screen rotation now also rotates input sanely, as it did in 0.6.x and earlier versions.
7415
7416	Fixed a fatal compilation error in the ALSA driver with ALSA versions < 1.0.9.
7417
7418	Fixed a fatal compilation error on GCC < 3.4 in the PC-FX code.
7419
7420	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
7421	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
7422	main game framebuffer, so video cards with severe texture size limitations will still have problems with PC Engine and PC-FX games that use
7423	higher resolution modes.
7424
7425	The help screen, debugger, and cheat search interface now use their own surfaces instead of the generic OSD surface.
7426
7427	Fixed(hopefully) OSD-clearing in SDL blit mode("-vdriver 1").
7428
7429	Removed the option "doublebuf".  It is kind of an archaic leftover from when Mednafen did only one blit
7430	per frame(and had the OSD written to the game's virtual framebuffer).  Double buffering must always be enabled,
7431	or else screen corruption may occur.  Also, as a note, double buffering does not imply synchronizing to vblank, though
7432	this does occur in some situations.
7433	***NOTE:  Please check your scripts and frontends and remove any "-doublebuf" arguments! ***
7434
74350.7.1:
7436	Began work on an experimental stdio interface, see drivers/remote.cpp if you are a frontend author and can read C code, though
7437	it is disabled for now. :)
7438	Documentation for it will be written when it is closer to completion.
7439
7440	Switched to trio_snprintf() from snprintf() in the input configuration code, this should fix problems under Windows(and any
7441	other OS with a lame snprintf() implementation)	with joystick button configurations not saving properly.
7442
7443	Fixed parsing of the "sounddevice" setting(it was erroneously being compared to the long,
7444	descriptive name of the driver instead of the short name).
7445
7446	PC-FX:  More changes.
7447
74480.7.0:	*** Network play with this release requires Mednafen Server >= 0.3.0 ***
7449
7450	PCE:  Fixed a timer reload bug.
7451
7452	Added the following configure script options:
7453	  --enable-debugger       build with internal debugger [default=yes]
7454	  --enable-cjk-fonts      build with internal CJK(Chinese, Japanese, Korean)
7455	                          fonts [default=yes]
7456	  --enable-gb             build with GameBoy emulation [default=yes]
7457	  --enable-gba            build with GameBoy Advance emulation [default=yes]
7458	  --enable-lynx           build with Atari Lynx emulation [default=yes]
7459	  --enable-nes            build with Nintendo Entertainment System emulation
7460        	                  [default=yes]
7461	  --enable-ngp            build with Neo Geo Pocket emulation [default=yes]
7462	  --enable-pce            build with PC Engine(TurboGrafx 16) emulation
7463	                          [default=yes]
7464	  --enable-pcfx           build with PC-FX emulation [default=yes]
7465
7466	Moved the save states display and info text message display to blit directly to the framebuffer, rather
7467	than to the general OSD layer(which is now only used for cheat console and debugger).
7468
7469	Reworked the network play console interface to be more...usable.  It takes up much less space, is centered at the bottom of the screen,
7470	the "t" button now activates text input, pressing "Enter" exits netplay console mode, and it will automatically pop
7471	up(though without user input possible, unless you press "t" while it's up) for 2.5 seconds when a new message is received.
7472
7473	Added support for all possible input devices to be used with network play.
7474
7475	Command-line arguments can now be prefixed with either "-" or "--".
7476
7477	Fixed "--help/-help" parsing from command-line.
7478
7479	PC-FX:  Increased emulation accuracy, most games still don't work correctly, if at all.
7480
7481	PCE:  Fixed VRAM->VRAM DMA when destination writes occur outside of VRAM space(they're now ignored).  Fixes "Ruin - Kami no Isan".
7482
7483	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)
7484	to be synchronized to vertical retrace/blanking period if Mednafen is compiled against SDL >= 1.2.10,
7485	controllable by the setting "glvsync", enabled by default.
7486
7487	The "sounddriver" setting is now honored.  Values you can try are "default", "oss", "alsa", "dsound", and "jack".
7488
7489	Added support for JACK and ALSA sound output, ALSA sound output is now preferred over OSS.
7490
7491	Mednafen will now exit properly if it receives a not-fatal signal, such as SIGTERM or SIGINT.
7492
7493	NES:  Fixed noise and DMC playback frequencies with PAL emulation.  Thanks to blargg for the information.
7494
7495	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
7496	old save states you absolutely must have, load them in 0.6.5 and save them, then load them in 0.7.0).
7497
7498	Added keys to increment(though a predefined list of possible devices) the currently selected device on an
7499	input port(CTRL+SHIFT+1 through CTRL+SHIFT+5); note that this WILL change the setting for this port saved in the configuration file.
7500
7501	PCE:  Added mouse support(use "-pce.input1 mouse").  To use it properly in windowed mode, you will need to press the "Scroll Lock"
7502	key.
7503
7504	PCE:  Added 6-button pad support.  By default, the "M" key will switch between 2-button and 6-button modes(this is necessary
7505	because most non-supporting games will break horribly in 6-button mode, which happens on a real system as well).
7506
7507	Revamped much of the internal input device handling.  Important user-visible changes:
7508		Button configuration order is slightly different, with the rapid-fire instances of buttons immediately coming
7509		after normal instances of the buttons.
7510
7511		More buttons can now be configured for rapid-fire.
7512
7513		A virtually unlimited number(instead of 4 in previous versions) of physical buttons may now be assigned to a
7514		virtual button or command.
7515
7516		Input button settings are now saved in the text-format mednafen.cfg file.
7517
7518		Famicom input devices that were previously not configurable, such as the Family Keyboard, now are; however,
7519		it would be unwieldy to configure the Family Keyboard using the in-emulator configuration process, so edit
7520		the configuration file instead.
7521
7522		The NES Zapper and other devices that are emulated using the mouse can now have their buttons configured.
7523
7524		The setting to manually set an input device on the Famicom expansion port has changed from "nes.fcexp" to
7525		"nes.input5".
7526
7527		Gameboy and Gameboy Advance pad button configurations are now independent of each other.
7528
7529		Save states and movies can't be accessed during HES/NSF/GSF playback anymore(does this hurt anyone?).
7530
7531		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
7532		convoluted combinations of F3 and F4 with CTRL and SHIFT.
7533
7534	The NSF/HES/GSF player graphical code now all use the same resolution and video settings("player.*").
7535
7536	Replaced the internal fixed-width 6x13 and 12x13 fonts with 9x18 and 18x18 fonts, respectively, and increased the general OSD layer
7537	size to 384x336 from 256x224(which has a side effect of allowing more detailed save state previews for NES and PCE).
7538	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
7539	slightly overkill, but, eh...*flees*).
7540
7541	PCE:  The timer counter was being updated one instruction too late.  Fixed.  (This problem probably didn't affect
7542	any games, but it could have resulted in confusion while using the debugger.)
7543
7544	Remapped the state rewind key to ALT+S, and added a new help screen triggered by pressing "F1".
7545
7546	PCE:  The disassembler was missing opcode 0x3A, DEC.  Fixed.
7547
7548	NES:  A few sound variables weren't being saved in the VRC6 and FME7 sound code.  Fixed.
7549
7550	PCE:  Fixed disassembler decoding of ZP indirect addressing mode.
7551
7552	NES:  Fixed unofficial opcode 0xE2 cycle timing.
7553
75540.6.5:
7555
7556	PCE:  Made a small optimization to HuC6280 emulation by caching the CPU speed shift-left cycle count adjust value.
7557
7558	Removed an old kludge for Win32 that worked around an SDL problem in which the window position would be off-screen when
7559	switching from fullscreen to windowed mode, as I think the problem is fixed in SDL 1.2.10.
7560
7561	Reworked the signal handling code to be included if HAVE_SIGNAL is defined instead of if WIN32 is not defined, and added #ifdefs around
7562	each possible signal(as some platforms don't provide #define's for some signals).
7563
7564	PCE:  Added setting "pce.cdspeed" to set a CD-ROM data transfer speed multiplier.  PLEASE READ THE DOCUMENTATION FOR CAVEATS.
7565
7566	PCE:  Fixed CD-DA and ADPCM fadeout speed when setting the "pce.ocmultiplier" setting to a value other than 1.
7567
7568	Cleaned up the multi-res blitting code in drivers/video.cpp to not cause crazy compiler warnings(and not be crazy in general!).
7569
7570	PCE:  Fixed the ADPCM playback rate formula(the result was off by about 0.27%), thanks to Charles MacDonald for detailed information.
7571
7572	Began work on implementing several OpenGL pixel shaders, which will be finished in a later release.
7573
7574	Mednafen no longers directly links to the OpenGL library, instead it uses SDL's OpenGL library loading and function address functions.
7575
7576	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,
7577	and adjusted the code activated by setting "pce.adpcmlp" to call Blip_Synth::treble_eq() with a "treble" value of a lower magnitude, which
7578	might result in a slight difference in the ADPCM frequency spectrum produced when "pce.adpcmlp" is enabled.
7579
7580	Fixed "Value increased" cheat search method(it was acting the same as "Value decreased", oops -_-).
7581
7582	Changed the usage of fix-sized filename component arrays in general.cpp with string objects.
7583
7584	MDFN_printf() and MDFN_PrintError() now use trio_vaprintf() instead of trio_vsnprintf().
7585
7586	NES:  Added setting "nes.n106bs", which when set, will enable less-accurate, but better sounding, Namco 106(mapper 19) sound emulation.
7587
7588	NES:  Fixed save states for mapper 69 games(mirroring and prg bank setup wasn't being saved and restored).
7589
7590	NES:  Added support for multiple expansion sound chips used simultaneously in NSFs, including limiting the address space they
7591	will respond to when multiple expansion sound chips are used(to prevent collisions between VRC6 and VRC7's address space, for example).
7592
7593	PCE:  Fixed CD-DA playback speed when setting the "pce.ocmultiplier" setting to a value other than 1.
7594
7595	NGP:  Changed the default full-screen video settings, so that the scaled image size is no longer larger than the
7596	display area(oops -_-).
7597
7598	NES:  Added support for UNIF board "UNL-603-5052"(thanks to CaH4e3).
7599
7600	NES:  Fixed mapper 115, "Thunderbolt 2" now works(thanks to CaH4e3).
7601
7602	NGP:  Sound emulation now respects global sound volume setting "soundvol".
7603
7604	NGP:  Added missing setting "ngp.forcemono".
7605
7606        PCE:  Physical CDROM device names will now be printed on Mac OS/X on startup again.  Physical CDROM access seems to work,
7607	but the DarwinPorts libcdio 0.75 package appears to be horribly broken, so please remove it and install
7608	libcdio 0.77(or higher) from its source code.
7609
7610	NGP:  Fixed a few major problems with NGP emulation on big-endian platforms(such as PPC OS/X).
7611
76120.6.4:
7613
7614	Added somewhat experimental Neo Geo Pocket(Color) emulation based off code from NeoPop, heavily modified.
7615
7616	GB:  Fixed frame rate when sound is disabled.
7617
7618	Added →, ←, ↑, and ↓ characters to the Lynx, GB, GBA, and PC Engine directional button names used for button configuration, to match the NES button
7619	names.
7620
7621	PCE:  Added setting "pce.adpcmlp", default value 0, that when enabled, will cause Mednafen to apply a lowpass filter to ADPCM sound output
7622	with a rolloff frequency dependent on the current ADPCM playback frequency.  This makes ADPCM voices sound less "harsh", however, the downside
7623	is that it will cause many ADPCM sound effects to sound a bit muffled.
7624
7625	PCE:  Moved the OpenGL screen clearing code into the FlipOpenGL() function to fix a problem with some PCE games that use
7626	multiple resolutions per frame having a partially corrupted screen when the OSD was up.
7627
7628	PCE:  Fixed save state loading with save states created during a CDROM data transfer.
7629
7630	Fixed a bug that was causing flickering OSD remnants to remain onscreen in fullscreen mode if the OSD was drawn outside of
7631	the game screen area.
7632
7633	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
7634	horrible.
7635
7636	Assigned the two keys "-"(not the numpad instance) and "=" to functions "decrement selected save state slot" and "increment selected
7637	save state slot", respectively.
7638
7639	Removed the checks preventing save state usage when playing NSFs, since save states may be useful with NSFs in some circumstances.
7640
7641	Added a new setting "ckdelay", which controls the length of time, in milliseconds, that a button/key corresponding to a
7642	"dangerous" command like power, reset, exit, load state, etc. must be pressed before the command is executed.  The default value is 0.
7643
7644	Input mapping configuration is now saved after argument parsing if there is no game to be loaded, allowing a command like
7645	"mednafen -inputcfg pcegamepad1" to work properly.
7646
7647	The message "Configuration finished." will now be displayed when button mapping for the selected input device is complete when
7648	using the in-game configuration process.
7649
7650	PCE:  Fixed a bug in the debugger involving disassembling block memory transfer instructions(effectively, the length was being
7651	fetched 1 byte too early).
7652
76530.6.3:
7654
7655	SexyAL:  Fixed buffer write memcpy() optimization to also check to make sure the input and output byte orders are the same.
7656
7657	PCE:  Added setting "pce.forcemono" to force monophonic sound output.
7658
7659	Added setting "analogthreshold", which is the threshold for detecting a "button" press on analog axis, in percent.  The default
7660	value is 75(%).
7661
7662	Worked around a very odd "bug" in gcc that involved muddling of local-scope structure definitions among different object files(
7663	the structure previously named "BPOINT" in both NES and PCE emulation code), which led to breakpoints with NES emulation being
7664	totally fubared.
7665
7666	Added graphics memory dumping capabilities to the debugger.
7667
7668	PCE, NES: Save states and powers/resets in debugger step mode SHOULD work properly now.
7669
7670	Fixed a potential deadlock when exiting.
7671
7672	Various debugger fixes.  I lost the ChangeLog, sorry. -_-
7673
76740.6.2:
7675
7676	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!).
7677
7678	OpenGL texture heights are now rounded up to the nearest power of 2(texture widths already had this rounding in previous versions),
7679	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).
7680
7681	PCE:  The libcdio sector reading functions are now checked for return values < 0 as errors, rather than != 0, to fix
7682	problems under Linux and possibly many other OSes where the return value is something like 2048(the number of bytes read, presumably).
7683
7684	PCE:  Fixed a bug with disassembling block memory transfer instructions on < 64-bit systems(I had forgot to type-cast a variable
7685	to uint64 before left-shifting it past 32-bits).
7686
7687	PCE:  Added the implied form of INC to the disassembler.
7688
7689	NES:  Removed the PRG mask constraint for UNROM/mapper 2, introduced in version 0.2.0, to fix the Japanese "Maniac Mansion" and possibly
7690	other games.
7691
7692        PCE:  Fixed debugger write breakpoints.  The code had a logical error in it, with the end effect of preventing stack writes in the IRQ
7693        sequence, causing games to crash.
7694
76950.6.1:
7696
7697	PCE:  The HuC6280 disassembler now gives @ZP hints for BBR and BBS instructions.
7698
7699	NES:  Increased the effectiveness of frame-skipping.
7700
7701	Removed unnecessary sound buffer copying if the source format == device format in SexyAL, which is true most of the time.
7702
7703	Fixed a bug that was causing a crash in the cheat interface when trying to list cheats, under Win32.
7704
7705	Fixed a bug in the settings loading code that forced the user to resort to manual creation of ~/.mednafen/mednafen.cfg on
7706	some operating systems(*BSD, OS/X).
7707	It was being caused by 'errno' being modified between the attempt to open the settings file, and the test 'if(errno == ENOENT)'.
7708
7709	Silent sound will now be outputted when in step mode in the debugger.  Windows users' ears rejoice!
7710
7711	Added a strtod() replacement that recognizes both "." and "," as valid radix characters, regardless of the current
7712	locale, and modified settings.cpp to use it.
7713
7714	Lynx:  Removed some unused code.
7715
77160.6.0:
7717	The internal sound format has been changed to 16-bit from floating-point to improve performance,
7718	especially on processors without FPUs.  There should be no perceptual nor measurable
7719  	loss in sound quality.
7720
7721	Removed fidlib from the source code tree, as it is no longer used.
7722
7723	Lynx:  Switched over to Blip_Buffer's lowpass("treble") capabilities from fidlib.
7724
7725	PCE, NES:  Added a debugger of DOOOOOM.
7726
7727	PCE:  Altered timer emulation slightly.
7728
7729	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:
7730		mednafen /dev/cdrom
7731		mednafen /home/sauron/games/Ys/Ys.cue
7732
7733	Added MusePack CD-DA playback(IE audio tracks encoded as MPC data) support.
7734
7735	Added legal information to the end of the documentation, though it's likely incomplete.
7736
7737	Switched over to using an internal copy of the "Tremor" decoder, and dropped dependencies on the ogg and vorbis
7738	external libraries.
7739
7740	The CD-DA reading function now provides sound data as 16-bit signed samples in the endian format native to the
7741	host platform.
7742
7743	PCE:  Changed two often-used CDROM timing variables from int64 to int32 to try to improve performance slightly on non-64-bit platforms.
7744
7745	PCE:  Added a hack that changes subtle CDROM unit behaviour when the game "Sherlock Holmes" is loaded, so that the aforementioned game
7746	will work.  In general, I really, really
7747	dislike hacks of this nature, but I think it's justified until I have a better understanding of the (complex) PCE CD
7748	functioning.
7749
7750	PCE:  Lowered CDROM data transfer rate, and removed the kludgey one-time delay in the sector reading function.
7751
7752	PCE:  Altered ADPCM write delay to be inversely proportional to the playback frequency selected.
7753
7754	GB, GBA and Lynx save-state previews are now saved at native resolution, instead of scaling down to 1/4 of the native resolution.
7755
7756	NES:  Fixed a mapper 96 initialization problem.
7757
7758	NES:  Implemented blargg's NTSC graphics filtering code(version 0.2.0).
7759
7760	The setting "sounddevice" will now select which filesystem entry(like "/dev/dsp" or "/dev/adsp") to open when using the OSS output driver.
7761
7762	NES:  Changed the internal sound channels high-frequency mixing buffer to 16-bit, from 32-bit, to try to increase performance
7763	on cache-starved processors.
7764
7765	Added a simple, non-ideal(it increases CPU usage measureably because it dirties the OSD surface and causes it to be redrawn)
7766	FPS display, toggled with SHIFT+F1.
7767
7768	PCE:  Added "hes" and "pce" to the file extensions looked for in ZIP archives in the file loader.
7769
7770	NES:  Added support for iNES mapper 38.
7771
7772	Lynx:  The lowpass filter can now be optionally disabled by modifying the "lynx.lowpass" setting.
7773
7774	ROM sizes, MD5 hashes, and CRC32 checksums are now printed out for all systems emulated
7775	by Mednafen.
7776
7777	Rearranged the file loader detector to attempt to load the file as a GBA game last, since the GBA cart-detection
7778	code *could* give false positives if the game isn't a GBA game.
7779
7780	PCE:  The 2KiB of BRAM is no longer mirrored across the 8KiB segment 0xF7, fixing "RAM is full" problems
7781	with Exile 2.
7782
7783	PCE:  Fixed MD5 hash calculation for CD data tracks.
7784
7785	Added settings "gb.forcemono" and "gba.forcemono".
7786
7787	Lynx: Cleaned up the code.
7788
7789	The MD5 hash is now calculated for GBA and Lynx games, and the correct MD5 hash is now used in filenames
7790	(the nibbles in each byte were swapped previously).
7791	***NOTE***
7792	Save states and save games created in previous versions of Mednafen will have different filenames than the current version.
7793	To do a quick-and-dirty fix, simply remove the MD5 hash component from the filename as such:
7794		rename somegame.7e74d04f2d147f03061d447310b109ec.sav somegame.sav
7795
7796	Changed autofire behavior to have the button set on half the frames in the autofire period, rather than just one frame.
7797
7798	NES:  Changed the background clear color to light blue(from black) when the background is disabled by the user, and
7799	fixed background and sprite disabling by the user to not lock up some games that depend on sprite hits.
7800
7801	GBA:  Updates from VBA's CVS:
7802		- bios.cpp : corrected a bug in registerRamReset.
7803		- gba.cpp/gbainline.h : corrected the mirroring of Vram.
7804		- gba.cpp : changed slightly the emulation of gbasavetype.
7805		- RTC.cpp : vba now ignores rtc command 0x64.
7806
7807	GBA:  Reduced input latency by one frame.
7808
7809	PCE:  Reworked the frame/scanline counter loop to run NMI first, and then draw the active frame area, to reduce input
7810	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)
7811	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,
7812	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
7813	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
7814	future trying to debug the oddball game. ;)
7815	Note that this change may cause compatibility problems with PCE save states created in older versions of Mednafen.
7816
7817	NES:  Fixed several PPU sprite RAM and VRAM read and write operations to pass blargg's tests.
7818
7819	NES:  Altered how the color to be blitted is decided when screen rendering is disabled to fix blargg's 410 color demo.
7820
7821	Fixed scanlines to be aligned correctly(scanline darkening over the pixels that are interpolated between rows) when bilinear interpolation is
7822	used, at least on my nvidia card.
7823
7824	Floating-point/real number settings are now validated and checked to be in range.
7825
7826	PCE:  Rewrote SuperGrafx VPC priority evaluation code to work correctly with http://pcedev.net/demos/Sgx3b.zip which was tested
7827	on real hardware.
7828
7829	Simplified the OpenGL blitting code.
7830
78310.5.2:
7832	Modified the PCE code to only include header files that are needed.
7833
7834	Fixed a memory leak in the state saving code.
7835
7836	PCE:  Closing HES music files will no longer produce battery-backed RAM files. x_x
7837
7838	Fixed a memory leak in the state loading code.
7839
7840	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)
7841	that tells if a glyph is available or not.
7842
7843	Modified the internal message display code to allocate and free space for the message being displayed, rather
7844	than using a rather small static array.
7845
7846	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.
7847
7848	PCE:  Changed how reads from $0000 are handled, and made vblank occur slightly later in the frame, to fix Valis 1.
7849
7850        PCE:  The CD reset function of $1804 now clears more variables, fixing problems with lockups when using the START+SELECT
7851        soft reset in the middle of a data read.
7852
7853        Finally fixed the endian conversion code so that save states(and netplay) are compatible between big-endian and
7854        little-endian systems.
7855        **NOTE** Save states created in previous versions of Mednafen on big endian platforms(such as OS/X PPC)
7856        will no longer work in this version.
7857
7858	Removed the tech documentation from the source code distribution.
7859
7860	Truncated the ChangeLog to the first Nintencer release.
7861
78620.5.1:
7863	Fixed a crashy bug with hq2x, hq3x, and hq4x when using big-endian systems, or when the "vdriver" setting is set to "1".
7864
78650.5.0:
7866	Added a frame-advance feature.  Press ALT+A to enter frame-advance mode, and subsequently to advance frames, and ALT+R
7867	to exit frame-advance mode.
7868
7869	The current machine state is now saved at the end of movies, to allow for the future implementation
7870	of the seamless continuation of an already recorded movie.
7871
7872	PCE:  When loading from a physical disc, auxillary data(save states, movies, etc.) prefixes should now always be "cdrom",
7873	rather than "cdrom" for the default device and the given name for other devices, because this(previous) behavior
7874	caused problems under Win32(where colons couldn't be used in filenames).
7875
7876	NES:  Fixed FDS sound output(it was technically outputting before, but the volume was so low as to be inaudible).
7877
7878	NES:  The disk system BIOS can now be in iNES format.
7879
7880	NES:  The Game Genie and FDS ROM image loaders can now load the ROM image from a gzip or zip compressed file.
7881
7882	Revised the documentation to remove misleading statements(that applied to FCE Ultra) and add some missing information.
7883
7884	Updated the command-line section of the documentation with warnings and notes regarding settings, network play,
7885	and movies.
7886
7887	PCE:  Fixed more bugs with CD reading when sound is disabled.
7888
7889	Loading a save state while recording a movie will now embed that save state in the movie file.
7890
7891	PCE:  Save state previews are now generated with correct horizontal linear interpolation, fixing icky
7892	blockiness.
7893
7894	NES:  It's now possible to record movies with any virtual input devices(like the Zapper), though the nes.input1,
7895	nes.input2, and nes.fcexp settings must be set the same as they were at recording time, before playback.
7896
7897	NES:  All currently used expansion input devices are now saved in save states(before only gamepad data was saved).
7898
7899	Added a network play setting to merge all local input into one virtual remote input(via inclusive OR on the
7900	server), to allow for those UTTERLY SILLY games that support multiple players on one gamepad/joystick.
7901
7902	Worked around an SDL bug(or feature? :b) that was causing events to be processed by SDL
7903	instead of Mednafen when SDL_JoystickEventState() is called.
7904
7905	Scrapped the old movie format from FCE Ultra, and replaced it with a simplified version
7906	that simply writes the joystick inputs to the movie file stream each frame, and
7907	lets zlib handle the compression and encoding.  This is incompatible with the old
7908	format, sorry.
7909
7910	Movies are now stored in the right directory finally(mcm vs mcs).
7911
7912	Rewrote most of the on-screen display code to work with a separate 256x224 buffer that is scaled and blitted
7913	independently of the main game's video output buffer.  Note that if you have OpenGL disabled(via "-vdriver 1"),
7914	the overlay will not be scaled.
7915
7916	PCE:  Added support for multiple resolutions per frame, as used in such games as "Asuka 120%"
7917	and "Ryuuko no Ken".
7918
7919	PCE:  Adjusted the internal resolution(and outputted aspect ratio) slightly when using the ~7MHz dot-clock.
7920
7921	PCE:  Added movie recording support.
7922
7923	PCE:  Adjusted ADPCM volume.
7924
7925	PCE:  Fixed left overscan clearing and disabled background lines clearing.
7926
7927	The trio code is no longer compiled with -ffast-math.
7928
7929	Removed netplay divider support(it didn't really work all that well anyway), and removed it from the server as well.
7930
7931	PCE:  Changes to the IRQ masking register are now delayed by one instruction, thanks to D. Michel
7932	for the information.
7933
7934	Status messages are now displayed for 2.5 seconds, rather than 180 frames.
7935
7936	Changed save state display timing from frames to seconds, and set it to display for 2 seconds
7937	after a number is pressed(previously it was around 3).
7938
7939	Added the following settings:  nes.ggrom, path_snap, path_sav, path_state, path_movie, path_cheat, path_palette.
7940
7941	Changed the data types of "bool" variables that are saved in save states to uint8, to address more
7942	cross-platform save-state compatibility issues.
7943
7944	Fixed a problem with save states on big-endian platforms(was dividing by sizeof(uint32) instead of sizeof(uint16)
7945	in a few places).
7946
7947	Fixed hq2x, hq3x, and hq4x filters on big-endian platforms.
7948
7949	PCE:  Pushing the virtual reset or power button during CD reads will no longer cause the emulator to fail on
7950	subsequent reads(a few variables weren't being reset properly).
7951
79520.4.9:
7953
7954	GB/GBA:  Added configurable rapid fire buttons for virtual buttons A and B.
7955
7956	NES:  Disabling the background now works properly(it no longer also disables sprites!).
7957
7958	PCE:  Disabling background layers now replaces that layer with an obnoxious green color that shouldn't be used by any games,
7959	to make sprite ripping easier.
7960
7961	Added settings "fftoggle" and "ffnosound", to make the fast-forwarding button a toggle switch, and to silence
7962	sound during fast-forwarding, respectively.
7963
7964	PCE:  CDDA playback interrupt and looping enabled flags are now reset properly, fixing a lockup that occurs when facing a boss
7965	in Valis 2, and possibly other games.
7966
79670.4.8:
7968	PCE:  Loading a physical CD will now print out a list of available devices.
7969
7970	NES:  Blip_Buffer's highpass filtering capabilities(for DC-offset removal) are now used instead of a custom function.
7971
7972	Modified the included libintl so that it will compile on Mac OS/X.
7973
7974	The "trio" subdirectory should(I can't test it) now be compiled with -mieee on Alpha architectures,
7975	fixing a compilation error.
7976
7977	NES:  Fixed long-standing graphical problems with some sprites in (Mike Tyson's) Punch-Out.
7978
7979	Removed "#include <samplerate.h>" from cdromif.cpp and cdromfile.cpp, since I forgot to in 0.4.6.
7980
79810.4.7:
7982	Fixed the NES PPC AltiVec resampling code by properly aligning an output array.
7983
7984	Fixed NES sound emulation on 32-bit platforms(omitting the buffer size to Blip_Buffer::set_sample_rate()
7985	was causing an assert to go off on <64-bit platforms).
7986
79870.4.6:
7988
7989	Dropped the libsamplerate dependency.
7990
7991	NES:  Replaced the resampling code from the intermediate frequency after FIR resample with Blip_Buffer.  The only
7992	audible effect seems to be a slight lowpass filter effect.
7993
7994	PCE:  Integrated the CDDA playback code into the main PCE CDROM emulation code by using Blip_Buffer.
7995
7996	PCE:  Removed the compressor and cddaquality settings.
7997
7998	Updated the Russian PO file, mostly to remove or fix grossly incorrect "fuzzy" entries.
7999	Added an incomplete Spanish(Spain) PO file.
8000
8001	PCE:  If a data sector read from a physical disc fails, it will be reattempted continuously until it succeeds,
8002	or the user presses the exit key(F12 by default). (note that this may appear to lock up Mednafen, but the
8003	exit key will still work)
8004	This *should* fix problems with physical PCE CDs under Mac OS/X and MS Windows.
8005
8006	Merged trio(http://daniel.haxx.se/projects/trio/) into Mednafen to fix format-string problems
8007	on non-glibc systems(MS Windows for example!).
8008
8009	GB:  Modified the APU emulation code to silence a gcc warning.
8010
8011	PCE, Lynx, GB, GBA:  Doubled the size of the Blip_Buffer phase offset table for slightly higher sound quality.
8012
8013	PCE:  Fixed ADPCM playback code for when sound is disabled(it was ultimately causing a crash in earlier versions).
8014
8015	Converted the MD5 functions to a class.
8016
8017	Fixed(hopefully) compilation on non-Apple PowerPC systems.
8018
8019	Fixed save-state support for saving/loading arrays of 16-bit and 32-bit variables(the hints were already there,
8020	but the code to handle the hints was nonexistant).  Note that this change will cause incompatibilities between old save states and
8021	this version on big-endian platforms.
8022
8023	Removed the included "m4" directory, updated autogen.sh, and reran it to regenerate aclocal.m4 with
8024	newer(and fixed on AMD64) versions of the gettext autoconf scripts.
8025	See: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=349845
8026
80270.4.5:
8028	drivers/opengl.cpp now includes the GL header files AFTER the header file that eventually loads config.h is included to fix
8029	compilation on Mac OS X.
8030
8031	Redefined SFEND from { 0 } to { 0, 0, 0}, and fixed older code to use the SFEND macro, to fix crashing on OSX and possibly
8032	other platforms when saving or loading states.
8033
8034	Reduced SDL's buffer size when using the SDL sound driver(used on MacOSX).
8035
8036	Restructured and merged some of the sections in the autoconf script.  Note to future self:  I noted that it seems if
8037	the first instance of PKG_CHECK_MODULES() is in a statement that doesn't evaluate, any other PKG_CHECK_MODULES()
8038	statements will fail.  I don't know if this is a bug in autoconf, or a misunderstanding on my part.
8039
8040	Removed the largely unused ESD sound driver from compilation, as it is mostly unsuitable for use in Mednafen.
8041	Also removed the jack driver, as it was unfinished, and couldn't be used anyway.
8042
8043	PCE:  Fixed CD-DA playback from "WAV" audio files on big-endian platforms.
8044
8045	Fixed a compilation problem on big-endian CPUs by adding appropriate type-casts in psf.cpp.
8046
80470.4.4:
8048	Modified the GBA code to not use many INLINEd functions in arm.cpp.  This greatly reduces
8049	RAM and CPU usage during compilation, and should have only a negligible impact on performance(and might
8050	even improve performance on cache-starved systems).
8051
8052	Fixed a compilation problem on non-x86 and non-PPC platforms in the NES emulation code.
8053
80540.4.3:  (Note:  PCE CD save states created in previous versions will not work very well with this release)
8055
8056	Fixed a compilation problem in cdromif.cpp regarding NULL on *BSD platforms by including <string.h>.
8057
8058	Lynx:  Fixed the constructor and destructor declarations of the C65C02 class, which should fix a reported
8059	compilation error with gcc 4.1.
8060
8061	GBA:  Added a few missing variables to save states.
8062
8063	GB:  Lines during which time the screen is turned off are now cleared(fixes flickering problems at the
8064	start of games, and during transitory blank screens).
8065
8066	Fixed the SDL_net.h include statement in drivers/netplay.cpp.
8067
8068	PCE:  Fixed a bug with CUE+BIN sector size handling with regards to pregaps.  CUE+BIN is still
8069	officially unsupported. :B
8070
8071	PCE:  Noise is now rendered at blip_med_quality.
8072
8073	PCE:  Removed the code that checks to make sure the audio sector to play is non-zero.  Fixes "Crazy Hospital".
8074
8075	Changed the maximum supported playback rate from 96KHz to 48KHz, to be able to safely extend the temporal precision
8076	of Blip_Buffer further.
8077	Note that this shouldn't be considered a regression, as there are virtuall no benefits to using a sample rate
8078	above 48KHz in Mednafen(though there may be benefits in other applications).
8079	***************
8080	***BIG NOTE:***
8081	***************
8082	If you previously set the playback rate above 48KHz, you will have to manually edit the text configuration
8083	file(~/.mednafen/mednafen.cfg) to bring the value in range.  This is necessary because of a limitation in the setting
8084	validation code.
8085
8086
8087	Updated to Blip_Buffer 0.4.0, which offers improved sound quality over previous versions:
8088		- Improved sound quality by rewriting library to use 32-bit internal sample
8089		buffer, higher phase resolution, and a properly windowed filter kernel. Current
8090		user code should work without changes.
8091
8092	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
8093	rather than 0x100.  This fixes the "Hurry Up" water effect in the CD game "Rainbow Islands".
8094
8095	PCE:  Fixed the CD-DA amplitude calculating(used the BIOS' CD-DA player interface).
8096
8097	PCE:  Altered VDC line timing slightly.
8098
8099	PCE:  ADPCM frequency is no longer reset on ADPCM reset, fixes Gulliver Boy's dialogue voices during
8100	gameplay.
8101
8102	PCE:  Fixed reading from nonexistant audio sectors(by memset()'ing the audio buffer to zero).
8103
8104	PCE:  Implemented sector reading delays, games that use FMV like Gulliver Boy work much better now.  It's not implemented 100% correctly,
8105	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
8106	than the giant hack of reading all the sectors at once, which was how it used to be.
8107
8108	PCE:  Implemented ADPCM read and write delay.  "Record of Lodoss War" no longer locks up at the title screen.
8109
8110	PCE:  Opcode and operand data reads from VDC register 0x1 will now return 0x40, which fixes
8111	Dragon Slayer 2.  I doubt this is correct, but it shouldn't break any other game.
8112
8113	PCE:  CUE+BIN audio playback no longer locks up the emulator, but CUE+BIN is still
8114	officially unsupported.
8115
81160.4.2:
8117	Fixed sprite hit emulation, fixes problems with VS Duck Hunt and VS Hogan's Alley
8118	that have existed since Nintencer.
8119
8120	Modified VS Unisystem light gun emulation slightly to be more accurate.
8121
8122	Fixed the in-emulator sound(nsf,gsf,hes) player's waveform visualization,
8123	broken in 0.4.1.
8124
81250.4.1:
8126
8127	Joysticks initialization is now slightly more verbose.
8128
8129	Fixed hash calculation in the joystick code, and added a workaround for hash
8130	collisions(which would occur if two extremely similar joysticks are used on
8131	the same system).
8132
8133	Video initialization is now more verbose.
8134
8135	The -<system>.special command-line arguments for selecting a special scaler now
8136	take the short name of the scaler, which is found in the documentation, instead of
8137	arbitrarily-chosen numbers.  However, out of the goodness of my cold, black heart,
8138	arbitrarily-chosen numbers may still be used, though it should be considered deprecated.
8139	Example:
8140		-nes.special 1	(deprecated, but works, selecting hq2x)
8141		-nes.special hq2x (good!)
8142		-nes.special wombat (bad!)
8143
8144	libsndfile is now used for WAVE recording(instead of the old ugly code).
8145
8146	Altered the internal floating-point format used to represent audio data by changing
8147	the range to -1.0<=sample<=1.0(previously it was 0.0<=sample<=1.0).
8148
8149	NES:  Fixed a 1-byte overflow bug in the Barcode World input device emulation
8150	code by changing a strcpy() to a memcpy().
8151
8152	Added a "-help" command-line option, which prints out command-line arguments
8153	and parameters.
8154
8155	Fixed the configuration file loading code to exit the emulator if
8156	invalid data is in the configuration file, instead of just ignoring it
8157	and the rest of the entries, thus trashing the configuration file on exit.
8158
8159	Changed the default xscale and yscale settings for Lynx to 4.
8160
8161	Physical mouse buttons can now be assigned to virtual buttons.
8162
8163	The width and height of the state preview are now saved in save states, fixing a problem with broken
8164	save states if the -nes.clipsides option is used, and possibly in other situations(note that this
8165	won't fix the problem in old save states, only new ones).
8166
8167	Fixed a garbage(OSD stuff) problem in screen snapshots and save states when they are done after a frame
8168	that has been skipped(the solution is to delay the snapshot/save state until the next frame, which is
8169	set to not be skip).
8170
8171	Fixed a typo that broke the hq3x effect(it had weird graphical glitches).
8172
8173	Modified more settings to use the new plain-text configuration file format.
8174
81750.4.0:
8176	Various minor code changes I forgot to document.  I hope none of them are of the Mednafen-exploding
8177	variety. ;)
8178
8179	Added support for saving and loading settings in a plain-text file format, and moved many
8180	settings to use this code.  This file is named "mednafen.cfg" in the Mednafen base directory(whereas
8181	the old binary configuration file is still named "mednafen03x.cfg").
8182
8183	NES:  Merged RDoPCM() into RDoNoise(), reducing CPU usage slightly.
8184
8185	NES:  Removed the pedantically high-quality sound mode, and reduced the filter order for downsampling
8186	from 512 to 256, with a larger transition band and smaller passband, creating a somewhat subtle low-pass filter
8187	effect on the audible portion of the signal, and decreasing CPU usage.
8188
8189	NES:  Made optimizations to the CPU and PPU emulation code.
8190
8191        PCE:  Added -pce.forcesgx, -pce.ocmultiplier, -pce.nospritelimit, -pce.cdbios, -pce.cddaquality, and -pce.compressor
8192        command-line options
8193
8194	PCE:  Sound(excluding CDDA in CD emulation mode) is now passed through an audio volume compressor.
8195
8196	NES:  Zero-page and stack memory accesses now go through the normal read-write function pointer system.
8197	This will increase CPU usage slightly, but it's important for future plans(readding cheat support,
8198	and an enhanced sound system through OggVorbis and WAV files).
8199
8200	Updated to Blip_Buffer and Blip_Synth 0.3.6b1.
8201
8202	Added special gcc options to configure.ac to get gcc to actually inline many functions
8203	that are specified to be inlined.  Sometimes I wonder if gcc developers are sane...
8204
8205	NES:  Fixed a weird typo(with apparently no effect) in the B2005() function in ppu/ppu.cpp
8206
8207	Fixed scanlines effect when using a special scaler.
8208
8209	Lynx:  Optimized the sound rendering code slightly.
8210
8211	PCE:  Added PCE CD emulation.
8212
8213	NES:  Fixed the AMD64 MMX sound downsampling assembly code.  This bug fix fixes staticy sounds and other problems
8214	with NES audio on AMD64 platforms(only in 64-bit mode, of course :)).
8215
8216	Removed MDFND_UTF8fopen() and MDFND_UTF8gzopen(), since they weren't really doing anything useful, and
8217	the same functionality could be provided more easily with some kind of wrapper library, if it's needed
8218	in the future.
8219
8220	Updated the ZIP-file handling code with the newest version available, 1.01e.
8221
8222	GBA:  Updated most of the GBA emulation code with newer code from VBA's CVS repositoy.
8223
8224	MDFN_FastU32MemsetM8() no longer tries to use floating-point data types, which was causing very bizarre problems on x86_64
8225	targets when compiled with gcc 4.0, and was probably an illegal thing to do anyway, as far as
8226	portability is concerned(or maybe gcc 4.0's autovectorizer is broken).
8227	This fixes problems with many GBA games when Mednafen is compiled with gcc 4.0.
8228
8229	Added code to check for SDL_net in configure.ac and error out if it's not found, instead of blindly
8230	trying to compile.
8231
8232	A negative result for the JACK test in configure.ac will now print the result "no".
8233
8234	Removed the argument to AM_GNU_GETTEXT in configure.ac, effectively setting it to "no-libtool".  This will
8235	force a static library to be made when necessary, instead of a shared library, which should fix problems
8236	some people have been having with missing shared library error messages(libintl.so.3 and libintl.dll, for example).
8237
82380.3.7
8239	Modified the OpenGL code to use glTexSubImage2D() instead of glTexImage2D() every frame, resulting in a slight
8240	performance increase.
8241
8242	Modified the OpenGL code to use smaller texture sizes with most PC Engine games(at least those
8243	that run at a width of 256 pixels;  exceptions include Aoi Blink, R-Type 1 and 2, Yo Bros., and others).
8244
8245	Lynx:  Moved CMikie::Update() and C65C02::Update() into c65c02.cpp and mikie.cpp, respectively.
8246
8247	Fixed pointer-to-integer type casting that was causing compiler errors under Ubuntu Linux AMD64.
8248
8249	Modified a lot of code to work around/fix various compiler warnings.
8250
8251	Fixed a few typos in the documentation.
8252
82530.3.6:
8254
8255	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
8256	between Nintencer 0.1.1 and Mednafen 0.2.0.  Why didn't anyone tell me... -_-
8257
8258	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.
8259
8260	NES:  Removed the high-level frameskipping code, since frameskipping is automatically used now, and it could easily break some games.
8261
8262	Removed the "-frameskip" command-line option, as it should not be needed anymore.
8263
8264	Unified a lot of the driver-side frame-skipping code.
8265
8266	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.
8267
8268	Slightly restructured the "features" and "command line" sections of the documentation.
8269
8270	PCE:  Pressing the "Power" key now resets the internal RAM.
8271
8272	All:  Altered the shared music player interface, decreasing the brightness of the text, and adding pseudo-shadows.
8273
8274	PCE:  Added simple HES playback code.
8275
8276	PCE:  Altered noise emulation slightly, Ninja Ryukenden(and probably other games)'s music sounds more accurate now.
8277
8278	Fixed alignment of the save state preview and selection box when emulating the PC Engine.
8279
8280	The status line text and the save state selection message are now drawn with black shadows, to make reading easier.
8281
8282	Changed the text status line background darkening shape to a rectangle on the NES, and fixed it to display correctly
8283	with PC Engine emulation.
8284
82850.3.5:
8286	Added code to allow for writing to SDL framebuffers directly, without using OpenGL, controlled with the command-line option "-vdriver".
8287		-vdriver 0	= OpenGL
8288		-vdriver 1	= SDL framebuffer(bilinear interpolation and Lynx screen rotation are not available).
8289
8290	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
8291	comes out of a real Lynx.
8292
8293	PCE:  Adjusted the visible horizontal display area, and overscan, in the 7 and 10MHz dot clock modes.
8294
8295	PCE:  Expanded the visible vertical display area by 8 pixels(4 on top, 4 on bottom).
8296
8297	PCE:  Altered VDC timing agaaaain.
8298
8299        PCE:  Block memory transfers now take 5 cycles(read, write, alter source, alter dest, decrement length?) per byte transferred instead of 6.  Fixes
8300        "Wonder Momo".
8301
8302        PCE:  Altered HuC6280 instruction timing slightly(removed the tests for indirect indexed and indexed indirect addressing modes to use extra CPU cycles).
8303
8304        PCE:  Corrected a timer emulation bug, fixes "Dragon Egg"'s tempo.
8305
8306	PCE:  Increased the number of cpu cycles per scanline from 454 to 455, based on tests I performed.
8307
8308        GB/GBC:  A sound enable register is now initialized properly on reset, fixing at least one unlicensed game.
8309
8310        Lynx:  Disabled the superclipping code, as it's buggy(causes bad sprite clipping and invisible mountains(OHNOS) in Steel Talons)
8311        and doesn't appear to be necessary.
8312
8313        The mouse cursor is now hidden.
8314
83150.3.4:
8316	Added command-line option "-autofirefreq" for setting the frequency of the configured auto-fire buttons
8317	when playing NES and PC Engine games.
8318
8319	PCE:  Fixed Street Fighter 2 HuCard emulation.
8320
8321	PCE:  Modified PSG waveform writing/DDA emulation, fixes "Fire Pro Wrestling - Combination Tag".
8322
8323	PCE:  Modified TRB and TSB emulation.  Fixes "Toy Shop Boys".
8324
8325	PCE:  Implemented VRAM-VRAM DMA direction control bits.
8326
8327	PCE:  Altered VDC timing, fixing a few games, making a few games more bouncy. ;)
83280.3.3:
8329
8330	PCE:  Fixed sprite clipping on the left side of the screen.
8331
8332	PCE:  The emulated RCR register is now masked with 0x3FF when being set.  Fixes Niko Niko Pun.
8333
8334        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
8335        require timing granularity as small as one cpu cycle.  Interestingly, this same type of problem occurs with NES emulation.
8336
8337	PCE:  Altered the display rectangle calculation code to take into effect screen areas that may be hidden
8338	on many television sets(and some games were designed with the assumption that these areas WOULD be hidden).
8339
8340        PCE:  Modified noise emulation...again. :b
8341
8342        PCE:  Modified LFO emulation, fixes major sound problems in "Bull Fight".
8343
8344        PCE:  The sprite DMA completion IRQ now occurs earlier(probably a few cycles too early now, but oh well).  Fixes some graphical issues
8345        in "Bull Fight".
8346
8347        PCE:  Sprite bit plane selection is now emulated to a degree.  Fixes "Fighting Run".
8348
8349        PCE:  Very high-frequency(and probably inaudible) sounds are no longer played, because Blip_Synth
8350        can't handle them well.  Fixes "Bouken Danshaku Don" and others.
8351
83520.3.2:
8353
8354	GB:  CGB-specific emulated RAM is no longer saved in save-states.
8355
8356	GB:  Fixed a bug in sound sweep emulation.
8357
8358	GBC:  The palette is now saved in save states.  This fixes a major problem with save states with most GBC
8359	games...
8360
8361	Fixed the SF*N() save state macros to not put quotes around names in
8362	save state files, and added a workaround for compatibility with old save states.  This
8363	is an embarrassing bug. :b
8364
8365	PCE:  Made major optimizations to the VDC emulation code.
8366
8367	PCE:  Rewrote the PSG emulation to use Blip_Synth and Blip_Buffer.
8368
8369	PCE:  Altered the noise channel emulation frequency calculation and LFSR emulation.  I'm still not sure
8370	if it's correct.
8371
8372	Increased the minimum sound rate supported from 8192 to 22050.  I don't test low rates very often,
8373	and there may be loss-of-precision issues with such low rates.
8374
83750.3.1:
8376	Fixed a bug that existed since 0.2.0 that was causing a null-pointer deference in stat().
8377	Interesting, glibc silently ignored the error, but the error caused crashing under Windows.
8378
8379	PCE:  The HuC6280 timer latch is now loaded with an appropriate value on reset.  Fixes
8380	"Double Dungeons".
8381
8382	PCE:  Added generic PC Engine save RAM emulation.
8383
83840.3.0
8385	Added PC Engine and SuperGrafx emulation.
8386
8387	Save states are now compressed and encapsulated in gzip-format files.
8388
8389	NES:  Fixed display rectangle setting code that was causing screenshots from PAL games
8390	to be cut off at the top and bottom.
8391
8392	NES:  Added an iNES header correction entry for "Gauntlet 2", to clear the four-screen bit.
8393
8394	NES:  Added support for configuring NES gamepads 3 and 4 from within the emulator(during emulation), mapped
8395	to key combinations "F4" and "Shift + F4", respectively.
8396
8397	Fixed virtual input device configuration from the command-line(it was segfaulting before because
8398	the code was dereferencing a null pointer).
8399
84000.2.2:
8401
8402	Fixed a few problems with '#ifdef's when compiling on an MSB-first platform, though
8403	I still haven't tested Mednafen on such a platform...
8404
8405	NES:  Fixed a nasty bug in the iNES loading code(the list of known bad ROM images wasn't
8406	terminated with a NULL entry) that could cause segmentation faults on startup in
8407	some situations.
8408
8409	NES:  A slightly faster version of the sprite priority handling+blitting code is now compiled when
8410	a 64-bit CPU is "detected" by:
8411		#if (SIZEOF_LONG == 8)
8412		(is this the correct way to determine whether or not the cpu has native 64-bit
8413		 integer support?  I know it works ok on x86 and x86_64, but what about SPARCs? :b)
8414
8415	NES:  Rewrote portions of the sprite rendering and priority comparison code to use simpler
8416	logic.
8417
84180.2.1:
8419	GBA:  Converted the DMA registers into arrays, rather than having them as a gazillion different
8420	variables.
8421
8422	GBA:  Replaced the if() alpha-blending clamping mechanism with a simple LUT.
8423
8424	GBA:  Removed some apparently unnecessary if() statements in the graphics rendering code.
8425
8426	GBA:  Made a few experimental optimizations to the graphics rendering code( >> 24 changed to & 0xFF000000 in
8427	some of the priority comparison code).
8428
8429	GBA:  Played around with some optimizations in the "gfxDrawTextScreen" function.
8430
8431	GBA:  Restructured the CPU emulation code, so I don't have to recompile one giant file when
8432	I make a small change(and so it doesn't use totally obscene amounts of RAM during compilation).
8433
8434	GBA:  The sound flushing routine was returning and setting the wrong values, totally breaking the speed-throttling
8435	code.  Fixed.
8436
8437	GB:  Slightly increased the video contrast and brightness of the original GameBoy's emulation.
8438
8439	GBA:  Extended the BLIP buffer size, fixing a startup emulator crash with "Midway's Greatest Arcade Hits", and
8440	possibly other games.
8441
8442	Updated the documentation with better explanations in a few areas, and fixed a few errors.
8443
84440.2.0:
8445	(Sorry, I lost track of changes, but... 0.2.0 is kind of like an entirely new emulator! :b)
8446
84470.1.1:
8448	SDL_QUIT events are now handled properly.
8449
8450	Increased the default fast-forward speed to 4x.
8451
8452	Fast-forwarding will now invoke the emulation frame-skip code, to achieve much higher
8453	fast-forwarding speeds.  Fast-forwarding with frame skipping code may break some games,
8454	but I haven't encountered any yet...
8455
8456	Jitter correction is now done when configuring virtual input devices and command keys, and
8457	the button pressed is on a physical joystick/gamepad.  This is particularly necessary for
8458	some(all?) analog joysticks connected via the ancient gameport interface on the PC, at least
8459	under Windows 98 ;).
8460
8461	Various code cleanups and subtle usability fixes.
8462
8463	The "cheats" subdirectory under the Mednafen base directory is now created on startup(broken in 0.1.0).
8464
8465	Fixed sound code used when expansion channels are used and the internal pre-downsample target format
8466	is floating-point.
8467
8468	Added error condition checks and more verbose error messages to various pieces of code.
8469
8470	Implemented a modified version of the old PPU rendering code that is used when it is
8471	safe to do so.  This helps to offset the increased CPU requirements of the new code.
8472
8473	The command-line option "-nothrottle" works again.
8474
8475	Joysticks are now configured by a unique hash id, instead of by index number.  This should
8476	help if people install or uninstall joysticks.  It has not been tested, but the code structure
8477	was copied from the old Win32 port of FCE Ultra, so it should work.
8478	Note that this change will break old button configurations in the configuration file from 0.1.0.
8479
8480	Fixed mapper 19's(Namco 106) expansion sound.  It now actually outputs sound(broken in 0.1.0)!
8481
8482	Rewrote large parts of the PPU rendering code to be more accurate, and slower. :/
8483	This fixes Final Fantasy's "orb lighting" effect, and Micro Machines' title screen,
8484	among others.
8485
8486	Reads from $2004 will now return something meaningful to the games "Bee 52" and
8487	"Micro Machines"(it returned nothing meaningful before, so it shouldn't break anything).
8488	This, combined with the correct background palette selection used when sprites and background are
8489	disabled, fixes some graphical issues in Micro Machines and Bee 52.
8490
8491	Internal text rendering will now truncate strings that are too long to fit on the screen
8492	(an issue with NSFEs and song titles...).  Is there a better, sane way to deal with this?
8493
8494	Added support for loading NSFE files, and made changes to the NSF player to display
8495	more information if it's available.
8496
8497	file.cpp:  The FCEU_f* wrapper functions will now always load the entire file
8498	into memory on FCEU_fopen().  I hope people don't do something silly like trying
8499	to load a 1GB file of garbage. ;)
8500	I might add mmap() capabilities in the future.
8501
8502	Reworked the UNIF/FDS/iNES/NSF file loading code.
8503
8504	Removed the "en" translation from the po directory, since it was a bit...redundant
8505	or silly.  If you did a "make install" with 0.1.0, you should run a command like:
8506		 rm /usr/local/share/locale/en/LC_MESSAGES/mednafen.mo
8507
8508	Fixed a compile-time error in general.cpp when the asprintf() emulation function is used.
8509
8510	Replaced the SDL WM icon with a scaled image of the Mednafen Beetle.
8511
8512	Fixed the Super24-in-1 bootleg cart board emulation by removing a line of silly debug(?) code.
8513
8514	Added FCEU_indent() function, for use with FCEU(I)_printf(), to automatically set indentation
8515	for newlines, rather than having it in the format strings directly.  This should make strings in the
8516	gettext catalogs more manageable.
8517
8518	config.h is now used instead of passing gobs of defines on the command-line to g++/gcc.
8519
8520	Added code and an MDFNI_* interface to set the sound speed multiplier from the driver code, and
8521	modified the driver code to use it.  This is MUCH better than the method used in 0.1.0, which
8522	was just telling FCE Ultra to reinitialize sound at a different rate whenever fast forwarding
8523	started and stopped(which caused clicking).
8524
8525	The sprite hit flag will no longer be set if the sprite hit would occur on pixel column 255, which matches
8526	behavior on the NES.
8527
85280.1.0:
8529	Miscellaneous things I've forgotten about.
8530
8531	Command-keys and virtual input devices are now configurable while a game is running.
8532
8533	gettext is now used to provide message lookup services.
8534
8535	Implemented crude Unicode rendering of internal in-game text messages, and several fixed-width fonts
8536	covering most western languages, Japanese, Chinese, and Korean.
8537
8538	Added 2xSaI, Super2xSaI, and SuperEagle video filters, and reordered the integer->filter mappings(used on the command line).
8539	Should I parse for a string instead of an integer on the command-line?
8540
8541	Converted Mednafen to compile with GCC's C++ compiler, though no advanced C++ features are used
8542	yet.
8543
8544	Fixed mapper 165 emulation with code from CaH4e3.
8545
8546	VS Unisystem and Famicom Disk System commands are now saved in recorded movies.
8547
8548	Video blits and special effects are now done in a thread separate from the game emulation and sound output thread.
8549
8550	Command keys are now user-configurably(wow, it happened before the 22nd century!).
8551
8552	Fixed emulation of MMC5's $5130 register.
8553
8554	Fixed sound sweeping emulation; thanks to blargg.
8555
8556	Corrected the behavior of mapper 144 to match what the hardware does regarding bus conflicts.
8557
8558	Removed the low quality sound emulation code, and replaced the old high-quality sound emulation filter code with newer code that
8559	can output to arbitrary rates and uses SIMD instructions if available.
8560
8561	Fixed a rather stupid bug that could break loading of certain non-bankswitched NSFs.
8562