0.173
-------


MAMETesters Bugs Fixed
----------------------
- 04965: [Interface] Games with no screen produce no "final.png" with -STR (Osso)
- 04919: [Flip Screen/Cocktail] (dynduke.c) All sets in dynduke.c: Most of background 
  missing on Flip Screen (Osso)
- 06181: [Documentation] (vicdual.c) tranqgun: The correct description is 
  "Tranquillizer Gun" (M.A.S.H.)
- 06170: [Compiling] OpenMP: OpenMP-enabled builds of MAME 0.172 fail to compile (Jind?ich Makovi?ka)
- 05897: [Misc.] (hornet.c) gradius4: "MASK ROM CHECK" in service mode fails (Ville Linde)
- 06176: [Crash/Freeze] (ksys573.c) All sets in ksys573.c using CD: Unable to boot (crazyc)
- 06019: [Interface] Wrong default bios outputted with -listxml command. (dankan1890)
- 06174: [DIP/Input] (twincobr.c) fshark, skyshark, hishouza, tp84, tp84a, tp84b: Dipswitch info
- 01792: [DIP/Input] (subsino2.c) bishjan: Keyboard mode does not work (Luca Elia)
- 06175: [Misc.] (apple2.c) apple2jp: Ctrl-T = Inverse kana ? (R. Belmont)
- 06182: [Core] (cgenie.c) All sets in cgenie.cpp: Crashing upon starting! (Fabio Priuli)
- 06163: [Misc.] (apple2e.c) apple2e: XPS Diagnostic IIe test failed! (R. Belmont)
- 06074: [DIP/Input] (glasgow.c) glasgow: Mouse no longer able to move chess pieces (Robbbert)
- 06173: [Core] All software saving SRAM: Software loaded outside of software list 
  (e.g. -cart PATH_TO_ROM) fails to save SRAM (dankan1890)
- 06172: [DIP/Input] (sms.c) Default input mapping for two paddle devices causes a conflict (AJR)
- 06178: [Crash/Freeze] liblrabl: Reset during second loop of attract mode. (Angelo Salese)

Source Changes
--------------
-new Android icon images [JacKc]

-Compressed internal layouts [David Haywood]

-TMS5220/5110 merge Part 1 [Lord Nightmare]

-Crystal Colours (Ver 1.02): Added default NVRAM. Also added more
 technical notes [Roberto Fresca]

-Added dedicated inputs for both Crystals Colours sets. Also added more
 technical notes. [Roberto Fresca]

-Iterate over core classes C++11 style [AJR]

-borrow string processing code from ui.cpp so that £ works in layouts
 (using UTF-8 encoding at least) [David Haywood]

-updated sc4fd7tha.lay with UTF8 encoding of £ sign [Krick]

-Recognize the full range of controller inputs [AJR]

-redump leapstertv [Team Europe]

-Initial Catalan translation [jmallach]

-naomi.c: add Derby Owners II protection key [MetalliC]

-Reduce the incidence of required_device<palette_device> in subdevices [AJR]

-UML: Added FCOPYI and ICOPYF instructions to pass raw data between
 integer and floating-point registers. [Ville Linde]

-mips3: Fix behavior for 32/64 bit mode floating point register
 aliasing.[Happy]

-Magic10 driver: Added technical notes, game status, defined clocks,
 fixed inaccurate notes, and some driver cleanups. [Roberto Fresca]

-screen: svg rendering from inside the rom. [O. Galibert]

-Updated Portuguese (Brazil) [Ashura-X]

-luaengine: add plugin options menu [Carl]

-Major Havoc: Updated Gamma CPU address decoding/mirroring from the
 schematic [Lord Nightmare]

-FB01: fix ROM label to match actual chip [anonymous]

-Magic Crystals: Improve ROM labeling for Japan set based on PCB
 picture, and noted that the Japan set we have is revision 2, but a
 revision 0 exists, undumped [Lord Nightmare]

-TMS5220: add a 'combined rs/ws write' function for systems which
 require both pins to change at exactly the same time and not to reset
 the chip. [Lord Nightmare]

-Revert software-installed slot/image options when changing software [AJR] 
 Remove emu.h's stealth include of emuopts.h through mconfig.h;
 reduce dependency on emuopts.h in other headers and source files.
 MCFG_CPU_FORCE_NO_DRC is now a CPU configuration parameter rather than
 a global one; it still works to override the -drc option setting.

-fix some missing gfx in bbusters / mechatt [dink]

-Make overscan on integer scaled targets optional (add option -intoverscan). [Calamity]

-luaengine: direct and region accessors [Carl]

-This one documents what I think is a real bug of the Japanese game
 Sports Pad Soccer: part of the player 2 input is read from player 1
 input instead. Also, reorganized code of the Japanese Sports
 Pad controller device and replace some PORT_CUSTOM/PORT_CHANGED
 callbacks with PORT_READ_LINE/PORT_WRITE_LINE. [Enik]

-Add experimental cheat lua plugin [Carl]

-Improvements to tape driver of hp9845b [F. Ulivi]

-info.cpp: Improved documentation of input devices in the -listxml
 output, since having just a generic 'number of buttons' is rather
 pointless in the context of home systems with configurable controllers
 (being them keyboards, keypads or joypads). Now the various
 controllers are listed separately with the number of buttons they
 have. Frontend authors who relied on the "buttons" attribute of the
 input node for any kind of filter shall now scan all available
 controllers and take the maximum among their "buttons" attribute
 (possibly discarding keyboards and keypads if they want) to recover
 the old value. [Fabio Priuli]

