0.189
-----

MESSUI:
=======
Changes:
- Another big rewrite due to new code that was added to the core.
- History indexing speed was improved.
- Software displays will change if slots added that add extra media devices or enable extra software lists.
- Many, many other small changes, too many to list individually
- The mame_g/mess_g.ini and mameui/messui.ini files have a new format. All existing settings will be lost.
- The new default window size has been expanded from 800x600 to 1024x768.


Note:
- The new code we've had problems with has been largely stabilised, and has extra work done to make it more stable than official MAME. If you find that MAME crashes when changing slots or software, give MAMEUI a try.
- In the MAME internal UI, selecting Configure Machine then Video Options will crash. MAME devs are looking into it.
- When you first try setting up MAMEUI, there's a problem with the splitters covering up the list of games. There's a workaround:
"Start MAMEUI. Drag out the bottom-right corner to expand it to the desired size (even though it looks like crap). Close it. Open it. Now you can adjust the splitters and it will look ok. Close it again to save the settings. Next time you open it, everything will be fine."


MAMETesters Bugs Fixed
----------------------
- 06639: [Crash/Freeze] (coco3.cpp) coco3, coco3h: Crash of emulated system accessing multiple floppy drive [Dirk Best].
- 06640: [Core] (coco3.cpp) coco3, coco3h: TRS-80 Color Computer FDC data corruption issue [Dirk Best].
- 06641: [Color/Palette] (pce.cpp) pce [sonson2]: Black & White mode doesn't work properly [Angelo Salese].
- 06649: [Interface] ng_cthd_prot: Wrong name (Neo Goe instead of Neo Geo) [Robbbert].
- 06657: [Interface] (c64.cpp) c64: Selecting a slot to fill for "EXP" causes Fatal Error [Nathan Woods].

New working machines
--------------------
China Education Computer I [R. Belmont, Jorma Honkanen]
Double Dribble (Konami handheld) [hap, Sean Riddle]
Garfield (Konami handheld) [hap, Sean Riddle]
Kontron PSI98 [Dirk Best, rfka01]
NFL Football (Konami handheld) [hap, Sean Riddle]
The Adventures of Bayou Billy (Konami handheld) [hap, Sean Riddle]

New working clones
------------------
Fidelity Sensory Chess Challenger 12 [hap, Berger, yoyo_chessboard]
Mephisto Nigel Short [Sandro Ronco]
Mephisto Polgar 10MHz [Sandro Ronco]
Mephisto Portorose 68000 [Sandro Ronco]
Mephisto Portorose 68020 [Sandro Ronco]

Machines promoted to working
----------------------------
Mephisto Academy [Sandro Ronco]
Mephisto Almeria 68000 [Sandro Ronco]
Mephisto Almeria 68020 [Sandro Ronco]
Mephisto Berlin Pro 68020 [Sandro Ronco]
Mephisto Genius 68030 [Sandro Ronco]
Mephisto Polgar [Sandro Ronco]

Clones promoted to working
--------------------------
BBC Master Turbo [Nigel Barnes]
Mephisto Berlin Pro London Upgrade [Sandro Ronco]
Mephisto Genius 68030 London Upgrade [Sandro Ronco]
Mephisto London 68020 [Sandro Ronco]
Mephisto Lyon 68000 [Sandro Ronco]
Mephisto Lyon 68020 [Sandro Ronco]
Mephisto Vancouver 68000 [Sandro Ronco]
Mephisto Vancouver 68020 [Sandro Ronco]

New machines marked as NOT_WORKING
----------------------------------
AT&T Teletype 4425 [shattered]
Access Virus A [R. Belmont, absence]
Access Virus B (Ver. T) [R. Belmont, absence]
Access Virus C [R. Belmont, absence]
Access Virus Classic [R. Belmont, absence]
Access Virus Rack XL [R. Belmont, absence]
Access Virus Rack [R. Belmont, absence]
Altos 8600 [Carl, Al Kossow]
ControlID X628 fingerprint reader [Felipe Sanches]
GameCube (Japan) [Dirk Best]
Kurzweil K2000 [R. Belmont]
Learning-Window Teaching Machine (Rev 3) [Kevin Horton]
Machinedrum MK2 [R. Belmont, absence]
Mannesmann Kienzle System 9002 Terminal [Miodrag Milanovic]
Mephisto RISC 1MB [Sandro Ronco]
Monomachine SFX6 MK2 [R. Belmont, absence]

