Hello community,

here is the log from the commit of package mednafen for openSUSE:Factory 
checked in at 2019-04-30 13:03:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mednafen (Old)
 and      /work/SRC/openSUSE:Factory/.mednafen.new.5536 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "mednafen"

Tue Apr 30 13:03:38 2019 rev:16 rq:697738 version:1.22.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/mednafen/mednafen.changes        2019-02-24 
17:10:12.964508925 +0100
+++ /work/SRC/openSUSE:Factory/.mednafen.new.5536/mednafen.changes      
2019-04-30 13:03:40.602080505 +0200
@@ -1,0 +2,6 @@
+Thu Apr 25 06:34:29 UTC 2019 - Илья Индиго <i...@ilya.pp.ua>
+
+- Update to mednafen 1.22.2
+  * ChangeLog https://mednafen.github.io/documentation/ChangeLog.txt
+
+-------------------------------------------------------------------

Old:
----
  mednafen-1.22.1.tar.xz

New:
----
  mednafen-1.22.2.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ mednafen.spec ++++++
--- /var/tmp/diff_new_pack.MBQsp0/_old  2019-04-30 13:03:41.442079794 +0200
+++ /var/tmp/diff_new_pack.MBQsp0/_new  2019-04-30 13:03:41.442079794 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           mednafen
-Version:        1.22.1
+Version:        1.22.2
 Release:        0
 Summary:        Multiple video game console emulator
 License:        GPL-2.0-only

++++++ mednafen-1.22.1.tar.xz -> mednafen-1.22.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mednafen/ChangeLog new/mednafen/ChangeLog
--- old/mednafen/ChangeLog      2019-01-28 07:52:37.000000000 +0100
+++ new/mednafen/ChangeLog      2019-04-23 23:54:58.000000000 +0200
@@ -1,3 +1,27 @@
+-- 1.22.2: --
+
+April 23, 2019:
+       PSX: Fixed a regression introduced in 1.22.0-UNSTABLE that broke a few 
PS1 games(e.g. SimCity 2000 and Rise 2).
+
+       Fixed issues with inline functions in the QuickLZ code that could cause 
linker errors when compiling with optimizations disabled.
+
+April 14, 2019:
+       Apple2: Added basic WOZ 2.0 disk image support.
+
+April 13, 2019:
+       NGP: Fixed a sequence point rule violation that could cause "Gals' 
Fighters" to malfunction when Mednafen was compiled with clang,
+       per tip from stellarporter.
+
+       SS: Added the European release of "Theme Park" to the internal database 
of games to use the data cache read bypass kludge with,
+       to fix a crash/hang during the intro FMV.
+
+       Lynx: Fixed an old heap buffer overflow bug that could be triggered if 
the emulated game set up registers and RAM in a
+       certain way.
+
+March 18, 2019:
+       PCE: Fixed an old bug(looks like from around a decade ago) in the HES 
playback code; it caused periodic high IRQ latency,
+       which resulted in timer IRQ-driven DDA playback sounding rougher than 
it should have.
+
 -- 1.22.1: --
 
 January 27, 2019:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mednafen/Documentation/apple2.html 
new/mednafen/Documentation/apple2.html
--- old/mednafen/Documentation/apple2.html      2019-01-28 07:52:37.000000000 
+0100
+++ new/mednafen/Documentation/apple2.html      2019-04-23 23:54:58.000000000 
+0200
@@ -9,7 +9,7 @@
  <body>
   <center><h1><img alt="Mednafen" src="mednafen.png" width="696" 
height="204"></h1></center>
   <center><h1>Apple II/II+ Documentation</h1></center>
-  <center><i>Last updated January 27, 2019<br>Valid as of 1.22.1</i></center>
+  <center><i>Last updated April 23, 2019<br>Valid as of 1.22.2</i></center>
  <p></p>
  <b>Table of Contents:</b>
  <ul><li><a href="#Section_intro">Introduction</a><ul></ul></li><li><a 
href="#Section_mai">MAI System and Disks Configuration 
File</a><ul></ul></li><li><a href="#Section_floppies">Floppy Disk 
Images</a><ul></ul></li><li><a 
href="#Section_firmware_bios">Firmware/BIOS</a><ul></ul></li><li><a 
href="#Section_input">Input</a><ul><li><a 
href="#Section_joystick_gamepad">Joystick/Gamepad</a><ul></ul></li><li><a 
href="#Section_atari_joystick">Atari Joystick</a><ul></ul></li><li><a 
href="#Section_keyboard">Apple II/II+ Keyboard</a><ul><li><a 
href="#Section_default_keys_keyboard">Default 
Mappings</a><ul></ul></li></ul></li></ul></li><li><a 
href="#Settings+Reference">Settings Reference</a><ul></ul></li></ul><hr 
width="100%">
@@ -173,7 +173,7 @@
  <tr><td>d13</td><td>116480</td><td>Apple DOS 13 sectors/track</td></tr>
  <tr><td>dsk<br>do</td><td>143360</td><td>Apple DOS-order 16 
sectors/track</td></tr>
  <tr><td>po</td><td>143360</td><td>Apple ProDOS-order 16 
sectors/track</td></tr>
- 
<tr><td>woz</td><td><i>(variable)</i></td><td>http://evolutioninteractive.com/applesauce/woz_reference.pdf</td></tr>
+ 
<tr><td>woz</td><td><i>(variable)</i></td><td>https://applesaucefdc.com/woz/</td></tr>
 </table>
 </p>
 
@@ -260,6 +260,7 @@
  <li>Ardy</li>
  <li>Bandits <i>(press CTRL+SHIFT+P)</i></li>
  <li>Beer Run <i>(press CTRL+SHIFT+P on control method screen)</i></li>
+ <li>Berzap</li>
  <li>Borg</li>
  <li>Borrowed Time</li>
  <li>Boulder Dash</li>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mednafen/Documentation/apple2.php 
new/mednafen/Documentation/apple2.php
--- old/mednafen/Documentation/apple2.php       2019-01-28 07:52:37.000000000 
+0100
+++ new/mednafen/Documentation/apple2.php       2019-04-23 23:54:58.000000000 
+0200
@@ -167,7 +167,7 @@
  <tr><td>d13</td><td>116480</td><td>Apple DOS 13 sectors/track</td></tr>
  <tr><td>dsk<br>do</td><td>143360</td><td>Apple DOS-order 16 
sectors/track</td></tr>
  <tr><td>po</td><td>143360</td><td>Apple ProDOS-order 16 
sectors/track</td></tr>
- 
<tr><td>woz</td><td><i>(variable)</i></td><td>http://evolutioninteractive.com/applesauce/woz_reference.pdf</td></tr>
+ 
<tr><td>woz</td><td><i>(variable)</i></td><td>https://applesaucefdc.com/woz/</td></tr>
 </table>
 </p>
 
@@ -301,6 +301,7 @@
  <li>Ardy</li>
  <li>Bandits <i>(press CTRL+SHIFT+P)</i></li>
  <li>Beer Run <i>(press CTRL+SHIFT+P on control method screen)</i></li>
+ <li>Berzap</li>
  <li>Borg</li>
  <li>Borrowed Time</li>
  <li>Boulder Dash</li>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mednafen/Documentation/cdplay.html 
new/mednafen/Documentation/cdplay.html
--- old/mednafen/Documentation/cdplay.html      2019-01-28 07:52:37.000000000 
+0100
+++ new/mednafen/Documentation/cdplay.html      2019-04-23 23:54:58.000000000 
+0200
@@ -9,7 +9,7 @@
  <body>
   <center><h1><img alt="Mednafen" src="mednafen.png" width="696" 
height="204"></h1></center>
   <center><h1>Sega Saturn Sound Format Player Documentation</h1></center>
-  <center><i>Last updated January 27, 2019<br>Valid as of 1.22.1</i></center>
+  <center><i>Last updated April 23, 2019<br>Valid as of 1.22.2</i></center>
  <p></p>
  <b>Table of Contents:</b>
  <ul><li><a href="#Section_intro">Introduction</a><ul></ul></li><li><a 
href="#Settings+Reference">Settings Reference</a><ul></ul></li></ul><hr 
width="100%">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mednafen/Documentation/gb.html 
new/mednafen/Documentation/gb.html
--- old/mednafen/Documentation/gb.html  2019-01-28 07:52:37.000000000 +0100
+++ new/mednafen/Documentation/gb.html  2019-04-23 23:54:58.000000000 +0200
@@ -9,7 +9,7 @@
  <body>
   <center><h1><img alt="Mednafen" src="mednafen.png" width="696" 
height="204"></h1></center>
   <center><h1>Game Boy (Color) Documentation</h1></center>
-  <center><i>Last updated January 27, 2019<br>Valid as of 1.22.1</i></center>
+  <center><i>Last updated April 23, 2019<br>Valid as of 1.22.2</i></center>
  <p></p>
  <b>Table of Contents:</b>
  <ul><li><a href="#Section_intro">Introduction</a><ul></ul></li><li><a 
href="#Section_custom_palettes">Custom Palettes</a><ul></ul></li><li><a 
href="#Section_default_keys">Default Key Assignments</a><ul></ul></li><li><a 
href="#Settings+Reference">Settings Reference</a><ul></ul></li></ul><hr 
width="100%">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mednafen/Documentation/gba.html 
new/mednafen/Documentation/gba.html
--- old/mednafen/Documentation/gba.html 2019-01-28 07:52:37.000000000 +0100
+++ new/mednafen/Documentation/gba.html 2019-04-23 23:54:58.000000000 +0200
@@ -9,7 +9,7 @@
  <body>
   <center><h1><img alt="Mednafen" src="mednafen.png" width="696" 
height="204"></h1></center>
   <center><h1>Game Boy Advance Documentation</h1></center>
-  <center><i>Last updated January 27, 2019<br>Valid as of 1.22.1</i></center>
+  <center><i>Last updated April 23, 2019<br>Valid as of 1.22.2</i></center>
  <p></p>
  <b>Table of Contents:</b>
  <ul><li><a href="#Section_intro">Introduction</a><ul><li><a 
href="#Section_bios">BIOS</a><ul></ul></li><li><a 
href="#Section_custom_palettes">Custom Palettes</a><ul></ul></li><li><a 
href="#Section_backupmem_type">Backup Memory 
Type</a><ul></ul></li></ul></li><li><a href="#Section_default_keys">Default Key 
Assignments</a><ul></ul></li><li><a href="#Settings+Reference">Settings 
Reference</a><ul></ul></li></ul><hr width="100%">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mednafen/Documentation/gg.html 
new/mednafen/Documentation/gg.html
--- old/mednafen/Documentation/gg.html  2019-01-28 07:52:37.000000000 +0100
+++ new/mednafen/Documentation/gg.html  2019-04-23 23:54:58.000000000 +0200
@@ -9,7 +9,7 @@
  <body>
   <center><h1><img alt="Mednafen" src="mednafen.png" width="696" 
height="204"></h1></center>
   <center><h1>Sega Game Gear Documentation</h1></center>