-info.cpp: Started to acknowledge PORT_16WAY inputs in -lx, since they
 were reported as 8-ways so far. [Fabio Priuli]

-Devfind revision phase 1, cleaning out some legacy stuff [AJR]
 * Eliminate the cached device_t::m_region pointer and its region()
    getter method. Devices that need to bind to a region with the same
    tag should use optional/required_memory_region or
    optional/required_region_ptr with DEVICE_SELF as the subtag; this
    improves error checking. (DEVICE_SELF has been moved to device.h
    for greater visibility in the source.)
 * Allow required/optional_region_ptr to specify a specific length
    which must match that of the region found.
 * Implement finder_base::finder_tag() getter for diagnostic purposes.
 * Perform some (not very efficient) validity checks on memory region
    finders instead of allowing them to automatically pass.
 * Privatize device_memory_interface::m_addrspace.

-Magic 10 driver: Added technical notes and a missing PLD dump. [f205v]

-Added m62(kidniki) to nl.lua. Started some experiments around parallel
 solving of linear equations. This code is not active. Fix kidniki
 audio performance. [Couriersud]

-plugins/timer: add sample plugin for game time [Carl]

-info.cpp: first attempt to fix the longstanding issue about inputs
 owned by devices being always tagged as P1 inputs in -lx.
 [Fabio Priuli]

-plugins/cheatfind: start lua cheat finder library [Carl]

-apple2: Additional work on the PC Transporter [Peter Ferrie, R. Belmont]

-Basic TCP server based on libuv [Inaki Baz Castillo,Miodrag Milanovic]

-intv: Converted controller inputs to be slot devices. [Fabio Priuli]

-intvecs: Converted hand controllers, keyboard and synth to be slot
 devices, by using a temporary hack to workaround the impossibility to
 plug the same device into 2 different slots as these keyboard require.
 [Fabio Priuli]

-Skeleton implementation for Universal windows main app classes. [Brad Hughes]

-String Translate for Chinese (Traditional / Simplified) [YuiFAN]

-diimage.cpp: Allow image devices to be configured with a fixed (not
 user selectable) piece of software and updated a few options and menu
 to acknowledge such possibility. [Fabio Priuli]

-macs.cpp: Converted to use generic cartslot with fixed software
 configuration. Cleaned up loading and banking systems in the driver as
 a result. [Fabio Priuli]

-Added extra bit as delay between bytes to make 1 stop bit work [Joakim Larsson]

-apple2: Further PC Transporter work.  V30 now boots. [Peter Ferrie, R. Belmont]

-mips3: Fixed DMULT and DMULTU in both interpreter and DRC modes. [marathonman]

-ng_aes.cpp: converted AES controllers to work through slot devices.
 Also, separated more clearly the CD component by the base unit.
 [Fabio Priuli]

-am9517: add clone with the non-standard mask behavior of the PC
 Transporter ASIC [Carl, R. Belmont]

-apple2: updated PC Transporter to use alternate DMAC emulation & fixed
 V30 clock. [Peter Ferrie, R. Belmont]

-apple2: PC Transporter: halt V30 properly on startup, XT has 8-bit
 ISA, improved 6502 CGA framebuffer writes. [R. Belmont]

-screen: Fix alpha handling, cdkong looks good now [O. Galibert]

-bgfx: Add data-driven render target clearing [Ryan Holtz]

-Significant speed improvement:
 * added a new solver using compressed row format
 * fixed sorting
 As a result, netlist performance on kidniki nearly doubled. The
 performance increase is mainly due to the fact that sorting decreases
 the number of operations for gaussian elimination of the kidniki
 matrix from ~7800 to 707. In addition, compressed row format improves
 L1 usage. [Couriersud]

-Eliminate device_t::static_config, a type-unsafe legacy feature. [AJR]

 *Rewrite or remove every last instance of MCFG_DEVICE_CONFIG and its
  two aliases, including within comments and dead code.

 *Make the Z80/Z180 daisy chain an interface that interfaces with the
  existing interface. Z8000 has been hooked up to this as well (p8000_16
  already configures it), but currently does nothing with it.

-mips3: Fixed interpreter bug where BADCOP exceptions would execute the
 faulting opcode twice. [Ryan Holtz]

-Update strings.po [aviloria]

-Update German GUI translation [rootfather]

-Added ImGui based debugger.  [Barry Rodewald]

-apple2e: fix C800 internal ROM reading [R. Belmont]

-New PlayChoice-10 BIOS (Single Screen, Freeplay fix, Newer?) [Firehawke]

-apple2: fixed inverse text drawing. [R. Belmont]

-Added HQ2x, HQ3x and HQ4x shaders.  [MooglyGuy,Jules Blok,Cameron Zemek,Maxim Stepin]

-soft is hard and hard is soft. Two is one and one is two. No wonder
 "-video accel" has substandard performance if opengl is disabled.
 [Couriersud]

-These init calls all returned false. No need for a return value in
 this case. [Couriersud]

-Iterate over devices C++11 style [AJR]

 Replace the old device_iterator and its specialized versions with
 functionally equivalent classes that use standard operators to yield
 references to devices/interfaces rather than pointers. With
 range-based for loops, they no longer have to be stored in named
 variables, though they can also be reused concurrently since the
 iteration state is now maintained by a subclass.
 Add a few more typical getters to device_t::subdevice_list.

-bgfx: Added SuperEagle shader. [Ryan Holtz]