New clones marked as NOT_WORKING
--------------------------------
Econet X25 Gateway [Nigel Barnes]
GameCube (Brazil) [Dirk Best]
GameCube (EUR) [Dirk Best]
GameCube (USA) [Dirk Best]
Henson CFA 3000 [Nigel Barnes]
Learning-Window Teaching Machine (French) [Kevin Horton]
Learning-Window Teaching Machine (Rev 1) [Kevin Horton]
Learning-Window Teaching Machine (Rev 2) [Kevin Horton]
Mephisto RISC II [Sandro Ronco]
Spiel Master (German) [TeamEurope, Kevin Horton]

New working software list additions
-----------------------------------
apple2: Nightmare Gallery [Ian B.].
bbc_flop_80186: Master 512 Technical Guide Programs [Nigel Barnes].
bbc_flop_z80: Double Density CP/M [Nigel Barnes].
bbcb_flop: The Acornsoft Hits Vol.1, The Acornsoft Hits Vol.2, Centre Ville, Chick Chase, The Christmas Adventures of 4-T and his Friends, The Fantastic Adventures of 4-T, First Filer, The Great British Fun Run, Integra Windows 1.00, Look After Yourself!, Knitwear Designer, Modem Master, Note Invaders, Numbers and Pictures, NumbersCope, Pirate, The Quill (A00), The Quill (A03), Rhythm Maker, Science - Start Here!, Shape Up, Snapple Hopper, Spell!, Starspell Plus, TimeShare, Trivial Pursuit - Baby Boomer Edition, Trivial Pursuit - Genus Edition, Trivial Pursuit - Young Players Edition, Word Skill [Nigel Barnes]. BeebSID 1-17, Beeb SID Quiz [PitfallJones].
bbcm_flop: Morley Hard Disc Utilities v3.00 [Nigel Barnes]. SID Music 1, Sid Music 2 [Tom Walker].
c64_cass: Shado BBC Emulator Software [Curt Coder].
electron_flop: Electron User Group #00-#74 (5.25"), Starspell Dictionary Disk (3.5"), Starspell Dictionary Disk (5.25") [Nigel Barnes].
fmtowns_cd: DOR Special Edition '93 (alt), Gokko Vol. 03 - Etcetera [r09, redump.org]. Europa Sensen, Inindou - Datou Nobunaga, Nobunaga no Yabou - Bushou Fuunroku [r09, Reuental]. Nihon Mukashibanashi, The Queen of Duellist Gaiden Alpha Light [r09, yukin/Tokugawa Corporate Forums].
fmtowns_flop: Illusion City - Gen'ei Toshi, Ving Soft Collection [r09, yukin/Tokugawa Corporate Forums].
ibm5150: B.A.T. [ArcadeShadow]. Superbase 5 Demo [breiztiger].
ibm5170: B.A.T. II, Wing Commander, Wing Commander: The Secret Missions, Wing Commander: The Secret Missions 2, Wing Commander II - Vengeance of the Kilrathi [ArcadeShadow]. RobotC2 Demo [breiztiger]. Diagnostics Diskette for IBM Personal System/2 model 70/80 (v1.06, Finnish) [Curt Coder]. Ami [Justin Kerk].
lynx: Crystal Mines II - Buried Treasure (Euro, USA) [anonymous].
pico: Anpanman Pico Wakuwaku Pan Koujou (Jpn), Ett Ar med Nalle Puh (Swe) [TeamEurope, The Dumping Union].
sms: Alex Kidd in Miracle World 2 (World, hack) [Shideravan].