-  <center><i>Last updated January 27, 2019<br>Valid as of 1.22.1</i></center>
+  <center><i>Last updated April 23, 2019<br>Valid as of 1.22.2</i></center>
  <p></p>
  <b>Table of Contents:</b>
  <ul><li><a href="#Section_intro">Introduction</a><ul></ul></li><li><a 
href="#Section_custom_palettes">Custom Palettes</a><ul></ul></li><li><a 
href="#Settings+Reference">Settings Reference</a><ul></ul></li></ul><hr 
width="100%">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mednafen/Documentation/lynx.html 
new/mednafen/Documentation/lynx.html
--- old/mednafen/Documentation/lynx.html        2019-01-28 07:52:37.000000000 
+0100
+++ new/mednafen/Documentation/lynx.html        2019-04-23 23:54:58.000000000 
+0200
@@ -9,7 +9,7 @@
  <body>
   <center><h1><img alt="Mednafen" src="mednafen.png" width="696" 
height="204"></h1></center>
   <center><h1>Atari Lynx Documentation</h1></center>
-  <center><i>Last updated January 27, 2019<br>Valid as of 1.22.1</i></center>
+  <center><i>Last updated April 23, 2019<br>Valid as of 1.22.2</i></center>
  <p></p>
  <b>Table of Contents:</b>
  <ul><li><a href="#Section_intro">Introduction</a><ul></ul></li><li><a 
href="#Section_custom_palettes">Custom Palettes</a><ul></ul></li><li><a 
href="#Section_default_keys">Default Key Assignments</a><ul></ul></li><li><a 
href="#Settings+Reference">Settings Reference</a><ul></ul></li></ul><hr 
width="100%">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mednafen/Documentation/md.html 
new/mednafen/Documentation/md.html
--- old/mednafen/Documentation/md.html  2019-01-28 07:52:37.000000000 +0100
+++ new/mednafen/Documentation/md.html  2019-04-23 23:54:58.000000000 +0200
@@ -9,7 +9,7 @@
  <body>
   <center><h1><img alt="Mednafen" src="mednafen.png" width="696" 
height="204"></h1></center>
   <center><h1>Sega Genesis/MegaDrive Documentation</h1></center>
-  <center><i>Last updated January 27, 2019<br>Valid as of 1.22.1</i></center>
+  <center><i>Last updated April 23, 2019<br>Valid as of 1.22.2</i></center>
  <p></p>
  <b>Table of Contents:</b>
  <ul><li><a href="#Section_intro">Introduction</a><ul></ul></li><li><a 
href="#Settings+Reference">Settings Reference</a><ul></ul></li></ul><hr 
width="100%">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mednafen/Documentation/mednafen.html 
new/mednafen/Documentation/mednafen.html
--- old/mednafen/Documentation/mednafen.html    2019-01-28 07:52:37.000000000 
+0100
+++ new/mednafen/Documentation/mednafen.html    2019-04-23 23:54:58.000000000 
+0200
@@ -9,10 +9,10 @@
  <body>
   <center><h1><img alt="Mednafen" src="mednafen.png" width="696" 
height="204"></h1></center>
   <center><h1>General Documentation</h1></center>
-  <center><i>Last updated January 27, 2019<br>Valid as of 1.22.1</i></center>
+  <center><i>Last updated April 23, 2019<br>Valid as of 1.22.2</i></center>
  <p></p>
  <b>Table of Contents:</b>
- <ul><li><a href="#Section_introduction">Introduction</a><ul><li><a 
href="#Section_base_directory">Base Directory</a><ul></ul></li></ul></li><li><a 
href="#Section_core_features">Core Features</a><ul><li><a 
href="#Section_cdrom_emulation">CD Emulation</a><ul><li><a 
href="#Section_cd_images">Compact Disc Images</a><ul></ul></li><li><a 
href="#Section_multicd_games">Multiple-CD Games</a><ul></ul></li><li><a 
href="#Section_cdg">CD+G</a><ul></ul></li><li><a 
href="#Section_photocdportfolio">PhotoCD 
Portfolio</a><ul></ul></li></ul></li></ul></li><li><a 
href="#Section_security">Security Issues</a><ul><li><a 
href="#Section_security_savestates">Save States</a><ul></ul></li><li><a 
href="#Section_security_includes">CD images and PSF(PSF1, GSF, etc.) 
Files</a><ul></ul></li><li><a href="#Section_security_netplay">Network 
Play</a><ul></ul></li></ul></li><li><a href="#Section_using">Using 
Mednafen</a><ul><li><a href="#Section_key_assignments">Key 
Assignments</a><ul></ul></li><li><a href="#Section_input_grabbing">Input 
Grabbing</a><ul></ul></li><li><a href="#Section_remapping_input">Remapping 
Buttons and Keys</a><ul></ul></li><li><a 
href="#Section_command_line">Command-line</a><ul></ul></li><li><a 
href="#Section_config_files">Configuration Files</a><ul></ul></li><li><a 
href="#Global+Settings+Reference">Global Settings 
Reference</a><ul></ul></li><li><a 
href="#Section_firmware_bios">Firmware/BIOS</a><ul></ul></li><li><a 
href="#Section_custom_palettes">Custom Palettes</a><ul></ul></li><li><a 
href="#Section_ips_patching">Automatic IPS 
Patching</a><ul></ul></li></ul></li><li><a href="#Section_advanced">Advanced 
Usage</a><ul><li><a href="#Section_lag">Minimizing video/audio/input 
Lag</a><ul><li><a href="#Section_lag_hardware">Hardware 
Selection</a><ul></ul></li><li><a href="#Section_minimize_video_lag">Settings 
to Minimize Video Lag</a><ul></ul></li><li><a 
href="#Section_minimize_audio_lag">Settings to Minimize Audio 
Lag</a><ul></ul></li></ul></li><li><a 
href="#Section_input_mapping_format">Input Mapping Settings 
Format</a><ul><li><a 
href="#Section_ims_keyboard">Keyboard</a><ul></ul></li><li><a 
href="#Section_ims_mouse">Mouse</a><ul></ul></li><li><a 
href="#Section_ims_joystick">Joystick</a><ul></ul></li></ul></li></ul></li><li><a
 href="#Section_troubleshooting">Troubleshooting and Common 
Solutions</a><ul><li><a href="#Section_troubleshooting_nosoundlinux">No sound 
output on Linux.</a><ul></ul></li><li><a 
href="#Section_troubleshooting_configcrlf">Configuration file is a mess in 
Notepad in Windows.</a><ul></ul></li></ul></li><li>Emulation Module 
Documentation<ul><li><a href="apple2.html">Apple II/II+</a> [apple2]<li><a 
href="lynx.html">Atari Lynx</a> [lynx]<li><a href="cdplay.html">CD-DA 
Player</a> [cdplay]<li><a href="gb.html">GameBoy (Color)</a> [gb]<li><a 
href="gba.html">GameBoy Advance</a> [gba]<li><a href="ngp.html">Neo Geo Pocket 
(Color)</a> [ngp]<li><a href="nes.html">Nintendo Entertainment 
System/Famicom</a> [nes]<li><a href="pce.html">PC Engine (CD)/TurboGrafx 16 
(CD)/SuperGrafx</a> [pce]<li><a href="pce_fast.html">PC Engine (CD)/TurboGrafx 
16 (CD)/SuperGrafx</a> [pce_fast]<li><a href="pcfx.html">PC-FX</a> [pcfx]<li><a 
href="gg.html">Sega Game Gear</a> [gg]<li><a href="md.html">Sega 
Genesis/MegaDrive</a> [md]<li><a href="sms.html">Sega Master System</a> 
[sms]<li><a href="ss.html">Sega Saturn</a> [ss]<li><a href="ssfplay.html">Sega 
Saturn Sound Format Player</a> [ssfplay]<li><a href="psx.html">Sony 
PlayStation</a> [psx]<li><a href="snes_faust.html">Super Nintendo Entertainment 
System/Super Famicom</a> [snes_faust]<li><a href="snes.html">Super Nintendo 
Entertainment System/Super Famicom</a> [snes]<li><a href="vb.html">Virtual 
Boy</a> [vb]<li><a href="wswan.html">WonderSwan</a> [wswan]</ul></li><li><a 
href="debugger.html">Debugger</a><li><a href="netplay.html">Network 
Play</a><li><a href="#Section_legal">Licenses, Copyright Notices, and Code 
Credits</a><ul><li><a 
href="#Section_legal_libmpcdec">libmpcdec</a><ul></ul></li><li><a 
href="#Section_legal_tremor">Tremor</a><ul></ul></li><li><a 
href="#Section_legal_minilzo">MiniLZO</a><ul></ul></li><li><a 
href="#Section_legal_quicklz">QuickLZ</a><ul></ul></li><li><a 
href="#Section_legal_trio">trio</a><ul></ul></li><li><a 
href="#Section_legal_speex">Speex Resampler</a><ul></ul></li><li><a 
href="#Section_legal_ffmpeg">ffmpeg cputest</a><ul></ul></li><li><a 
href="#Section_legal_dvdisaster">CD-ROM data correction 
code</a><ul></ul></li><li><a 
href="#Section_legal_scale2x">Scale2x</a><ul></ul></li><li><a 
href="#Section_legal_hqnx">hq2x, hq3x, hq4x</a><ul></ul></li><li><a 
href="#Section_legal_2xsai">2xSaI</a><ul></ul></li><li><a 
href="#Section_legal_sabr">SABR v3.0 Shader</a><ul></ul></li><li><a 
href="#Section_legal_nes_ntsc">nes_ntsc</a><ul></ul></li><li><a 
href="#Section_legal_gb_snd_emu">Gb_Snd_Emu</a><ul></ul></li><li><a 
href="#Section_legal_blip_buffer">Blip_Buffer</a><ul></ul></li><li><a 
href="#Section_legal_sms_snd_emu">Sms_Snd_Emu(base for T6W28_Apu NGP 
code)</a><ul></ul></li><li><a href="#Section_legal_v810">V810 
Emulator</a><ul></ul></li><li><a href="#Section_legal_fuse">Fuse Z80 emulation 
code</a><ul></ul></li><li><a href="#Section_legal_emu2413">VRC7 Sound 
Emulation</a><ul></ul></li><li><a href="#Section_legal_v30mz">NEC V30MZ 
Emulator</a><ul></ul></li><li><a href="#Section_legal_v30mzdis">NEC V30MZ 
disassembler(modified BOCHS x86 disassembler)</a><ul></ul></li><li><a 
href="#Section_legal_emu2413_sms">EMU2413(used in SMS 
emulation)</a><ul></ul></li><li><a href="#Section_legal_ym2612">YM2612 
Emulator</a><ul></ul></li><li><a href="#Section_legal_svp_ssp16">Sega Genesis 
SVP/SSP16 Emulator</a><ul></ul></li><li><a href="#Section_legal_pc2e">PC2e 
(Used in portions of PC Engine CD emulation)</a><ul></ul></li><li><a 
href="#Section_legal_handy">Handy</a><ul></ul></li><li><a 
href="#Section_legal_vba">VisualBoyAdvance GameBoy and GBA 
code</a><ul></ul></li><li><a href="#Section_legal_neopop">NeoPop Neo Geo Pocket 
(Color) Code</a><ul></ul></li><li><a 
href="#Section_legal_cygne">Cygne</a><ul></ul></li><li><a 
href="#Section_legal_fceu">FCE Ultra</a><ul></ul></li><li><a 
href="#Section_legal_sms_plus">SMS Plus</a><ul></ul></li><li><a 
href="#Section_legal_genesis_plus">Genesis Plus</a><ul></ul></li><li><a 
href="#Section_legal_genesis_plus_gx">Genesis Plus 
GX</a><ul></ul></li></ul></li></ul><hr width="100%">
+ <ul><li><a href="#Section_introduction">Introduction</a><ul><li><a 
href="#Section_base_directory">Base Directory</a><ul></ul></li></ul></li><li><a 
href="#Section_core_features">Core Features</a><ul><li><a 
href="#Section_cdrom_emulation">CD Emulation</a><ul><li><a 
href="#Section_cd_images">Compact Disc Images</a><ul></ul></li><li><a 
href="#Section_multicd_games">Multiple-CD Games</a><ul></ul></li><li><a 
href="#Section_cdg">CD+G</a><ul></ul></li><li><a 
href="#Section_photocdportfolio">PhotoCD 
Portfolio</a><ul></ul></li></ul></li></ul></li><li><a 
href="#Section_security">Security Issues</a><ul><li><a 
href="#Section_security_savestates">Save States</a><ul></ul></li><li><a 
href="#Section_security_includes">CD images and PSF(PSF1, GSF, etc.) 
Files</a><ul></ul></li><li><a href="#Section_security_netplay">Network 
Play</a><ul></ul></li></ul></li><li><a href="#Section_using">Using 
Mednafen</a><ul><li><a href="#Section_key_assignments">Key 
Assignments</a><ul></ul></li><li><a href="#Section_input_grabbing">Input 
Grabbing</a><ul></ul></li><li><a href="#Section_remapping_input">Remapping 
Buttons and Keys</a><ul></ul></li><li><a 
href="#Section_command_line">Command-line</a><ul></ul></li><li><a 
href="#Section_config_files">Configuration Files</a><ul></ul></li><li><a 
href="#Global+Settings+Reference">Global Settings 
Reference</a><ul></ul></li><li><a 
href="#Section_firmware_bios">Firmware/BIOS</a><ul></ul></li><li><a 
href="#Section_custom_palettes">Custom Palettes</a><ul></ul></li><li><a 
href="#Section_ips_patching">Automatic IPS 
Patching</a><ul></ul></li></ul></li><li><a href="#Section_advanced">Advanced 
Usage</a><ul><li><a href="#Section_lag">Minimizing video/audio/input 
Lag</a><ul><li><a href="#Section_lag_hardware">Hardware 
Selection</a><ul></ul></li><li><a href="#Section_minimize_video_lag">Settings 
to Minimize Video Lag</a><ul></ul></li><li><a 
href="#Section_minimize_audio_lag">Settings to Minimize Audio 
Lag</a><ul></ul></li></ul></li><li><a 
href="#Section_input_mapping_format">Input Mapping Settings 
Format</a><ul><li><a 
href="#Section_ims_keyboard">Keyboard</a><ul></ul></li><li><a 
href="#Section_ims_mouse">Mouse</a><ul></ul></li><li><a 
href="#Section_ims_joystick">Joystick</a><ul></ul></li></ul></li></ul></li><li><a
 href="#Section_troubleshooting">Troubleshooting and Common 