-Refactored distortion pass [ImJezze]
 * separated curvature parameter into distortion, cubic_distortion and
    distort_corner
 * distortion and cubic_distortion can be negative, to compensate each
    other
 * distort_corner is intependent from the image distortion

-neogeo: reworked inputs to work through the slot device interface. you
 can now configure the 15-pin ports available in the multicart driver
 (neogeo) with the -crtl1 and -ctrl2 options. Thus, if you want to launch 
 janshin in neogeo with the mahjong control panel you shall now prescribe
    -edge "" -ctrl1 mahjong
 and set accordingly the dipswitch (the first option disables inputs
 from the edge connector). When you run single game drivers (e.g. mslug, 
 or kof94, etc.), instead, a unique controller is available and cannot 
 be modified. In particular, the janshin driver already comes 
 pre-configured in the proper way. [Fabio Priuli]

-Refactor OSD window.  [Brad Hughes]
 Unified renderer in osd_window as std::unique_ptr
 Made windows all std::shared_ptr<window_type> Made window lists
 std::list<std::shared_ptr<window_type>> Updated OSD SDL worker_param
 to not use malloc (not compatible with smart pointers) Made renderer
 pointer to window a weak reference. May not be available during
 destruction of the window.

-Alta Tensione: Added technical notes, game status, and patched the
 boot protection. [Roberto Fresca]

-Split UI and frontend part from core [Miodrag Milanovic]

-Implemented dynamic loading of precompiled solver code. [Couriersud]

-saturn.cpp: converted controllers to work through slot devices,
 cleaning up the related code. [Fabio Priuli]

-saturn.cpp:  Added support for SegaTap adapter (4 controllers) and 
 Sega Multitap adapter (6 controllers). Saturn Bomberman can now be
 played as intended. [Fabio Priuli]

-softlist.cpp: add support for "rom_ignore". [Fabio Priuli]

-itgambl2.cpp driver: Added technical notes and some clean-ups
 [Roberto Fresca]

-apple2: fixed Apple II J-Plus text drawing, and updated notes
 [R. Belmont]

-r9751: add more floppy debugging and fix DMA masking
 [Brandon Munger]

-ioport.cpp: extended core input to support up to 10 players.
 [Fabio Priuli]

-dumped Dreamcast bios MPR-21933, confirmed match MPR-21931 [CoolMod]

-sf.c: does not have COIN3, and protection MCU on sfj is an i8751 [Yu]

-cgenie.cpp: expanded .cas support so that also files created by
 Genieous emulator can be loaded. [Fabio Priuli]

-Added "selection" parameter to chain input sampler [ImJezze]
 * if specified all textures (.png) within the same directoy of the
    given texture will be selectable via slider in the UI
 * also added slider for "shadow mask tile mode" to HLSL chain

-bgfx: Ported xBR shaders from libretro. [Ryan Holtz, Hyllian]

-Archive handling improvements [Vas Crabb]
 * Improve error handling in 7zip file I/O code
 * Fix reading 7zip files >=4GB on LP32/LLP64 targets
 * Update to LZMA SDK to 15.14, supports new 7zip features
 * Stop relying on local hacks to LZMA SDK
 * Support most ZIP64 features excluding directory compression
 * Support LZMA-compressed files in ZIP archives
 * Support Info-ZIP UTF-8 file name fields
 * Fix phantom files/directories when browsing archives
 * Report archive handling errors

-Update to expat 2.1.1 for security and bug fixes [Vas Crabb]

-xbox\chihiro: usb is now partially usable [Samuele Zannoli]
 * control,bulk,interrupt transfers work
 * started hle simulation of usb devices on chihiro baseboard
 * there is a first implementation of xbox game controller
 * the chihiro bios can now enter system configuration menu

-hp9845: added capabilty to load option ROMs [F. Ulivi]

-ti99: Several code changes [Michael Zapf]
 * GROMs with clock input line and improved timing behavior
 * TMS9928A delivers GROMCLK if configured
 * TI-99/8 mainboard: implemented custom chips (vaquerro, 
   mofetta, amigo) for low-level emulation
 * fixed HOLD feature of TMS9995
 * moved v9938 from console to EVPC where it belongs, dropped videowrp,
 * fixed issues with paged37x cartridges
 * fixed issues with Horizon Ramdisk

-n64: Do SI dma transfer after delay, not before [Happy]