Software list items promoted to working
---------------------------------------
bbc_flop_6502: 6502 Development Package, Bitstik Graphics System, Bitstik 2, Econet Level 2 Fileserver Software, Hi-InterSheet, Hi-View, Hi-Wordwise Plus [Nigel Barnes].
bbc_flop_65c102: 65C102 Co-Processor Support Disc [Nigel Barnes].
bbc_flop_68000: Casper Support Discs [Nigel Barnes].
bbc_flop_80186: BBC Master 512 System Discs, Dabs Shareware Vol.1, Dabs Shareware Vol.2 [Nigel Barnes].
bbc_flop_z80: Acorn CP/M System Discs, Acorn CP/M Program Discs, Colossal Cave [Nigel Barnes].

New NOT_WORKING software list additions
---------------------------------------
pico: Lejonkungen Aventyr (Swe) [TeamEurope, The Dumping Union].
princ: Hobby Club, Kodomo no Omacha [TeamEurope].

Translations added or modified
------------------------------
Chinese (simplified) [YuiFAN]
Chinese (traditional) [YuiFAN]
German [RafTacker]
Greek [BraiNKilleRGR]
Italian [theheroGAC]
Japanese [Vas Crabb]
Portuguese (Brazil) [Ashura-X, Felipe Sanches]
Russian [MetalliC]
Serbian [Vas Crab, Midrag Milanovic]
Serbian (Cyrillic) [Vas Crab, Midrag Milanovic]
Spanish [A. Viloria]
Swedish [Joakim Larsson Edstrom]
Turkish [kadireksi]