Solutions</a><ul><li><a href="#Section_troubleshooting_nosoundlinux">No sound 
output on Linux.</a><ul></ul></li><li><a 
href="#Section_troubleshooting_configcrlf">Configuration file is a mess in 
Notepad in Windows.</a><ul></ul></li></ul></li><li>Emulation Module 
Documentation<ul><li><a href="apple2.html">Apple II/II+</a> [apple2]<li><a 
href="lynx.html">Atari Lynx</a> [lynx]<li><a href="cdplay.html">CD-DA 
Player</a> [cdplay]<li><a href="gb.html">GameBoy (Color)</a> [gb]<li><a 
href="gba.html">GameBoy Advance</a> [gba]<li><a href="ngp.html">Neo Geo Pocket 
(Color)</a> [ngp]<li><a href="nes.html">Nintendo Entertainment 
System/Famicom</a> [nes]<li><a href="pce.html">PC Engine (CD)/TurboGrafx 16 
(CD)/SuperGrafx</a> [pce]<li><a href="pce_fast.html">PC Engine (CD)/TurboGrafx 
16 (CD)/SuperGrafx</a> [pce_fast]<li><a href="pcfx.html">PC-FX</a> [pcfx]<li><a 
href="gg.html">Sega Game Gear</a> [gg]<li><a href="md.html">Sega 
Genesis/MegaDrive</a> [md]<li><a href="sms.html">Sega Master System</a> 
[sms]<li><a href="ss.html">Sega Saturn</a> [ss]<li><a href="ssfplay.html">Sega 
Saturn Sound Format Player</a> [ssfplay]<li><a href="psx.html">Sony 
PlayStation</a> [psx]<li><a href="snes_faust.html">Super Nintendo Entertainment 
System/Super Famicom</a> [snes_faust]<li><a href="snes.html">Super Nintendo 
Entertainment System/Super Famicom</a> [snes]<li><a href="vb.html">Virtual 
Boy</a> [vb]<li><a href="wswan.html">WonderSwan</a> [wswan]</ul></li><li><a 
href="debugger.html">Debugger</a><li><a href="netplay.html">Network 
Play</a><li><a href="#Section_legal">Licenses, Copyright Notices, and Code 
Credits</a><ul><li><a 
href="#Section_legal_libmpcdec">libmpcdec</a><ul></ul></li><li><a 
href="#Section_legal_tremor">Tremor</a><ul></ul></li><li><a 
href="#Section_legal_minilzo">MiniLZO</a><ul></ul></li><li><a 
href="#Section_legal_quicklz">QuickLZ</a><ul></ul></li><li><a 
href="#Section_legal_trio">trio</a><ul></ul></li><li><a 
href="#Section_legal_speex">Speex Resampler</a><ul></ul></li><li><a 
href="#Section_legal_ffmpeg">ffmpeg cputest</a><ul></ul></li><li><a 
href="#Section_legal_dvdisaster">CD-ROM data correction 
code</a><ul></ul></li><li><a href="#Section_legal_cdrdao">CD-ROM L-EC 
generation code</a><ul></ul></li><li><a 
href="#Section_legal_scale2x">Scale2x</a><ul></ul></li><li><a 
href="#Section_legal_hqnx">hq2x, hq3x, hq4x</a><ul></ul></li><li><a 
href="#Section_legal_2xsai">2xSaI</a><ul></ul></li><li><a 
href="#Section_legal_sabr">SABR v3.0 Shader</a><ul></ul></li><li><a 
href="#Section_legal_nes_ntsc">nes_ntsc</a><ul></ul></li><li><a 
href="#Section_legal_gb_snd_emu">Gb_Snd_Emu</a><ul></ul></li><li><a 
href="#Section_legal_blip_buffer">Blip_Buffer</a><ul></ul></li><li><a 
href="#Section_legal_sms_snd_emu">Sms_Snd_Emu(base for T6W28_Apu NGP 
code)</a><ul></ul></li><li><a href="#Section_legal_v810">V810 
Emulator</a><ul></ul></li><li><a href="#Section_legal_fuse">Fuse Z80 emulation 
code</a><ul></ul></li><li><a href="#Section_legal_emu2413">VRC7 Sound 
Emulation</a><ul></ul></li><li><a href="#Section_legal_v30mz">NEC V30MZ 
Emulator</a><ul></ul></li><li><a href="#Section_legal_v30mzdis">NEC V30MZ 
disassembler(modified BOCHS x86 disassembler)</a><ul></ul></li><li><a 
href="#Section_legal_emu2413_sms">EMU2413(used in SMS 
emulation)</a><ul></ul></li><li><a href="#Section_legal_ym2612">YM2612 
Emulator</a><ul></ul></li><li><a href="#Section_legal_svp_ssp16">Sega Genesis 
SVP/SSP16 Emulator</a><ul></ul></li><li><a href="#Section_legal_pc2e">PC2e 
(Used in portions of PC Engine CD emulation)</a><ul></ul></li><li><a 
href="#Section_legal_handy">Handy</a><ul></ul></li><li><a 
href="#Section_legal_vba">VisualBoyAdvance GameBoy and GBA 
code</a><ul></ul></li><li><a href="#Section_legal_neopop">NeoPop Neo Geo Pocket 
(Color) Code</a><ul></ul></li><li><a 
href="#Section_legal_cygne">Cygne</a><ul></ul></li><li><a 
href="#Section_legal_fceu">FCE Ultra</a><ul></ul></li><li><a 
href="#Section_legal_sms_plus">SMS Plus</a><ul></ul></li><li><a 
href="#Section_legal_genesis_plus">Genesis Plus</a><ul></ul></li><li><a 
href="#Section_legal_genesis_plus_gx">Genesis Plus 
GX</a><ul></ul></li></ul></li></ul><hr width="100%">
  <h2><a name="Section_introduction">Introduction</a></h2><p></p> <p>
  This main document covers general Mednafen usage, generally regardless of 
which system is being emulated.  Documentation covering key assignments, 
settings, and related information for each system emulation module is linked to 
in the table of contents under "Emulation Module Documentation".
  </p>
@@ -832,6 +832,29 @@
  */
 </pre>
 </blockquote>