-tourvis.cpp: changed to use Software Lists, trimmed all ROMs to
  correct sizes, confirming that the majority match exactly the
  PCE roms (only 3 differ, Gomola Speed which could be an alt
  revision, R-Type II which has been hacked, and Be Ball where there
  is an unknown single byte change. [David Haywood]


New machines added or promoted from NOT_WORKING status
------------------------------------------------------
New 2001 (Italy, Ver. 2.00N) [f205v]
Ultraman Monster Battle [hap, Kevin Horton, Rik]
Crystals Colours (Ver 1.02) [Roberto Fresca, f205v]
Android (newer build?) [Chris Hardy]
Fidelity Sensory Chess Challenger 9 [hap, Berger]
Dragon's Heaven (development board) [Brian Hargrove]
Tiny Toon Adventures (prototype) (PlayChoice-10) [Tony Swann]
Tiger Copy Cat (2 versions) [hap, Sean Riddle]
Sushi Bar [colour thief, Ryan Holtz, Smitdogg, JordanRom, Mucci, F. Marsaud,
  King Hanco, Sonic, B. Munger, R. Gatto, Bigster, Dullaron, Brizzo, Shoutime,
  MetalliC, The Dumping Union]
Touch & Go (Korea, unprotected) [system11]
Pokonyan (Japan 940322) [sylphia]
Last Hope (bootleg AES to MVS conversion, no coin support)


New clones added or promoted from NOT_WORKING status
----------------------------------------------------
Operation Wolf (Japan, prototype) [caius]
Majestic Twelve - The Space Invaders Part IV (US)
  [Artemio Urbina, The Dumping Union]
Kamikaze (Potomac Games) [Blair Quinney]
Major Title 2 (World, set 2) [Porchy]
Atomic Robo-kid (set 2) [Alex Cmaylo]
Beast Busters (Japan, Version 2) [ShouTime]
Mystic Warriors (ver AAB) [Bill D / The Dumping Union]
Raiden DX (Japan, set 2) [Alex Cmaylo]
Vs. Excitebike (set EB4-3 E) [Matt Osborn]
Spelling B (1979 version) [hap, Sean Riddle]
Dragon Saber (World, DO2) [Layer from jammaplus]
1945k III (older, OPCX1 PCB) [system11]
Bestri (Korea, set 2) [system11]
DoDonPachi Dai-Ou-Jou (2002.10.07 Black Ver., bootleg Knights of Valour Super Heroes conversion)
Ketsui: Kizuna Jigoku Tachi (2003/01/01. Master Ver., bootleg cartridge conversion)
Espgaluda (2003/10/15 Master Ver, bootleg cartridge conversion)
Champion Number (V0.67) [Roberto Fresca, f205v]
Unitron 1024 [Felipe Sanches]


New machines marked as NOT_WORKING
----------------------------------
Konami Gradius (handheld) [hap, Sean Riddle]
Luna Park (ver. 1.2) [Roberto Fresca, f205v]
Jungle (VI3.02) [f205v]
Konami Lone Ranger (handheld) [hap, Sean Riddle]
Sonik Fighter (encrypted) [Roberto Fresca, Ioannis Bampoulas]
Fidelity Phantom [hap, Lord Nightmare]
Alta Tensione (ver. 2.01a) [Roberto Fresca, f205v]
Euro Double Star Record (ver.1.2) [Roberto Fresca, f205v]
Nu, pogodi! [hap, Igor]
Print Club 2 2000 Summer [Bill D, The Dumping Union]
Print Club 2 Kobe Luminaire '99 (Print Club Custom 3) (J 991203 V1.000) [Ryan Holtz, Bill D, The Dumping Union]
Print Club 2 Vol. 6 Winter (J 970121 V1.200) [Ryan Holtz, Bill D, The Dumping Union]
Print Club 2 Vol. 8 Summer (J 970616 V1.100) [Ryan Holtz, Bill D, The Dumping Union]
Print Club 2 Vol. 9 Autumn (J V1.100) [Ryan Holtz, Bill D, The Dumping Union]
Print Club Winnie-the-Pooh Vol. 2 (J 971218 V1.000) [Ryan Holtz, Bill D, The Dumping Union]
Print Club Winnie-the-Pooh Vol. 3 (J 980406 V1.000) [Ryan Holtz, Bill D, The Dumping Union]
Various Aristocrat MK5 and MK6 sets
Polaroid Instant Memories [Alex Cmaylo]

New clones marked as NOT_WORKING
--------------------------------
Wonder Boy (system 2, set 2, 315-5176) [Silvio Grazini]


New WORKING software list additions
-----------------------------------
coco_flop: Donkey Kong Remix [Sock Master]
megadriv.xml: F1 - World Championship Edition (US, Prototype) [oliverthepig]
neogeo.xml: Last Hope
lynx.xml: Zaku

New NOT_WORKING software list additions
---------------------------------------
pce_tourvision.xml: Dragon Saber - After Story of Dragon Spirit [system11]
pce_tourvision.xml: Bull Fight - Ring no Haja [system11]
pce_tourvision.xml: Parasol Stars


0.172
-------


MAMETesters Bugs Fixed
----------------------
- 06168: [Crash/Freeze] (neogeo.c) kof10th: Unable to start/Fatal error (ajrhacker)
- 06159: [Crash/Freeze] (triforce.c) triforce: Crash/Exception before OK (Osso)
- 06144: [Crash/Freeze] Running with -video d3d -numscreens 2 and above crashes MAME
- 06152: [Interface] "Show mouse pointer" option stays off (dankan1890)
- 06147: [Sound] (model2.c) daytona: Some songs can not be played and cause audio 
  to halt (R. Belmont)
- 06145: [DIP/Input] (astrocde.c) gorf and clones: Gorf Outputs missing Quark Laser 
  (Joystick) Lamp Output (David Haywood)
- 06143: [Documentation] They are "Master Sets", NOT "Originals" (dankan1890)
- 02389: [DIP/Input] (nbmj8688.c) housemnq, housemn2, bijokkog, bijokkoy: Inputs 
  slightly wrong for the LCD games. (cuavas)
- 06156: [Interface] a5200,a7800,smspal,sms1,sms1pal,aes,vectrex,a400,a800,c64,c128: 
  GUI software list cartridge picker fails to select cartridge

Source Changes
--------------

-Added data-driven shader system for BGFX renderer [Ryan Holtz]

 * Allows an arbitrary number of passes, with arbitrary connections
   between passes.
 * Ships by default with three effects: default, unfiltered, and hlsl
   * default: Simple bilinear stretch
   * unfiltered: Simple nearest-neighbor stretch
   * hlsl: A close reimplementation of the Direct3D HLSL shaders. Does
           not currently support bloom or vectors.
 * Select the "shader chain" you wish to use with -bgfx_screen_chains
 * Adjust the settings to your liking with slider controls, saving and
    loading settings and presets will be added in a future version.
 * See bgfx/chains/hlsl.json ans bgfx/hlsl/blit.json for JSON format
    rules.
 * For additional information, see the official MAME documentation.

-Improved Scanline Simulation [ImJezze]

 * Changed the amount of scanline darkness, a setting of 1.0 now
    becomes fully black (to get the same result as before, halve your
    current setting)
 * Scanline height now depends on the brightness of the underlying
    color
 * The amount of the scanline brightness and overdrive now depends on
    the scanline darkness
 * Renamed 'Scanline Screen Height' to 'Scanline Screen Scale' and
    'Scanline Indiv. Height' to 'Scanline Height'
 - Fixed Bloom Level Alignment
   * Fixed target dimensions of bloom levels, which results in much
      better alignment, especially for games with very low resolutions.
      Therefore, current bloom settings might appear less intense than
      before.
 - Quality and Performance improvements
   * HLSL now uses non-power-of-two-sized target surfaces (breaks
      compatibility with graphics cards based on R300/R400/NV30 and older)
   * HLSL target surfaces now have the size of the screen canvas
   * Removed HLSL pre-scale factor
   * HLSL now uses a sharp bilinear interpolation to pre-scale textures
      to screen canvas size, based on [Themaister]'s implementation
   * Improved overall performance. Based on the previously required
      pre-scale factors, speedups range 5-50% depending on graphics
      hardware, more if a higher prescale factor was used.
   * Improved shadow mask quality (pixel-perfect) in screen-mode
   * Fixed half source texel offset of bloom level alignment
   * Removed ./hlsl/artwork_support folder
   * All shaders after pre-scale are now based on screen coordinates
      (workaground until both raster and vector passes can work on texture
      coordinates)
   * Disabled distortion shader for more than one screen and for
      artworks in full mode, does not affect artworks in cropped mode
      (workaground until both raster and vector passes can work on texture
      coordinates)

-at: Created at motherboard device and split PCI and PS/2 machines into
 own files [Carl]

-UI [Maurizio Petrarota]
 * Enabled user interface navigation through UI_CONFIGURE button (tab
    key by default).
 * Added support for "covers" images collection.
 * Added support for "gameinit.dat".
 * Improved ROM-less checking at startup.
 * Improved vertical orientation rendering.
 * Fixed missing mouseover highlight.
 * Fixed search in software lists.
 * Fixed DATs reload after path changes.
 * Fixed software load failure from BIOS submenu.
 
-Bloom refactoring [ImJezze]
 * Calculation of bloom dimensions is now done only once, when render
    target is created.
 * Reduced blur width for non-vector screens.
 * Implemented shadow UV option for source tile mode.

-apple2gs.cpp: Dumped the 341-0749 ROM and confirmed the 341-0728 Apple
 IIGS ROMs. [Brian Troha]

-Type-safe C++ printf analog and vector-backed iostreams [Vas Crabb]
 * Supports most C99, glibc, SUS and MSVCRT format specifications
 * Allows formatting any object with stream output operator with %s
 * Replaces strformat, strprintf and strcatprintf
 * Move to type-safe templates for logerror and popmessage
 * Remove now-unnecessary I64FMT from calls to logerror/popmessage
 * Eliminate core_i64_format functions for the most part

-Modernised much of the file handling code [Vas Crabb]
 * Made core_file, osd_file, and avi_file and polymorphic classes
 * Moved osd_file implementations to shareable OSD module code
 * Made zip/7z implementations of archive_file with common API
 * Prefer destructors over explicit close functions
 * Made APIs supply smart pointers
 * Pass std::string though lots of APIs rather than C string pointers
 * Added methods for flushing user-space file buffers
 * Made archive_file create/destroy thread-safe
 * Fixed buffer overrun when walking zip ECD
 * Fixed some resource leaks in file handling code
 * Fixed edge cases where incorrect error code was returned on Windows
 * Added Solaris PTY implementation
 * Support ~/$FOO/${BAR} expansion with SDL OSD
 * Made emu_file handle zip and 7z archives identically
 * Search archives with CRC+path, CRC+partial path, CRC, path, partial
    path when loading ROMs/artwork/cheats/etc.
 * Added support for 7z archives via zippath API
 * Support 7z archives for fullpath loading and media file manager
 * Made romcmp tool support 7z archives

-Improved OSD font API [Vas Crabb]
 * Release font handles on destruction
 * Moved font enumeration into OSD, implement for SDL, Windows, OSX
 * Fixed drawing characters outside Unicode BMP with sdl_ttf
 * Support TTC fonts with sdl_ttf
 * Separated font display names from configuration names
 * Made OSX font configuration name the PostScript face name
 * Made sdl_ttf configuration name Family|Style
 * Supply ui_small font as a BDF file with Adobe glyph names

-Fixed stack smash bugs in INP read/write and better encapsulate the INP
 header I/O code (thanks Tafoid for reporting), fix divide-by-zero in
 pathological case of zero-frame recording [Vas Crabb]

-Fixed file naming issue when creating new image from internal file
 manager with media loaded (thanks BIOS-D for reporting) [Vas Crabb]

-Fixed many mismatched free() / delete / delete [] errors [Vas Crabb]

-Cleaned up primary.fx [ImJezze]
 * Split primary.fx into 3 techniques for vector buffer, screen
    and UI pass
 * Moved register_texture() for shaders outside of texture_info
    creation
 * Added render_primitive parameter to register_texture(); currently
    unused
 * Removed other unused register_texture() definition

-IGS009 driver improvements: Added both missing PPI8255 devices and
 routed all inputs/outputs through them. Derived a memory map for Grand
 Prix '98, that seems to lacks of these devices. [Roberto Fresca]

-Rewrote input routines as modules [Brad Hughes]

-Reparented all sets of IGS Jingle Bell. Added technical information
 about the hardware [Roberto Fresca]

-Few miscellaneous N64 changes / improvements [Happy]
 * Changed MemPak formatting code to better document actual format.
 * Avoid adjusting screen timings when VI blank video mode set.
 * Fixed: PIF reportedly only clears top bit of status byte.
 * Fixed: DD read fail needs to mask against head as well as track.

-Fixed flipped sprite positioning in toypop [Katsuhiko Kagami]

-crazybon improvements [Vas Crabb, Ioannis Bampoulas]
 * Updated DIP switch descriptions/defaults according to manual
 * Hooked up reel stop buttons and add to layout

-Added original Dyna Cherry Master '99 QL-1 V9B.00 set [Vas Crabb, Ioannis Bampoulas]
 * Renamed existing set to cmast99b - it's hacked to remove Dyna name
 * Added DIP switch settings and defaults from manual, nothing confirmed
 * Confirmed correct ROM loading
 * Added notes, including how to reach input test

-newbrain: Dumped the COP internal ROM. [Chris Despinidis] 

-newbrain: Rewrote the driver to modern standards. [Curt Coder] 

-cop400: Implemented the MICROBUS interface. [Curt Coder]

-peplus.cpp: Added dump of cap1144.u50 [Badbaud]

-segam1audio: Fixed ROM mapping (MT6147) and corrected authorship. [R. Belmont]

-Butterfly Dream 97: Created its own machine driver. Perfectly decoded
 graphics for gfx bank 1. [Roberto Fresca]

-Butterfly Dream 97: Decoded graphics for gfx bank 2. [Roberto Fresca]

-NoteTaker: Documented more multiprocessor related addresses, fixed some
 address map issues. [Lord Nightmare]

-HLSL presets [ImJezze]
 * Added general presets for raster and vector screens
 * Added special presets for Game Boy (monochrome LCD) and Game Boy
    Advance (color LCD)

-ibm5170.xml: Added SICOS mouse driver and SICOS Paint. [Curt Coder]

-Super Poker: Added the missing PPI 8255s and routed the involved
 inputs/outputs through them. 3super8 has PPI initialization
 routines, but seems to be a leftover since it lacks them. Also
 cleaned up the driver and added technical notes. [Roberto Fresca]

-Added layout for Frankie Dettori's 7th Heaven [John Parker]

-NoteTaker: Hooked up more of the IOCPU I/O registers. Separated reset
 functions for IOCPU and EmulatorCPU. [Lord Nightmare]

-NoteTaker: Updated documentation further. Added commented out I/O map
 for the EmulatorCPU [Lord Nightmare]

-Rewrote Super Cross II driver due to relicensing [Angelo Salese]

-NoteTaker: Implemented the DAC, DAC Timer, and DAC FIFO, the BIOS now
 beeps on boot. Fixed several wrong polarity status bits. Documented
 where the framebuffer lives. Better documented the boot process.
 Hooked up the VSync Interrupt. [Lord Nightmare]

-Updated Frankie Dettori layout to MAME 'dark' style [John Parker]

-svi318: Rewrote driver. Supported are the SVI-318 and SVI-328
 systems, and a slot system which adds support for the following
 expander slot options:
 * SV-601 Super Expander
 * SV-602 Single Slot Expander
 * SV-603 Coleco Game Adapter (no controller support yet)
 The slot expander cards enable support for the standard
 Spectravideo expansion slots. Of those, the following
 cards are fully emulated:
 * SV-801 Disk Controller (with 2 disk drives)
 * SV-802 Centronics Printer Interface
 * SV-803 16k memory expansion
 * SV-805 RS-232 Interface
 * SV-806 80 column card
 * SV-807 64k memory expansion [Dirk Best]

-NoteTaker: Hooked up screen framebuffer. Hacked the Odd/Even interrupt
 so screen drawing happens. [Lord Nightmare]

-NoteTaker: Fixed another typo in BIOS 1.5, no longer runs off into the
 weeds and actually tries to load from floppy now. Needs FDC hooked up
 still. [Lord Nightmare]

-r9751 improvements [Brandon Munger]
 * Fixed more DMA issues and added more logging
 * Moved PDC floppy command trigger to correct register

-Added common debugger commands to global menu bar in OSX [Vas Crabb] 
 Also fixed occasional crash in Copy Visible.  Note that copy
 visible, paste, toggle breakpoint, and view options still require you
 to use context menus in windows.  Debug/Run menus only work when a
 debugger window has focus, so Break is less useful than it could be.

-floppy: Fixed subtle interaction between wd_fdc initial restore and floppy reset [O. Galibert] 

-IGS Super Poker: Decrypted all the US/UA sets. They are still not
 working due to hardware differences with the former ones laying in the
 driver. I/O are driven through IGS custom IC's instead of 2x PPI8255
 devices. [Roberto Fresca]

-NoteTaker: Attached FDC and floppy drive. [Lord Nightmare]

-NoteTaker: Began to hooking up DiskReg register. [Lord Nightmare]

-netlist updates: [Couriersud]
 * First steps to move towards c++11.
 * Based plist on std::vector
 * Replaced pstack with std::stack
 * Removed pnamed_list
 * Use c++ "for each" in a number of places
 * Fixed two "time bombs" 

-Implemented integer scaling in core renderer [Calamity]
 * Moved -unevenstretch option to core renderer.
   -unevenstretch:   fractional stretching (default)
   -nounevenstretch: integer scaling
 * Added new options to core renderer:
   -unevenstretchx:  fractional stretching on horizontal axis, integer
                     scaling on vertical axis
   -intscalex:       horizontal integer scale factor, default is 0 (auto)
   -intscaley:       vertical integer scale factor, default is 0 (auto)

-Symbolics 3600: Added more documentation of the FEP PCB from PCB pictures.
 [Lord Nightmare]

-Symbolics 3600: Fixed ROM mapping, add a few more PLD/PLA/PAL labels.
 [Lord Nightmare]

-A lot of TTF fonts (including C/J/K fonts like unifont) do not have a
 type attribute "Regular". This fix will load the first font found if
 no "bold" "bold italic" "italic" or "regular" attribute was found.
 [Couriersud]

-Neo-Geo updates: [JacKc]
 * Added correct ROM labels and locations for ASOII and Burning Fight
    early prototypes
 * Added ROM locations for Last Resort prototype
 * Marked alpham2p AES VERSION
 * Marked burningfp AES VERSION
 * Marked lresortp MVS VERSION

-Converted shanghai.cpp to use the non-legacy hd63484 video device.
 [Angelo Salese]

-Rewrote overly complex rawinput_device_improve_name function for
 rawinput module, plus fixing some other defects in input modules as
 detected by coverity. [Brad Hughes]

-Added support for Raspberry Pi cross-compile [Miodrag Milanovic]

-pcat_dyn: Added sound and marked toursol working [Carl]

-Symbolics 36xx: Renamed driver from s3600 to s3670 to better reflect
 the actual model of what we're trying to emulate. Added more memory
 maps from the patent, but these do not seem to match the 3670 exactly,
 more investigation is required. [Lord Nightmare]

-Added additional sanity checking to the tms9927/crt5027 core.
 [Lord Nightmare]

-Software List cart added (crvision): Tennis (Dick Smith, earlier, 6k
 Cart  [Luca Antignano, Herman Heritage]

-apple3 updates: [R. Belmont, robj]
 * RAM is always present at FFCx, eliminated previous need for hack
 * VIAs are clocked by PRE1M (1 MHz), fixes Confidence Test
 * Fixed joystick reading; works in Sandman and Atomic Defense
 * Hooked up HBlank input to VIA 1 PB6
 * Support raster splits; Atomic Defense is playable (pick joystick B)
 
-symbolics.cpp: Added model list of the various Symbolics Inc. Lisp
 machines [Ian F./trintr0n]

-NAOMI/Triforce/Chihiro: Updated documentation [f205v, MetalliC]

-Implemented integer scaling in core renderer [Calamity]

-Coco Loco: Added technical notes [Roberto Fresca]

-nbmj8688 improvements [Vas Crabb]
 * Improved mapping of start buttons in two-player cocktails with LCDs
 * Flipped Player 2 view in two-player games with LCDs to better represent
    what they see from their side of cocktail cabinet
 * Added DIP locations for  and
    livegal
 * Documented DIP switch functions/locations for bijokkoy, bijokkog,
    housemnq, housemn2, livegal, mcitylov, iemotom, ryuuha, kanatuen,
    kyuhito and idhimitu
 * Made analyser switch a toggle for many games

-Corrected ROM names in seganinj set [Mathieu Patard]
 * Also added correct 'rev A' sprite ROM (the program ROMs were rev. A,
    looks like this ROM was missed when it was dumped before)

-Netlist: code maintenance [Couriersud]
 * Renamed netlist_analog_t to analog_t
 * Straightened object model
 * Reduced access to member variables
 * Use pvector<analog_net_t::list_t> for groups.
 * Simple coverity fixes.

-Symbolics 3670: Added a lot more notes about the FEP/NFEP board PALs and
 PROMs noting where the equations for various PALs/PROMs are in the
 patent [Lord Nightmare]

-Symbolics 3670: Traced out more of the FEP v24 I/O memory map based on
 the PALs from the patent [Lord Nightmare]

-apple3: Started filling in the software list. [R. Belmont]

-Improved documentation for SMS software and input devices [Enik]

-apple2: Started reverse-engineering the AE PC Transporter card [R. Belmont]

-Initial work to make MAME work on Android [Miodrag Milanovic]

-sliders.cpp: Made Alt+Arrow minimize or maximize value. [Ryan Holtz]

-Swapped the endianess of the md_slot device bus to big endian, fixing
 megadriv cheats  [Pugsy]

-Initial Z80SCC baudrate generator support [Joakim Larsson]

-svga_s3: Fixed potential crash when hardware pointer is at the edge of
 VRAM, and fixed viewport scrolling in XF86_S3. [Barry Rodewald]
 
-atarittl.cpp: Bugle ROM redumped for Steeplechase. [Andrew Welburn]


Translations added or modified
------------------------------
Chinese (Traditional / Simplified) [YuiFAN]
Dutch [Wilbert Pol]
French (Belgium) [Mevi]
German [RafTacker, rootfather]
Greek [BraiNKilleRGR]
Italian [AntoPISA, Angelo Salese, Fabio Priuli]
Japanese [Katsuhiko Kagami, Vas Crabb]
Portugese (Brazil) [Ashura-X]
Russian [MetalliC]
Serbian (Latin/Cyrillic) [Damjan, Miodrag Milanovic]
Spanish [A.Viloria]

New machines added or promoted from NOT_WORKING status
------------------------------------------------------
Lock On (Philko) [marcus, David Haywood]
Chicken Draw (2131-04, U5-01) [Kevin Eshbach, The Dumping Union]
Fire Ball (FM Work) [Team Europe, David Haywood]
Android (early build?) [Ryan Holtz, David Haywood]
Magical Touch [Carl]
Tournament Solitaire (V1.06, 08/03/95) [Carl]
Conic Electronic Football [hap, Sean Riddle]
Gakken FX-Micom R-165, aka Tandy Radio Shack Science Fair Microcomputer Trainer
  [hap, Sean Riddle]
Castle Toy Einstein [hap, Sean Riddle]
Coleco Head to Head Basketball/Hockey/Soccer [hap, Sean Riddle]
Bandai Burger Time [hap, Kevin Horton, Rik]
Bandai Pengo [hap, Kevin Horton, Rik]
Bandai Zaxxon [hap, Kevin Horton, Rik]
Gakken Jungler [hap, Kevin Horton, Rik]


New clones added or promoted from NOT_WORKING status
----------------------------------------------------
Batsugun (Korean PCB) [Alex Cmaylo]
Player's Edge Plus (X002252P+XP000050) Shockwave Poker [BrianT]
Player's Edge Plus (X002309P+XP000038) Triple Double Bonus Poker
  [BrianT]
Pleiads (Niemer S.A.) [pako ikarihardmods, Roberto Fresca]
Armed Police Batrider (Hong Kong) (Mon Dec 22 1997)
  [Trap15, The Dumping Union]
Jingle Bell (EU, V141) [Roberto Fresca, Ioannis Bampoulas]
Knock Out!! (bootleg, set 3) [Paul Hogger]
Cabal (UK, Trackball) [caius]
Hipoly (bootleg of Hyper Olympic) [Roberto Fresca, Peter Weuffen]
Last Resort (prototype) [Chris Ransley]
Crazy Climber (Spanish, Rodmar bootleg) [A.R.P.A.]
Buccaneers (set 3, harder) [system11]
My Hero (bootleg, 315-5132 encryption) [Andrew Welburn]
Coco Loco (set 2) [AUMAP, Roberto Fresca]
Major Title 2 (World, alt sound CPU) [Mathieu Patard]
Pac-Man (SegaSA / Sonic) [A.R.P.A.]
Come Come (Petaco SA bootleg of Puck Man) [Manuel Giron]
Come-Cocos (Ms. Pac-Man) ('Made in Greece' Herle SA bootleg) [Heckler]
Moon Cresta (SegaSA / Sonic) [Roselson (from AUMAP)]
Pac-Man (Moon Alien 'AL-10A1' hardware) [caius, Joachim Puster]
Wave Runner GP (original, Rev A) [Arzeno Fabrice]
Spartan X (Tecfri hardware bootleg) [farzeno, rockman, David Haywood]
Toki (US, prototype?) [Kevin Eshbach]
M.A.C.H. 3 (set 2) [Matt Ownby]
M.A.C.H. 3 (set 3) [??]
Apple IIgs (ROM03 late prototype?) [Brian Troha]
Super Bishi Bashi Championship (ver KAB, 3 Players) [Skate]
Pac-Gal (set 2) [kurobee]


New machines marked as NOT_WORKING
----------------------------------
Lucky Bar (W-4 with mc68705 MCU) [Roberto Fresca, Ioannis Bampoulas]
Cherry Angel (encrypted, W-4 hardware)
  [Roberto Fresca, Ioannis Bampoulas]
Sharp Wizard OZ-750 [Sandro Ronco]
Butterfly Dream 97 / Hudie Meng 97 [Roberto Fresca, Ioannis Bampoulas]
Super Poker (v306US) [Roberto Fresca, Ioannis Bampoulas]
Symbolics 3600 [trinitr0n/Ian F., Lord Nightmare]
Cherry Master '99 (V9B.00) [Vas Crabb, Ioannis Bampoulas]
Konami Contra (handheld) [hap, Sean Riddle]
Super Game (Sega Master System Multi-game bootleg) [Astroblaster] (incomplete dump)
Game Tree (PSE) [Andrew Welburn]

New clones marked as NOT_WORKING
--------------------------------

Coco Loco (set 3) [AUMAP, Roberto Fresca]
various Super Poker sets 
 - (v205US), (v203US), (v200UA), (v102UA) [Roberto Fresca, Ioannis Bampoulas]
 - (v114IT) [Mirko Buffoni, Roberto Fresca]
 - (v116IT-MX) [MiX, Roberto Fresca]
various Jingle Bell sets 
 - (US, V157), (EU, V155), (EU, V153) [Roberto Fresca, Ioannis Bampoulas]
Sega Ninja (315-5113) [Mathieu Patard]

New WORKING software list additions
-----------------------------------

tutor.xml:
Super Bike (Jpn) [Jim]
Battle Fighter (Jpn) [Jim]
4-nin Mahjan (Jpn, set 2) [Jim]

crvision.xml
Tennis (Dick Smith, earlier, 6k Cart)  [Luca Antignano, Herman Heritage]

apple3.xml
Atomic Defense [R.Belmont]
Tic-Tac-Toe [R.Belmont]
+ more

New NOT_WORKING software list additions
---------------------------------------

gamate.xml:
GP Race [Peter Wilhelmsen]