Source Changes
--------------
- Added very preliminary PC9801 AMD98 sound board emulation [Angelo Salese].
- ioport.cpp: Log explicit error if inp file isn't found on playback, added error code number for other errors. [Angelo Salese].
- jangou_blitter.cpp: Rewrote blitter setters [Angelo Salese].
- luaengine: Added debugger_manager support [Carl].
- plugins/cheat: Catch errors in cheat scripts, added preliminary breakpoint/watchpoint support [Carl].
- plugins/gdbstub: Added WIP gdbstub plugins [Carl].
- plugins/data: Added MARP scores [Carl].
- a590: Corrected filenames and added undumped 4.6 and 5.92 versions [Dirk Best].
- jvc_dsk: Autodetect double-sided floppy images without header (github issue #2405), improved support for headerless OS-9 images [Dirk Best].
- Added Kontron PSI98 driver: System is fully working with minor issues, you can boot KOS and CP/M 2.2 (images are in the software list). Still missing is SASI and the ECB slot system with cards. Added keyboard slot interface, created skeleton for keyboard, added HLE ASCII keyboard as default. Added software list [Dirk Best].
- upd765 improvements: Don't instantly finish the RECALIBRATE command (fixes accessing second drive on psi98).  Made SEEK also take some time (fixes KOS FORMAT command on psi98) [Dirk Best].
- Added Nintendo GameCube skeleton driver. Decrypts the IPL and the CPU executes the first few instructions [Dirk Best].
- Overhauled internal UI: Use proper font metrics and handle space glyphs with null bounding box on OS X. Patched GNU xgettext to support C++14 parsing so localisations can be updated. Restored ability to localise info box headings. Fixed info box navigation when system selection menu doesn't have focus. Fixed keyboard navigation of software filter box, added support for home/end to jump to beginning/end of filter list. Removed hacks in selector menu tying it to implementation details of other menus. Improved encapsulation and reduced code duplication in system/software selection menus. Fixed text alignment/gutters in filter list, info box and DAT view. Eliminated use of hairline spaces for alignment in the info box. Added indication for presence of analog controls and keyboard inputs in info box. Added support for mouse wheel scroll in info box. Allowed some character input events to be coalesced (reduces lag in live search with long lists). Fixed software art/info display when keyboard focus leaves software selection list. Save/restore images/info selection in right panel. Fixed bugs and improved performance of code for detecting systems without ROMs. Made audit menu request confirmation, show progress, and save result in INI format. Consolidated code for drawing "extra" boxes above/below menus. Fixed minimum/maximum for UI font rows per screen setting. Fixed spacing on directory configuration menu. Made slot options menu show full name of selected slot device below menu [Vas Crabb].
- Reimplemented system/software filters: Uniform interface/polymorphic implementation - eliminates almost all special-casing in menus. Made filter names localisable. Allowed more filter types and prevent contradictory filters from being added in custom filters. Made category filter work like other filters (allowed in custom filter displays its own UI, better error messages). Made multiple year/manufacturer/category/etc. filters in custom filter an inclusive union operator.Removed implicit "Not BIOS" system filter, it can be added explicitly if desired [Vas Crabb].
- Moved unimplemented/imperfect flags from machines into devices: Allows dynamic warning flags depending on slot configuration. Unclutters GAME/CONS/COMP/etc. definitions where a family of machines or a device have the same flags. Allows more combinations of flags [Vas Crabb].
- PNG/rendering/artwork/output improvements: Added support for layout item groups that can be reused in other groups or views. Reduced weight of render.h by moving component specialisation declarations into rendlay.cpp. Replaced simple_list with more appropriate containers, remove misleading const qualifiers, reduced repeated XML walking. Added N-dimensional output finder to avoid runtime string hashes - more than doubles performance of intlc440. Unified code for copying PNG data into MAME bitmap in MAME and pngcmp, made it less likely to leak memory. Added support for Adam7 interleave in PNG files, fixed some corner cases in unfiltering code. Fixed upsampling of greyscale PNGs, added support for monochrome with alpha. Added support for 16-bit samples in PNG files. Added support for PNG greyscale/RGB with transparent pen. Detect more invalid PNG files rather than just behaving badly [Vas Crabb].
- Added "minimaws" scripts, a reference -listxml consumer (implemented with Python/WSGI and JavaScript): Provides verbs for loading data, some basic batch queries, and an interactive web server mode. Serves linked HTML pages for machines, devices, and source files. Demonstrates how to dynamically discover slot/BIOS options from static -listxml output. Allows user to build a slot configuration and shows necessary command-line arguments or INI lines to produce it in MAME. As a side effect, this provides additional validation of -listxml output, several issues and limitations were addressed [Vas Crabb].
- Fixed -sleep and -refreshspeed options, fixed a stupid forced unnecessary sleep [Vas Crabb].
- Fixed -slot card,bios=rev (selected BIOS was being applied to slot itself, not card) [Vas Crabb].
- Fixed up input merger: added more variants, synchronisation and save state support, removed dubious reset behaviour [Vas Crabb].
- Removed a whole lot of I64 from format strings (use logerror/string_format/stream_format to avoid it) [Vas Crabb].
- Added validation of BIOS names/descriptions/defaults and fixed errors exposed [Vas Crabb].
- Moved additional content for release archive from build repository to main repository [Vas Crabb].
- ceci: Added driver for China Education Computer I (Apple II clone). Added QUIT and TEST keys (hold down TEST while resetting for diagnostic), completed keyboard. Fixed banking - Chinese mode works. Added HGR color killer softswitch [R. Belmont].
- k2000: Added sample ROMs [R. Belmont].
-  [R. Belmont].
- alphatro: Added cart slot, support for 8K carts from the command line and cart software list. Replaced bad dumps for CP/M and BASIC with good ones in alphatro_flop.xml [R. Belmont]. Added BIOS set for machine with Bicom graphics [TeamEurope, rfka01, R. Belmont].
- Rewrote mmodular.cpp to use the new mmboard device - many sets promoted to working [Sandro Ronco].
- fmtowns improvements: Added support vertical zoom greater than x2 (fixes Evolution). Improved graphic layer placement - games with different-sized layers now display better. Added preliminary RS232C port support [Barry Rodewald].
- gt64xxx: Buffer multiple writes for PCI stall (fixes MT06636) [Ted Green].
- seattle: Set proper blitz99 DIP switch settings and added gearshift to calspeed (fixes MT00975) [Ted Green].
- floppy: Added FLOPPY_HFE_FORMAT to default_floppy_formats [Nigel Barnes].
- acorn_dsk updates: Added OPUS_DDCPM_FORMAT, removed ACORN_CPM_FORMAT (same geometry as ACORN_SSD_FORMAT/ACORN_DSD_FORMAT). Improved find_size/identify for SSD/DSD formats. ACORN_DOS_FORMAT 640K now handled as ACORN_ADFS_OLD_FORMAT. Fixed geometry for ACORN_DOS_FORMAT 800K [Nigel Barnes].
- wd177x_dsk: Apply sector_count and gaps to track description [Nigel Barnes].
- bbc updates: Added new TUBE device - Acorn Tube ULA for use with Acorn second processors. Added various second processors as Tube slot devices: Acorn 6502, Acorn 65C102, Acorn Z80, Acorn 80186, Casper 68000. Added BeebSID slot device for the 1MHz bus. Minor video improvements: fixed cursor size, double clock in MODE7 to counteract non-implemented interlace. bbc_acorn8271: Added Amcom DFS A7874. bbc_opus8272: Added new Opus 8272 FDC device with DDOS 3.00, not yet working [Nigel Barnes].
- didact: Updated LOG support to latest cut [Joakim Larsson Edstrom].
- m68340: Added implementations for VCO clock synthesizer and Timer module Counters, IRQs and one operational mode [Joakim Larsson Edstrom].
- apple2: Update screen on mode-switch only if really switching [Peter Ferrie].
- hp9845: Refactored handling of HTI images into a dedicated format module, refactored hp9845_tape imgtool module to use HTI format [F. Ulivi].
- hp85: Implemented tape drive, fixed a bug in tape gap detection [F. Ulivi].
- imgtool: Fixed null pointer dereference and logic errors in "GET" command. [F. Ulivi].
- ms0515: Add sound and corrected clock rate [shattered].
- dvk_ksm: Implemented Baud rate generator and cleaned up source [shattered].
- Refactored server_{ws,http}.hpp into separate interface and implementation. Use std::weak_ptr from websocket_connection_impl to webpp::Connection to avoid reference cycles. When shutting down the HTTP server, also explicitly stop the asio::io_context; this allows the built binary to exit cleanly [Christian Brunschen].
- mos6526.cpp: Show state of registers that can be read without side effects in debugger [David Viens].
- om6502.lst: Corrected cycle counts for undocumented $BF instruction. Now passes Lorenz testsuite-2.15's cputiming.prg (and does not break laxay.prg) [David Viens].
- Improved Android build support. Updated for NDK r14b, build-tools 21.1.2, gradle 2.2.1, and jdk1.8.0_144 [Miso Kim].
- Added basic Saturn CD Block device to load the ROMs [David Haywood].
- imgtool modernisation and miscellaneous fixes: Fixed a std::string(nullptr) bug. Proper cleanup of floppy object after create/open failure. Merged normalize_filename() into cannonicalize_path(). Eliminated Imgtool-specific rand() function. Modernised mgtool_forkent structure. Fixed features.supports_geticoninfo [Nathan Woods].
- Partially fixed MT06621 (save state path not honoured). Still doesn't honour software name for multipart software loaded from internal UI [Nathan Woods].
- imgtool: Made Mac ICN# drawing logic never draw pixels outside mask [Nathan Woods].
- SAM6883: Fixed VDG addressing incorrectly honoring page bit [Nathan Woods and Ciaran Anscomb].
- gb.cpp: Optimized channel update methods - greatly reduces time to load state [057a3dd61f99517a3afea0051a49cb27994f94d].
- Added better documentation and part numbers for midvunit wheel board [Risugami].
- Rainbow-100: Use Z80SIO instead of Z80DART, make UCSD Pascal boot again [Bavarese].
- Added Control ID X628 fingerprint reader skeleton driver and NT7534 bitmap LCD controller device [Felipe Sanches].
- dccons.cpp: Added better dump of PAL Dreamcast Flash ROM [rtw].
- snes.xml documentation updates: Fixed ROM name and added extra information for Dragon Ball Z - Super Gokuu Den - Kakusei Hen. Added information about an earlier Euro Ranma 1/2 revision. Added information about an earlier Spanish release of Donkey Kong Country 2 - Diddy's Kong Quest. Added information about the Spanish release of Pilotwings to the Euro dump [Inigo Martinez].
-nes.xml documentation updates: Added information about Super Mario Bros. PCB. Fixed serial values and added PCB information for Pinball, Super Mario Bros. 2, and Trog! [Inigo Martinez].
- fmtowns_cd.xml: Update undumped list, merged the Towns and Marty list [r09].