+<hr width="75%">
+<h3><a name="Section_legal_cdrdao">CD-ROM L-EC generation 
code</a></h3><p></p><blockquote>
+<pre>
+/*  cdrdao - write audio CD-Rs in disc-at-once mode
+ *
+ *  Copyright (C) 1998-2002 Andreas Mueller <andr...@daneb.de>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+</pre>
+</blockquote>
 <hr width="75%">
  <h3><a name="Section_legal_scale2x"><a 
href="http://scale2x.sf.net/";>Scale2x</a></a></h3><p></p><blockquote>
 <pre>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mednafen/Documentation/mednafen.php 
new/mednafen/Documentation/mednafen.php
--- old/mednafen/Documentation/mednafen.php     2019-01-28 07:52:37.000000000 
+0100
+++ new/mednafen/Documentation/mednafen.php     2019-04-23 23:54:58.000000000 
+0200
@@ -802,6 +802,31 @@
 </blockquote>
 <?php EndSection(); ?>
 
+<?php BeginSection("CD-ROM L-EC generation code", "Section_legal_cdrdao"); ?>
+<blockquote>
+<pre>
+/*  cdrdao - write audio CD-Rs in disc-at-once mode
+ *
+ *  Copyright (C) 1998-2002 Andreas Mueller <andr...@daneb.de>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+</pre>
+</blockquote>
+<?php EndSection(); ?>
+
  <?php BeginSection("Scale2x", "Section_legal_scale2x", 
"http://scale2x.sf.net/";); ?>
 <blockquote>
 <pre>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mednafen/Documentation/modules.def 
new/mednafen/Documentation/modules.def
--- old/mednafen/Documentation/modules.def      2019-01-28 07:52:37.000000000 
+0100
+++ new/mednafen/Documentation/modules.def      2019-04-23 23:54:58.000000000 
+0200
@@ -1,4 +1,4 @@
-1.22.1
+1.22.2
 apple2
 Apple II/II+
 250
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mednafen/Documentation/nes.html 
new/mednafen/Documentation/nes.html
--- old/mednafen/Documentation/nes.html 2019-01-28 07:52:37.000000000 +0100
+++ new/mednafen/Documentation/nes.html 2019-04-23 23:54:58.000000000 +0200
@@ -9,7 +9,7 @@
  <body>
   <center><h1><img alt="Mednafen" src="mednafen.png" width="696" 
height="204"></h1></center>
   <center><h1>Nintendo Entertainment System/Famicom Documentation</h1></center>
-  <center><i>Last updated January 27, 2019<br>Valid as of 1.22.1</i></center>
+  <center><i>Last updated April 23, 2019<br>Valid as of 1.22.2</i></center>
  <p></p>
  <b>Table of Contents:</b>
  <ul><li><a href="#Section_intro">Introduction</a><ul><li><a 
href="#Section_custom_palettes">Custom Palettes</a><ul></ul></li><li><a 
href="#Section_input">Input</a><ul><li><a 
href="#Section_input_zapper">Zapper</a><ul></ul></li></ul></li><li><a 
href="#Section_formats">File Formats</a><ul><li><a 
href="#Section_formats_ines">iNES Format</a><ul></ul></li><li><a 
href="#Section_formats_unif">UNIF</a><ul></ul></li></ul></li><li><a 
href="#Section_fds">Famicom Disk System</a><ul></ul></li><li><a 
href="#Section_game_genie">Game Genie</a><ul></ul></li><li><a 
href="#Section_vs_unisystem">VS Unisystem</a><ul></ul></li></ul></li><li><a 
href="#Section_default_keys">Default Key Assignments</a><ul><li><a 
href="#Section_default_keys_vsuni">VS Unisystem</a><ul></ul></li><li><a 
href="#Section_default_keys_fds">Famicom Disk System</a><ul></ul></li><li><a 
href="#Section_default_keys_barcode">Barcode Readers</a><ul></ul></li><li><a 
href="#Section_default_keys_gamepad">Game Pad</a><ul></ul></li><li><a 
href="#Section_default_keys_powerpad">Power Pad</a><ul></ul></li><li><a 
href="#Section_default_keys_fkb">Family Keyboard</a><ul></ul></li><li><a 
href="#Section_default_keys_hypershot">HyperShot 
Controller</a><ul></ul></li><li><a href="#Section_default_keys_mahjong">Mahjong 
Controller</a><ul></ul></li><li><a href="#Section_default_keys_partytap">Party 
Tap Controller</a><ul></ul></li></ul></li><li><a 
href="#Section_hax">Game-specific Emulation Hacks</a><ul></ul></li><li><a 
href="#Settings+Reference">Settings Reference</a><ul></ul></li><li><a 
href="#Section_credits">Credits</a><ul></ul></li></ul><hr width="100%">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mednafen/Documentation/netplay.html 
new/mednafen/Documentation/netplay.html
--- old/mednafen/Documentation/netplay.html     2019-01-28 07:52:37.000000000 
+0100
+++ new/mednafen/Documentation/netplay.html     2019-04-23 23:54:58.000000000 
+0200
@@ -9,7 +9,7 @@
  <body>
   <center><h1><img alt="Mednafen" src="mednafen.png" width="696" 
height="204"></h1></center>
   <center><h1>Netplay Documentation</h1></center>
-  <center><i>Last updated January 27, 2019<br>Valid as of 1.22.1</i></center>
+  <center><i>Last updated April 23, 2019<br>Valid as of 1.22.2</i></center>
  <p></p>
  <b>Table of Contents:</b>
  <ul><li><a href="#Section_intro">Introduction</a><ul></ul></li><li><a 
href="#Section_server_setup">Setting up the Server</a><ul></ul></li><li><a 
href="#Section_using_console">Using Mednafen's netplay 
console</a><ul></ul></li></ul><hr width="100%">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mednafen/Documentation/ngp.html 
new/mednafen/Documentation/ngp.html
--- old/mednafen/Documentation/ngp.html 2019-01-28 07:52:37.000000000 +0100
+++ new/mednafen/Documentation/ngp.html 2019-04-23 23:54:58.000000000 +0200
@@ -9,7 +9,7 @@
  <body>
   <center><h1><img alt="Mednafen" src="mednafen.png" width="696" 
height="204"></h1></center>
   <center><h1>Neo Geo Pocket (Color) Documentation</h1></center>
-  <center><i>Last updated January 27, 2019<br>Valid as of 1.22.1</i></center>
+  <center><i>Last updated April 23, 2019<br>Valid as of 1.22.2</i></center>
  <p></p>
  <b>Table of Contents:</b>
  <ul><li><a href="#Section_intro">Introduction</a><ul></ul></li><li><a 
href="#Section_default_keys">Default Key Assignments</a><ul></ul></li><li><a 
href="#Settings+Reference">Settings Reference</a><ul></ul></li></ul><hr 
width="100%">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mednafen/Documentation/pce.html 
new/mednafen/Documentation/pce.html
--- old/mednafen/Documentation/pce.html 2019-01-28 07:52:37.000000000 +0100
+++ new/mednafen/Documentation/pce.html 2019-04-23 23:54:58.000000000 +0200
@@ -9,7 +9,7 @@
  <body>
   <center><h1><img alt="Mednafen" src="mednafen.png" width="696" 
height="204"></h1></center>
   <center><h1>PC Engine/TurboGrafx 16 (CD)/SuperGrafx 
Documentation</h1></center>
-  <center><i>Last updated January 27, 2019<br>Valid as of 1.22.1</i></center>
+  <center><i>Last updated April 23, 2019<br>Valid as of 1.22.2</i></center>
  <p></p>
  <b>Table of Contents:</b>
  <ul><li><a href="#Section_intro">Introduction</a><ul></ul></li><li><a 
href="#Section_custom_palettes">Custom Palettes</a><ul></ul></li><li><a 
href="#Section_default_keys">Default Key Assignments</a><ul></ul></li><li><a 
href="#Section_advanced">Advanced Usage</a><ul><li><a 
href="#Section_advanced_softreset">Accidental Soft 
Resets</a><ul></ul></li><li><a href="#Section_advanced_spritelimit">Sprite 
Flickering</a><ul></ul></li><li><a href="#Section_cdvolbalance">Obnoxious Sound 
Effects in CD Games</a><ul></ul></li></ul></li><li><a 
href="#Settings+Reference">Settings Reference</a><ul></ul></li></ul><hr 
width="100%">
@@ -102,7 +102,7 @@
 <tr class="RowB"><td class="ColA"><b>pce.input.port5</b></td><td 
class="ColB">enum</td><td class="ColC">none<br>gamepad<br>mouse</td><td 
class="ColD">gamepad</td><td class="ColE"><a name="pce.input.port5">Input 
device for Port 5</a><ul><li><b>none</b> - none<br></li><br><li><b>gamepad</b> 
- Gamepad<br></li><br><li><b>mouse</b> - Mouse<br></li></ul></td></tr><tr><td 
class="RowSpacer" colspan="5">&nbsp</td></tr>
 <tr class="RowA"><td class="ColA">pce.mouse_sensitivity</td><td 
class="ColB">real</td><td class="ColC"> <i>through</i> </td><td 
class="ColD">0.50</td><td class="ColE"><a name="pce.mouse_sensitivity">Emulated 
mouse sensitivity.</a></td></tr><tr><td class="RowSpacer" 
colspan="5">&nbsp</td></tr>
 <tr class="RowB"><td class="ColA">pce.nospritelimit</td><td 
class="ColB">boolean</td><td class="ColC">0<br>1</td><td class="ColD">0</td><td 
class="ColE"><a name="pce.nospritelimit">Remove 16-sprites-per-scanline 
hardware limit.</a><p>WARNING: Enabling this option may cause undesirable 
graphics glitching on some games(such as "Bloody Wolf").</p></td></tr><tr><td 
class="RowSpacer" colspan="5">&nbsp</td></tr>
-<tr class="RowA"><td class="ColA">pce.psgrevision</td><td 
class="ColB">enum</td><td class="ColC">huc6280<br>huc6280a<br>match</td><td 
class="ColD">match</td><td class="ColE"><a name="pce.psgrevision">Select PSG 
revision.</a><p>WARNING: HES playback will always use the "huc6280a" revision 
if this setting is set to "match", since HES playback is always done with 
SuperGrafx emulation enabled.</p><ul><li><b>huc6280</b> - HuC6280<br>HuC6280 as 
found in the original PC Engine.</li><br><li><b>huc6280a</b> - 
HuC6280A<br>HuC6280A as found in the SuperGrafx and CoreGrafx I.  Provides 
proper channel amplitude centering, but may cause clicking in a few games 
designed with the original HuC6280's sound characteristics in 
mind.</li><br><li><b>match</b> - Match emulation mode.<br>Selects "huc6280" for 
non-SuperGrafx mode, and "huc6280a" for SuperGrafx(full) 
mode.</li></ul></td></tr><tr><td class="RowSpacer" colspan="5">&nbsp</td></tr>
+<tr class="RowA"><td class="ColA">pce.psgrevision</td><td 
class="ColB">enum</td><td class="ColC">huc6280<br>huc6280a<br>match</td><td 
class="ColD">match</td><td class="ColE"><a name="pce.psgrevision">Select PSG 
revision.</a><p>WARNING: HES playback will always use the "huc6280a" revision 
if this setting is set to "match", since HES playback is always done with 
SuperGrafx emulation enabled.</p><ul><li><b>huc6280</b> - HuC6280<br>HuC6280 as 
found in the original PC Engine.</li><br><li><b>huc6280a</b> - 
HuC6280A<br>HuC6280A as found in the SuperGrafx and CoreGrafx I.  Provides 
proper channel amplitude centering.  Many games will have less clicking with 
the HuC6280A, but it may cause clicking in a few games designed with the 
original HuC6280's sound characteristics in mind.</li><br><li><b>match</b> - 
Match emulation mode.<br>Selects "huc6280" for non-SuperGrafx mode, and 
"huc6280a" for SuperGrafx(full) mode.</li></ul></td></tr><tr><td 
class="RowSpacer" colspan="5">&nbsp</td></tr>
 <tr class="RowB"><td class="ColA">pce.resamp_quality</td><td 
class="ColB">integer</td><td class="ColC">0 <i>through</i> 5</td><td 
class="ColD">3</td><td class="ColE"><a name="pce.resamp_quality">Sound 
quality.</a><p>Higher values correspond to better SNR and better preservation 
of higher frequencies("brightness"), at the cost of increased computational 
complexity and a negligible increase in latency.<br>
 <br>
 Higher values will also slightly increase the probability of sample 
clipping(relevant if Mednafen's volume control settings are set too high), due 
to increased (time-domain) ringing.</p></td></tr><tr><td class="RowSpacer" 
colspan="5">&nbsp</td></tr>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mednafen/Documentation/pce_fast.html 
new/mednafen/Documentation/pce_fast.html
--- old/mednafen/Documentation/pce_fast.html    2019-01-28 07:52:37.000000000 
+0100
+++ new/mednafen/Documentation/pce_fast.html    2019-04-23 23:54:58.000000000 
+0200
@@ -9,7 +9,7 @@
  <body>
   <center><h1><img alt="Mednafen" src="mednafen.png" width="696" 
height="204"></h1></center>
   <center><h1>PC Engine (CD)/TurboGrafx 16 (CD)/SuperGrafx 
Documentation</h1></center>
-  <center><i>Last updated January 27, 2019<br>Valid as of 1.22.1</i></center>
+  <center><i>Last updated April 23, 2019<br>Valid as of 1.22.2</i></center>
  <p></p>
  <b>Table of Contents:</b>
  <ul><li><a href="#Section_intro">Introduction</a><ul></ul></li><li><a 
href="#Section_custom_palettes">Custom Palettes</a><ul></ul></li><li><a 
href="#Settings+Reference">Settings Reference</a><ul></ul></li></ul><hr 
width="100%">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mednafen/Documentation/pcfx.html 
new/mednafen/Documentation/pcfx.html
--- old/mednafen/Documentation/pcfx.html        2019-01-28 07:52:37.000000000 
+0100
+++ new/mednafen/Documentation/pcfx.html        2019-04-23 23:54:58.000000000 
+0200
@@ -9,7 +9,7 @@
  <body>
   <center><h1><img alt="Mednafen" src="mednafen.png" width="696" 
height="204"></h1></center>
   <center><h1>PC-FX Documentation</h1></center>
-  <center><i>Last updated January 27, 2019<br>Valid as of 1.22.1</i></center>
+  <center><i>Last updated April 23, 2019<br>Valid as of 1.22.2</i></center>
  <p></p>
  <b>Table of Contents:</b>
  <ul><li><a href="#Section_intro">Introduction</a><ul></ul></li><li><a 
href="#Section_firmware_bios">Firmware/BIOS</a><ul></ul></li><li><a 
href="#Section_default_keys">Default Key Assignments</a><ul></ul></li><li><a 
href="#Settings+Reference">Settings Reference</a><ul></ul></li></ul><hr 
width="100%">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mednafen/Documentation/psx.html 
new/mednafen/Documentation/psx.html
--- old/mednafen/Documentation/psx.html 2019-01-28 07:52:37.000000000 +0100
+++ new/mednafen/Documentation/psx.html 2019-04-23 23:54:58.000000000 +0200
@@ -9,7 +9,7 @@
  <body>
   <center><h1><img alt="Mednafen" src="mednafen.png" width="696" 
height="204"></h1></center>
   <center><h1>Sony PlayStation Documentation</h1></center>
-  <center><i>Last updated January 27, 2019<br>Valid as of 1.22.1</i></center>
+  <center><i>Last updated April 23, 2019<br>Valid as of 1.22.2</i></center>
  <p></p>
  <b>Table of Contents:</b>
  <ul><li><a href="#Section_intro">Introduction</a><ul></ul></li><li><a 
href="#Section_firmware_bios">Firmware/BIOS</a><ul></ul></li><li><a 
href="#Section_analog_range">Analog Sticks Range Issues</a><ul></ul></li><li><a 
href="#Section_multitap">Multitap Usage</a><ul></ul></li><li><a 
href="#Section_default_keys">Default Input Mappings</a><ul><li><a 
href="#Section_default_keys_gamepad">Digital Gamepad on Virtual Port 
1</a><ul></ul></li></ul></li><li><a href="#Settings+Reference">Settings 
Reference</a><ul></ul></li></ul><hr width="100%">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mednafen/Documentation/settings.def 
new/mednafen/Documentation/settings.def
--- old/mednafen/Documentation/settings.def     2019-01-28 07:52:37.000000000 
+0100
+++ new/mednafen/Documentation/settings.def     2019-04-23 23:54:58.000000000 
+0200
@@ -15210,7 +15210,7 @@
 HuC6280 as found in the original PC Engine.
 huc6280a
 HuC6280A
-HuC6280A as found in the SuperGrafx and CoreGrafx I.  Provides proper channel 
amplitude centering, but may cause clicking in a few games designed with the 
original HuC6280\'s sound characteristics in mind.
+HuC6280A as found in the SuperGrafx and CoreGrafx I.  Provides proper channel 
amplitude centering.  Many games will have less clicking with the HuC6280A, but 
it may cause clicking in a few games designed with the original HuC6280\'s 
sound characteristics in mind.
 match
 Match emulation mode.
 Selects \"huc6280\" for non-SuperGrafx mode, and \"huc6280a\" for 
SuperGrafx(full) mode.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mednafen/Documentation/sms.html 
new/mednafen/Documentation/sms.html
--- old/mednafen/Documentation/sms.html 2019-01-28 07:52:37.000000000 +0100
+++ new/mednafen/Documentation/sms.html 2019-04-23 23:54:58.000000000 +0200
@@ -9,7 +9,7 @@
  <body>
   <center><h1><img alt="Mednafen" src="mednafen.png" width="696" 
height="204"></h1></center>
   <center><h1>Sega Master System Documentation</h1></center>
-  <center><i>Last updated January 27, 2019<br>Valid as of 1.22.1</i></center>
+  <center><i>Last updated April 23, 2019<br>Valid as of 1.22.2</i></center>
  <p></p>
  <b>Table of Contents:</b>
  <ul><li><a href="#Section_intro">Introduction</a><ul></ul></li><li><a 
href="#Section_custom_palettes">Custom Palettes</a><ul></ul></li><li><a 
href="#Settings+Reference">Settings Reference</a><ul></ul></li></ul><hr 
width="100%">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mednafen/Documentation/snes.html 
new/mednafen/Documentation/snes.html
--- old/mednafen/Documentation/snes.html        2019-01-28 07:52:37.000000000 
+0100
+++ new/mednafen/Documentation/snes.html        2019-04-23 23:54:58.000000000 
+0200
@@ -9,7 +9,7 @@
  <body>
   <center><h1><img alt="Mednafen" src="mednafen.png" width="696" 
height="204"></h1></center>
   <center><h1>Super Nintendo Entertainment System/Super Famicom 
Documentation</h1></center>
-  <center><i>Last updated January 27, 2019<br>Valid as of 1.22.1</i></center>
+  <center><i>Last updated April 23, 2019<br>Valid as of 1.22.2</i></center>
  <p></p>
  <b>Table of Contents:</b>
  <ul><li><a href="#Section_intro">Introduction</a><ul></ul></li><li><a 
href="#Section_custom_palettes">Custom Palettes</a><ul></ul></li><li><a 
href="#Section_default_keys">Default Key Assignments</a><ul></ul></li><li><a 
href="#Settings+Reference">Settings Reference</a><ul></ul></li></ul><hr 
width="100%">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mednafen/Documentation/snes_faust.html 
new/mednafen/Documentation/snes_faust.html
--- old/mednafen/Documentation/snes_faust.html  2019-01-28 07:52:37.000000000 
+0100
+++ new/mednafen/Documentation/snes_faust.html  2019-04-23 23:54:58.000000000 
+0200
@@ -9,7 +9,7 @@
  <body>
   <center><h1><img alt="Mednafen" src="mednafen.png" width="696" 
height="204"></h1></center>
   <center><h1>Super Nintendo Entertainment System/Super Famicom 
Documentation</h1></center>
-  <center><i>Last updated January 27, 2019<br>Valid as of 1.22.1</i></center>
+  <center><i>Last updated April 23, 2019<br>Valid as of 1.22.2</i></center>
  <p></p>
  <b>Table of Contents:</b>
  <ul><li><a href="#Section_intro">Introduction</a><ul></ul></li><li><a 
href="#Settings+Reference">Settings Reference</a><ul></ul></li></ul><hr 
width="100%">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mednafen/Documentation/ss.html 
new/mednafen/Documentation/ss.html
--- old/mednafen/Documentation/ss.html  2019-01-28 07:52:37.000000000 +0100
+++ new/mednafen/Documentation/ss.html  2019-04-23 23:54:58.000000000 +0200
@@ -9,7 +9,7 @@
  <body>
   <center><h1><img alt="Mednafen" src="mednafen.png" width="696" 
height="204"></h1></center>
   <center><h1>Sega Saturn Documentation</h1></center>
-  <center><i>Last updated January 27, 2019<br>Valid as of 1.22.1</i></center>
+  <center><i>Last updated April 23, 2019<br>Valid as of 1.22.2</i></center>
  <p></p>
  <b>Table of Contents:</b>
  <ul><li><a href="#Section_intro">Introduction</a><ul></ul></li><li><a 
href="#Section_firmware_bios">Firmware/BIOS</a><ul></ul></li><li><a 
href="#Section_default_keys">Default Input Mappings</a><ul><li><a 
href="#Section_default_keys_gamepad">Digital Gamepad on Virtual Port 
1</a><ul></ul></li><li><a href="#Section_default_keys_mouse">Mouse on Virtual 
Ports 1-12</a><ul></ul></li><li><a href="#Section_default_keys_gun">Light Gun 
on Virtual Ports 1-12</a><ul></ul></li></ul></li><li><a 
href="#Settings+Reference">Settings Reference</a><ul></ul></li></ul><hr 
width="100%">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mednafen/Documentation/ssfplay.html 
new/mednafen/Documentation/ssfplay.html
--- old/mednafen/Documentation/ssfplay.html     2019-01-28 07:52:37.000000000 
+0100
+++ new/mednafen/Documentation/ssfplay.html     2019-04-23 23:54:58.000000000 
+0200
@@ -9,7 +9,7 @@
  <body>
   <center><h1><img alt="Mednafen" src="mednafen.png" width="696" 
height="204"></h1></center>
   <center><h1>Sega Saturn Sound Format Player Documentation</h1></center>
-  <center><i>Last updated January 27, 2019<br>Valid as of 1.22.1</i></center>
+  <center><i>Last updated April 23, 2019<br>Valid as of 1.22.2</i></center>
  <p></p>
  <b>Table of Contents:</b>
  <ul><li><a href="#Section_intro">Introduction</a><ul></ul></li><li><a 
href="#Settings+Reference">Settings Reference</a><ul></ul></li></ul><hr 
width="100%">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mednafen/Documentation/vb.html 
new/mednafen/Documentation/vb.html
--- old/mednafen/Documentation/vb.html  2019-01-28 07:52:37.000000000 +0100
+++ new/mednafen/Documentation/vb.html  2019-04-23 23:54:58.000000000 +0200
@@ -9,7 +9,7 @@
  <body>
   <center><h1><img alt="Mednafen" src="mednafen.png" width="696" 
height="204"></h1></center>
   <center><h1>Virtual Boy Documentation</h1></center>
-  <center><i>Last updated January 27, 2019<br>Valid as of 1.22.1</i></center>
+  <center><i>Last updated April 23, 2019<br>Valid as of 1.22.2</i></center>
  <p></p>
  <b>Table of Contents:</b>
  <ul><li><a href="#Section_intro">Introduction</a><ul></ul></li><li><a 
href="#Section_custom_palettes">Custom Palettes</a><ul></ul></li><li><a 
href="#Settings+Reference">Settings Reference</a><ul></ul></li></ul><hr 
width="100%">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mednafen/Documentation/wswan.html 
new/mednafen/Documentation/wswan.html
--- old/mednafen/Documentation/wswan.html       2019-01-28 07:52:37.000000000 
+0100
+++ new/mednafen/Documentation/wswan.html       2019-04-23 23:54:58.000000000 
+0200
@@ -9,7 +9,7 @@
  <body>
   <center><h1><img alt="Mednafen" src="mednafen.png" width="696" 
height="204"></h1></center>
   <center><h1>WonderSwan Documentation</h1></center>
-  <center><i>Last updated January 27, 2019<br>Valid as of 1.22.1</i></center>
+  <center><i>Last updated April 23, 2019<br>Valid as of 1.22.2</i></center>
  <p></p>
  <b>Table of Contents:</b>
  <ul><li><a href="#Section_intro">Introduction</a><ul></ul></li><li><a 
href="#Section_default_keys">Default Key Assignments</a><ul></ul></li><li><a 
href="#Section_hax">Game-specific Emulation Hacks</a><ul></ul></li><li><a 
href="#Settings+Reference">Settings Reference</a><ul></ul></li></ul><hr 
width="100%">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mednafen/configure new/mednafen/configure
--- old/mednafen/configure      2019-01-28 07:52:37.000000000 +0100
+++ new/mednafen/configure      2019-04-23 23:54:58.000000000 +0200
@@ -4365,8 +4365,8 @@
 #
 # Avoid trailing and leading zeroes in the decimal version components to avoid 
confusing not-so-learned people.
 #
-MEDNAFEN_VERSION='1.22.1'
-MEDNAFEN_VERSION_NUMERIC=0x00102201
+MEDNAFEN_VERSION='1.22.2'
+MEDNAFEN_VERSION_NUMERIC=0x00102202
 #                        0xJJJnnnRR
 
 # Make sure we can run config.sub.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mednafen/configure.ac new/mednafen/configure.ac
--- old/mednafen/configure.ac   2019-01-28 07:52:37.000000000 +0100
+++ new/mednafen/configure.ac   2019-04-23 23:54:58.000000000 +0200
@@ -6,8 +6,8 @@
 #
 # Avoid trailing and leading zeroes in the decimal version components to avoid 
confusing not-so-learned people.
 #
-MEDNAFEN_VERSION='1.22.1'
-MEDNAFEN_VERSION_NUMERIC=0x00102201
+MEDNAFEN_VERSION='1.22.2'
+MEDNAFEN_VERSION_NUMERIC=0x00102202
 #                        0xJJJnnnRR
 
 AC_CANONICAL_HOST
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mednafen/src/apple2/disk2.inc 
new/mednafen/src/apple2/disk2.inc
--- old/mednafen/src/apple2/disk2.inc   2019-01-28 07:52:37.000000000 +0100
+++ new/mednafen/src/apple2/disk2.inc   2019-04-23 23:54:58.000000000 +0200
@@ -38,7 +38,7 @@
 enum : unsigned { num_tracks = 160 };
 //enum : unsigned { samples_per_track = 1431818 };
 enum : unsigned { min_bits_per_track = 46000 };
-enum : unsigned { max_bits_per_track = 53168 };
+enum : unsigned { max_bits_per_track = 56048 };
 
 static uint8 BootROM[256];
 static uint8 SequencerROM[256];
@@ -868,7 +868,8 @@
  }
 }
 
-static const uint8 woz_header_magic[8] = { 0x57, 0x4F, 0x5A, 0x31, 0xFF, 0x0A, 
0x0D, 0x0A };
+static const uint8 woz_header_magic[8]  = { 0x57, 0x4F, 0x5A, 0x31, 0xFF, 
0x0A, 0x0D, 0x0A };
+static const uint8 woz2_header_magic[8] = { 0x57, 0x4F, 0x5A, 0x32, 0xFF, 
0x0A, 0x0D, 0x0A };
 
 static void LoadWOZ(Stream* sp, FloppyDisk* disk)
 {
@@ -876,13 +877,18 @@
 
  MDFN_printf(_("Parsing WOZ-format disk image...\n"));
 
- if(sp->read(header, 12, false) != 12 || memcmp(header, woz_header_magic, 
sizeof(woz_header_magic)))
+ if(sp->read(header, 12, false) != 12 || (memcmp(header, woz_header_magic, 
sizeof(woz_header_magic)) && memcmp(header, woz2_header_magic, 
sizeof(woz2_header_magic))))
   throw MDFN_Error(0, _("Bad or missing WOZ file header."));
  //
+ const bool woz2 = !memcmp(header, woz2_header_magic, 
sizeof(woz2_header_magic));
+ //
  uint8 disk_type;
  uint8 write_protected;
  uint8 synchronized;
  uint8 cleaned;
+ uint8 optimal_bit_timing = 32;
+ uint16 compat_hw = 0;
+ uint16 req_ram = 0;
  //
  uint8 chunk_header[8];
  unsigned required_chunks = 0;
@@ -922,6 +928,13 @@
    MDFN_zapctrlchars(creator);
    MDFN_trim(creator);
 
+   if(woz2) 
+   {
+    optimal_bit_timing = info[39];
+    compat_hw = MDFN_de16lsb(&info[40]);
+    req_ram = MDFN_de16lsb(&info[42]);
+   }
+
    if(disk_type == 0x02)
     throw MDFN_Error(0, _("3.5\" floppy disk images not currently 
supported."));
 
@@ -930,13 +943,40 @@
 
    disk->write_protect = (bool)write_protected;
 
-   MDFN_printf(" INFO:\n");
-   MDFN_printf("  Version: %u\n", info_version);
-   MDFN_printf("  Disk type: %u\n", disk_type);
-   MDFN_printf("  Write protected: %u\n", write_protected);
-   MDFN_printf("  Synchronized: %u\n", synchronized);
-   MDFN_printf("  Cleaned: %u\n", cleaned);
-   MDFN_printf("  Creator: %s\n", creator);
+   MDFN_printf(_(" INFO:\n"));
+   MDFN_printf(_("  Version: %u\n"), info_version);
+   MDFN_printf(_("  Disk type: %u\n"), disk_type);
+   MDFN_printf(_("  Write protected: %u\n"), write_protected);
+   MDFN_printf(_("  Synchronized: %u\n"), synchronized);
+   MDFN_printf(_("  Cleaned: %u\n"), cleaned);
+   MDFN_printf(_("  Creator: %s\n"), creator);
+
+   if(woz2)
+   {
+    static const char* compat_hw_tab[] = { "Apple II", "Apple II+", "Apple 
IIe", "Apple IIc", "Apple IIe Enhanced", "Apple IIgs", "Apple IIc Plus", "Apple 
III", "Apple III Plus" };
+    std::string compat_hw_str;
+
+    for(size_t i = 0; i < sizeof(compat_hw_tab) / sizeof(compat_hw_tab[0]); 
i++)
+    {
+     if(compat_hw & (1U << i))
+     {
+      if(compat_hw_str.size())
+       compat_hw_str += ", ";
+
+      compat_hw_str += compat_hw_tab[i];
+     }
+    }
+
+    if(!compat_hw_str.size())
+     compat_hw_str = _("Unknown");
+
+    MDFN_printf(_("  Optimal bit timing: %u\n"), optimal_bit_timing);
+    MDFN_printf(_("  Compatible hardware: %s\n"), compat_hw_str.c_str());
+    if(!req_ram)
+     MDFN_printf(_("  Required RAM: %s\n"), _("Unknown"));
+    else
+     MDFN_printf(_("  Required RAM: %u KiB\n"), req_ram);
+   }
    //
    required_chunks |= 1;
   }
@@ -963,57 +1003,98 @@
    if(sp->tell() != 256)
     throw MDFN_Error(0, _("Required chunk \"%s\" is at the wrong offset."), 
"TRKS");
 
-   if(chunk_size != num_src_tracks * 6656)
-    throw MDFN_Error(0, _("Required chunk \"%s\" is of the wrong size."), 
"TRKS");
-   //
    src_tracks.reset(new FloppyDisk::Track[num_src_tracks]);
 
    MDFN_printf(" TRKS:\n");
 
-   for(unsigned i = 0; i < num_src_tracks; i++)
+   if(woz2)
    {
-    uint8 trk[6656];
-
-    sp->read(trk, 6656);
-    //
-    const uint16 bytes_used = MDFN_de16lsb(&trk[6646]);
-    const uint16 bit_count = MDFN_de16lsb(&trk[6648]);
-    const uint16 splice_point = MDFN_de16lsb(&trk[6650]);
-    const uint8 splice_nibble = trk[6652];
-    const uint8 splice_bit_count = trk[6653];
-    const uint16 reserved = MDFN_de16lsb(&trk[6654]);
-
-    if(bytes_used > 6646)
-     throw MDFN_Error(0, _("Bytes used of TRKS chunk TRK entry %u is larger 
than 6646!"), i);
+    std::unique_ptr<uint8[]> index(new uint8[1280]);
+    std::unique_ptr<uint8[]> trk(new uint8[(max_bits_per_track + 7) >> 3]);
 
-    if(bit_count > bytes_used * 8)
-     throw MDFN_Error(0, _("Bit count of TRKS chunk TRK entry %u is larger 
than the number of bytes used * 8!"), i);
+    sp->read(index.get(), 1280);
 
-    //
-    // Sanity check, various assumptions to boost performance break down if 
the number of bits is too low or high.
-    // Maybe should check if the maximum absolute difference of one track's 
bit count compared to another track's bit count
-    // is too large too...
-    //
-    if(bit_count < min_bits_per_track || bit_count > max_bits_per_track)
-     throw MDFN_Error(0, _("Bit count(%u) of TRKS chunk TRK entry %u is out of 
the acceptable range of %u through %u!"), bit_count, i, min_bits_per_track, 
max_bits_per_track);
+    for(unsigned i = 0; i < num_src_tracks; i++)
+    {
+     const uint16 starting_block = MDFN_de16lsb(&index[i * 8 + 0]);
+     const uint16 block_count = MDFN_de16lsb(&index[i * 8 + 2]);
+     const uint32 bit_count = MDFN_de32lsb(&index[i * 8 + 4]);
+
+     if(bit_count > (block_count * 8 * 512))
+      throw MDFN_Error(0, _("Bit count of TRKS chunk TRK entry %u is larger 
than the block count * 512 * 8!"), i);
+
+     if(bit_count < min_bits_per_track || bit_count > max_bits_per_track)
+      throw MDFN_Error(0, _("Bit count(%u) of TRKS chunk TRK entry %u is out 
of the acceptable range of %u through %u!"), bit_count, i, min_bits_per_track, 
max_bits_per_track);
+     //
+     //
+     //
+     sp->seek(starting_block * 512);
+     sp->read(trk.get(), (bit_count + 7) >> 3);
+     //
+     MDFN_printf(_("  Source track %u:\n"), i);
+
+     MDFN_printf(_("    Starting block: %u\n"), starting_block);
+     MDFN_printf(_("    Block count: %u\n"), block_count);
+     MDFN_printf(_("    Bit count: %u\n"), bit_count);
+     //
+     apple2_track_encoder te(&src_tracks[i], bit_count);
 
-    MDFN_printf("  Source track %u:\n", i);
+     for(size_t bi = 0; bi < bit_count; bi++)
+     {
+      te.encode_bit((trk[bi >> 3] >> (0x7 - (bi & 0x7))) & 1);
+     }
+     te.finish();
+    }
+   }
+   else
+   {
+    if(chunk_size != num_src_tracks * 6656)
+     throw MDFN_Error(0, _("Required chunk \"%s\" is of the wrong size."), 
"TRKS");
 
-    MDFN_printf(_("    Bytes used: %u\n"), bytes_used);
-    MDFN_printf(_("    Bit count: %u\n"), bit_count);
-    MDFN_printf(_("    Splice point: %u\n"), splice_point);
-    MDFN_printf(_("    Splice nibble: 0x%02x\n"), splice_nibble);
-    MDFN_printf(_("    Splice bit count: %u\n"), splice_bit_count);
-    MDFN_printf(_("    Reserved: 0x%04x\n"), reserved);
+    for(unsigned i = 0; i < num_src_tracks; i++)
+    {
+     uint8 trk[6656];
 
-    //
-    apple2_track_encoder te(&src_tracks[i], bit_count);
+     sp->read(trk, 6656);
+     //
+     const uint16 bytes_used = MDFN_de16lsb(&trk[6646]);
+     const uint16 bit_count = MDFN_de16lsb(&trk[6648]);
+     const uint16 splice_point = MDFN_de16lsb(&trk[6650]);
+     const uint8 splice_nibble = trk[6652];
+     const uint8 splice_bit_count = trk[6653];
+     const uint16 reserved = MDFN_de16lsb(&trk[6654]);
+
+     if(bytes_used > 6646)
+      throw MDFN_Error(0, _("Bytes used of TRKS chunk TRK entry %u is larger 
than 6646!"), i);
+
+     if(bit_count > bytes_used * 8)
+      throw MDFN_Error(0, _("Bit count of TRKS chunk TRK entry %u is larger 
than the number of bytes used * 8!"), i);
+
+     //
+     // Sanity check, various assumptions to boost performance break down if 
the number of bits is too low or high.
+     // Maybe should check if the maximum absolute difference of one track's 
bit count compared to another track's bit count
+     // is too large too...
+     //
+     if(bit_count < min_bits_per_track || bit_count > max_bits_per_track)
+      throw MDFN_Error(0, _("Bit count(%u) of TRKS chunk TRK entry %u is out 
of the acceptable range of %u through %u!"), bit_count, i, min_bits_per_track, 
max_bits_per_track);
+
+     MDFN_printf(_("  Source track %u:\n"), i);
+
+     MDFN_printf(_("    Bytes used: %u\n"), bytes_used);
+     MDFN_printf(_("    Bit count: %u\n"), bit_count);
+     MDFN_printf(_("    Splice point: %u\n"), splice_point);
+     MDFN_printf(_("    Splice nibble: 0x%02x\n"), splice_nibble);
+     MDFN_printf(_("    Splice bit count: %u\n"), splice_bit_count);
+     MDFN_printf(_("    Reserved: 0x%04x\n"), reserved);
+     //
+     apple2_track_encoder te(&src_tracks[i], bit_count);
 
-    for(size_t bi = 0; bi < bit_count; bi++)
-    {
-     te.encode_bit((trk[bi >> 3] >> (0x7 - (bi & 0x7))) & 1);
+     for(size_t bi = 0; bi < bit_count; bi++)
+     {
+      te.encode_bit((trk[bi >> 3] >> (0x7 - (bi & 0x7))) & 1);
+     }
+     te.finish();
     }
-    te.finish();
    }
 
    for(unsigned i = 0; i < sizeof(tmap); i++)
@@ -1406,7 +1487,7 @@
 
   MDFN_printf("Warning: Detecting Apple II disk image format by contents 
and/or size(ext=%s).\n", ext.c_str());
 
-  woz_header_detected = (sp->read(header, 12, false) == 12 && !memcmp(header, 
woz_header_magic, sizeof(woz_header_magic)));
+  woz_header_detected = (sp->read(header, 12, false) == 12 && (!memcmp(header, 
woz_header_magic, sizeof(woz_header_magic)) || !memcmp(header, 
woz2_header_magic, sizeof(woz2_header_magic))));
   sp->rewind();
 
   if(woz_header_detected)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mednafen/src/lynx/ram.h new/mednafen/src/lynx/ram.h
--- old/mednafen/src/lynx/ram.h 2019-01-28 07:52:37.000000000 +0100
+++ new/mednafen/src/lynx/ram.h 2019-04-23 23:54:58.000000000 +0200
@@ -65,8 +65,8 @@
 
                void    Reset(void) MDFN_COLD;
 
-               void    Poke(uint32 addr, uint8 data){ mRamData[addr]=data;};
-               uint8   Peek(uint32 addr){ return(mRamData[addr]);};
+               void    Poke(uint32 addr, uint8 data){ 
mRamData[(uint16)addr]=data;};
+               uint8   Peek(uint32 addr){ return(mRamData[(uint16)addr]);};
                uint32  ReadCycle(void) {return 5;};
                uint32  WriteCycle(void) {return 5;};
                uint32   ObjectSize(void) {return RAM_SIZE;};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mednafen/src/lynx/susie.cpp 
new/mednafen/src/lynx/susie.cpp
--- old/mednafen/src/lynx/susie.cpp     2019-01-28 07:52:37.000000000 +0100
+++ new/mednafen/src/lynx/susie.cpp     2019-04-23 23:54:58.000000000 +0200
@@ -58,13 +58,9 @@
 // wa can access this directly without the hassle of
 // going through the system object, much faster
 //
-//#define RAM_PEEK(m)                  (mSystem.Peek_RAM((m)))
-//#define RAM_POKE(m1,m2)              (mSystem.Poke_RAM((m1),(m2)))
-//#define RAM_PEEKW(m)                 (mSystem.PeekW_RAM((m)))
-
-#define RAM_PEEK(m)                            (mRamPointer[(m)])
-#define RAM_PEEKW(m)                   
(mRamPointer[(m)]+(mRamPointer[(m)+1]<<8))
-#define RAM_POKE(m1,m2)                        {mRamPointer[(m1)]=(m2);}
+#define RAM_PEEK(m)                    (mRamPointer[(uint16)(m)])
+#define RAM_PEEKW(m)                   
(mRamPointer[(uint16)(m)]+(mRamPointer[(uint16)((m)+1)]<<8))
+#define RAM_POKE(m1,m2)                        
{mRamPointer[(uint16)(m1)]=(m2);}
 
 uint32 cycles_used=0;
 
@@ -838,7 +834,7 @@
 
 INLINE void CSusie::WritePixel(uint32 hoff,uint32 pixel)
 {
-        uint32 scr_addr=mLineBaseAddress+(hoff/2);
+        const uint16 scr_addr=mLineBaseAddress+(hoff/2);
 
         uint8 dest=RAM_PEEK(scr_addr);
         if(!(hoff&0x01))
@@ -861,7 +857,7 @@
 
 INLINE uint32 CSusie::ReadPixel(uint32 hoff)
 {
-        uint32 scr_addr=mLineBaseAddress+(hoff/2);
+        const uint16 scr_addr=mLineBaseAddress+(hoff/2);
 
         uint32 data=RAM_PEEK(scr_addr);
         if(!(hoff&0x01))
@@ -883,7 +879,7 @@
 
 INLINE void CSusie::WriteCollision(uint32 hoff,uint32 pixel)
 {
-        uint32 col_addr=mLineCollisionAddress+(hoff/2);
+        const uint16 col_addr=mLineCollisionAddress+(hoff/2);
 
         uint8 dest=RAM_PEEK(col_addr);
         if(!(hoff&0x01))
@@ -906,7 +902,7 @@
 
 INLINE uint32 CSusie::ReadCollision(uint32 hoff)
 {
-        uint32 col_addr=mLineCollisionAddress+(hoff/2);
+        const uint16 col_addr=mLineCollisionAddress+(hoff/2);
 
         uint32 data=RAM_PEEK(col_addr);
         if(!(hoff&0x01))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mednafen/src/lynx/sysbase.h 
new/mednafen/src/lynx/sysbase.h
--- old/mednafen/src/lynx/sysbase.h     2019-01-28 07:52:37.000000000 +0100
+++ new/mednafen/src/lynx/sysbase.h     2019-04-23 23:54:58.000000000 +0200
@@ -61,11 +61,6 @@
                virtual void    PokeW_CPU(uint32 addr,uint16 data)=0;
                virtual uint16  PeekW_CPU(uint32 addr)=0;
 
-               virtual void    Poke_RAM(uint32 addr,uint8 data)=0;
-               virtual uint8   Peek_RAM(uint32 addr)=0;
-               virtual void    PokeW_RAM(uint32 addr,uint16 data)=0;
-               virtual uint16  PeekW_RAM(uint32 addr)=0;
-
                virtual uint8*  GetRamPointer(void)=0;
 
 };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mednafen/src/lynx/system.h 
new/mednafen/src/lynx/system.h
--- old/mednafen/src/lynx/system.h      2019-01-28 07:52:37.000000000 +0100
+++ new/mednafen/src/lynx/system.h      2019-04-23 23:54:58.000000000 +0200
@@ -158,14 +158,6 @@
                inline void  PokeW_CPU(uint32 addr,uint16 data) { 
mMemoryHandlers[addr]->Poke(addr,data&0xff);addr++;mMemoryHandlers[addr]->Poke(addr,data>>8);};
                inline uint16 PeekW_CPU(uint32 addr) {return 
((mMemoryHandlers[addr]->Peek(addr))+(mMemoryHandlers[addr]->Peek(addr+1)<<8));};
 
-               //
-               // RAM
-               //
-               inline void  Poke_RAM(uint32 addr, uint8 data) { 
mRam->Poke(addr,data);};
-               inline uint8 Peek_RAM(uint32 addr) { return mRam->Peek(addr);};
-               inline void  PokeW_RAM(uint32 addr,uint16 data) { 
mRam->Poke(addr,data&0xff);addr++;mRam->Poke(addr,data>>8);};
-               inline uint16 PeekW_RAM(uint32 addr) {return 
((mRam->Peek(addr))+(mRam->Peek(addr+1)<<8));};
-
 // High level cart access for debug etc
 
                inline void  Poke_CART(uint32 addr, uint8 data) 
{mCart->Poke(addr,data);};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mednafen/src/ngp/TLCS-900h/TLCS900h_interpret.cpp 
new/mednafen/src/ngp/TLCS-900h/TLCS900h_interpret.cpp
--- old/mednafen/src/ngp/TLCS-900h/TLCS900h_interpret.cpp       2019-01-28 
07:52:37.000000000 +0100
+++ new/mednafen/src/ngp/TLCS-900h/TLCS900h_interpret.cpp       2019-04-23 
23:54:58.000000000 +0200
@@ -611,7 +611,9 @@
        //Undocumented mode!
        if (data == 0x13)
        {
-               mem = pc + (int16)fetch16();
+               const int16 disp = fetch16();
+
+               mem = pc + disp;
                cycles_extra = 8;       //Unconfirmed... doesn't make much 
difference
                return;
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mednafen/src/pce/huc6280_ops.inc 
new/mednafen/src/pce/huc6280_ops.inc
--- old/mednafen/src/pce/huc6280_ops.inc        2019-01-28 07:52:37.000000000 
+0100
+++ new/mednafen/src/pce/huc6280_ops.inc        2019-04-23 23:54:58.000000000 
+0200
@@ -547,7 +547,7 @@
        if(EmulateWAI)
        {
         if(next_event > 1)
-         ADDCYC(next_event - 1);
+         ADDCYC_MASTER(next_event - 1);
         LastCycle();
         break;
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mednafen/src/pce/pce.cpp new/mednafen/src/pce/pce.cpp
--- old/mednafen/src/pce/pce.cpp        2019-01-28 07:52:37.000000000 +0100
+++ new/mednafen/src/pce/pce.cpp        2019-04-23 23:54:58.000000000 +0200
@@ -44,7 +44,7 @@
 static const MDFNSetting_EnumList PSGRevisionList[] =
 {
  { "huc6280", PCE_PSG::REVISION_HUC6280, "HuC6280", gettext_noop("HuC6280 as 
found in the original PC Engine.") },
- { "huc6280a", PCE_PSG::REVISION_HUC6280A, "HuC6280A", gettext_noop("HuC6280A 
as found in the SuperGrafx and CoreGrafx I.  Provides proper channel amplitude 
centering, but may cause clicking in a few games designed with the original 
HuC6280's sound characteristics in mind.") },
+ { "huc6280a", PCE_PSG::REVISION_HUC6280A, "HuC6280A", gettext_noop("HuC6280A 
as found in the SuperGrafx and CoreGrafx I.  Provides proper channel amplitude 
centering.  Many games will have less clicking with the HuC6280A, but it may 
cause clicking in a few games designed with the original HuC6280's sound 
characteristics in mind.") },
  { "match", PCE_PSG::_REVISION_COUNT, gettext_noop("Match emulation mode."), 
gettext_noop("Selects \"huc6280\" for non-SuperGrafx mode, and \"huc6280a\" for 
SuperGrafx(full) mode.") },
  { NULL, 0 },
 };
@@ -333,7 +333,8 @@
 
 static void CDSettingChanged(const char *name)
 {
- SetCDSettings(true);
+ if(PCE_IsCD)
+  SetCDSettings(true);
 }
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mednafen/src/psx/cdc.cpp new/mednafen/src/psx/cdc.cpp
--- old/mednafen/src/psx/cdc.cpp        2019-01-28 07:52:37.000000000 +0100
+++ new/mednafen/src/psx/cdc.cpp        2019-04-23 23:54:58.000000000 +0200
@@ -1874,7 +1874,7 @@
 
   if(CommandLoc_Dirty)
    SeekTarget = CommandLoc;
-  else
+  else if(DriveStatus != DS_PAUSED && DriveStatus != DS_STANDBY)
    SeekTarget = CurSector;
 
   PSRCounter = 33868800 / (75 * ((Mode & MODE_SPEED) ? 2 : 1)) + 
CalcSeekTime(CurSector, SeekTarget, DriveStatus != DS_STOPPED, DriveStatus == 
DS_PAUSED);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mednafen/src/quicklz/quicklz.c 
new/mednafen/src/quicklz/quicklz.c
--- old/mednafen/src/quicklz/quicklz.c  2019-01-28 07:52:37.000000000 +0100
+++ new/mednafen/src/quicklz/quicklz.c  2019-04-23 23:54:58.000000000 +0200
@@ -39,12 +39,12 @@
        return -1;
 }
 
-__inline unsigned int hash_func(unsigned int i)
+static inline unsigned int hash_func(unsigned int i)
 {
        return ((i >> 12) ^ i) & 0x0fff;
 }
 
-__inline unsigned int fast_read(void const *src, unsigned int bytes)
+static inline unsigned int fast_read(void const *src, unsigned int bytes)
 {
 #ifndef X86X64
        unsigned char *p = (unsigned char*)src;
@@ -68,7 +68,7 @@
 #endif
 }
 
-__inline void fast_write(unsigned int f, void *dst, unsigned int bytes)
+static inline void fast_write(unsigned int f, void *dst, unsigned int bytes)
 {
 #ifndef X86X64
        unsigned char *p = (unsigned char*)dst;
@@ -118,7 +118,7 @@
 #endif
 }
 
-__inline void memcpy_up(unsigned char *dst, const unsigned char *src, unsigned 
int n)
+static inline void memcpy_up(unsigned char *dst, const unsigned char *src, 
unsigned int n)
 {
        // cannot be replaced by overlap handling of memmove() due to LZSS 
algorithm
 #ifndef X86X64
@@ -151,7 +151,7 @@
 #endif
 }
 
-__inline unsigned int fast_read_safe(void const *src, unsigned int bytes, 
const unsigned char *invalid)
+static inline unsigned int fast_read_safe(void const *src, unsigned int bytes, 
const unsigned char *invalid)
 {
 #ifdef memory_safe 
        if ((const unsigned char *)src + 4 > (const unsigned char *)invalid)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mednafen/src/settings-driver.h 
new/mednafen/src/settings-driver.h
--- old/mednafen/src/settings-driver.h  2019-01-28 07:52:37.000000000 +0100
+++ new/mednafen/src/settings-driver.h  2019-04-23 23:54:58.000000000 +0200
@@ -20,7 +20,7 @@
 bool MDFNI_SetSettingUI(const char *name, uint64 value);
 static INLINE bool MDFNI_SetSettingUI(const std::string& name, uint64 value) { 
return MDFNI_SetSettingUI(name.c_str(), value); }
 
-bool MDFNI_DumpSettingsDef(const char *path);
+void MDFNI_DumpSettingsDef(const char *path) MDFN_COLD;
 
 const std::vector<MDFNCS>* MDFNI_GetSettings(void);
 std::string MDFNI_GetSettingDefault(const char* name);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mednafen/src/settings.cpp 
new/mednafen/src/settings.cpp
--- old/mednafen/src/settings.cpp       2019-01-28 07:52:37.000000000 +0100
+++ new/mednafen/src/settings.cpp       2019-04-23 23:54:58.000000000 +0200
@@ -28,6 +28,7 @@
 #include <locale.h>
 #include <map>
 #include "settings.h"
+#include "settings-driver.h"
 #include "string/escape.h"
 #include <mednafen/string/string.h>
 #include "FileStream.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mednafen/src/ss/db.cpp new/mednafen/src/ss/db.cpp
--- old/mednafen/src/ss/db.cpp  2019-01-28 07:52:37.000000000 +0100
+++ new/mednafen/src/ss/db.cpp  2019-04-23 23:54:58.000000000 +0200
@@ -161,6 +161,7 @@
  { "T-1206G",  CPUCACHE_EMUMODE_DATA_CB },     // Street Fighter Zero (Japan)
  { "T-1246G",  CPUCACHE_EMUMODE_DATA_CB },     // Street Fighter Zero 3 (Japan)
  { "T-1215H",  CPUCACHE_EMUMODE_DATA_CB },     // Super Puzzle Fighter II 
Turbo (USA)
+ { "T-5001H",  CPUCACHE_EMUMODE_DATA_CB },     // Theme Park (Europe)
  { "GS-9113", CPUCACHE_EMUMODE_DATA_CB },      // Virtua Fighter Kids (Java 
Tea Original)
  { "T-15005G", CPUCACHE_EMUMODE_DATA_CB },     // Virtual Volleyball (Japan)
  { "T-18601H", CPUCACHE_EMUMODE_DATA_CB },     // WipEout (USA)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mednafen/src/types.h new/mednafen/src/types.h
--- old/mednafen/src/types.h    2019-01-28 07:52:37.000000000 +0100
+++ new/mednafen/src/types.h    2019-04-23 23:54:58.000000000 +0200
@@ -17,21 +17,26 @@
 //
 //
 //
-
-#ifdef __USING_SJLJ_EXCEPTIONS__
- #error "SJLJ-style exception handling will incur a significant performance 
penalty even when exceptions are not thrown, and thus an alternative(e.g. 
DWARF) should be used if at all possible."
-#endif
-
-#if defined(__PIC__) || defined(__pic__) || defined(__PIE__) || 
defined(__pie__)
- #if defined(__386__) || defined(__i386__) || defined(__i386) || 
defined(_M_IX86) || defined(_M_I386) //|| (SIZEOF_VOID_P <= 4)
-  #error "Compiling with position-independent code generation enabled is not 
recommended, for performance reasons."
- #else
+#ifndef MDFN_DISABLE_PICPIE_ERRWARN
+ #if defined(__PIC__) || defined(__pic__) || defined(__PIE__) || 
defined(__pie__)
   #warning "Compiling with position-independent code generation enabled is not 
recommended, for performance reasons."
  #endif
 #endif
 
-#if defined(__x86_64__) && defined(__code_model_large__)
- #error "Compiling with large memory model is not recommended, for performance 
reasons."
+#ifndef MDFN_DISABLE_NO_OPT_ERRWARN
+ #if defined(__GNUC__)
+  #if !defined(__OPTIMIZE__) && !defined(__OPTIMIZE_SIZE__)
+   #warning "Compiling without optimizations."
+  #endif
+
+  #if defined(__x86_64__) && defined(__code_model_large__)
+   #error "Compiling with large memory model is not recommended, for 
performance reasons."
+  #endif
+ #endif
+
+ #ifdef __USING_SJLJ_EXCEPTIONS__
+  #error "SJLJ-style exception handling will incur a significant performance 
penalty even when exceptions are not thrown, and thus an alternative(e.g. 
DWARF) should be used if at all possible."
+ #endif
 #endif
 //
 //


Reply via email to