0.175
-------


MAMETesters Bugs Fixed
----------------------
- 06244: [Speed] (namconb1.c) machbrkr, outfxies: Degraded performance speed (Osso)
- 06241: [Crash/Freeze] Most sets in neodriv.hxx: cheats enabled cause MAME to crash (cuavas)
- 06225: [Crash/Freeze] (midtunit.c) mk, mk2: Game doesn't start - crash while loading (cuavas)
- 06196: [Interface] Window mode, can't set window size anymore (bradhugh)
- 06222: [Graphics] Artwork + HLSL + Vector Game = Cropped Screen and Wrong Screen Position (Jezze)
- 06195: [Crash/Freeze] -video BGFX is crashing after selecting 'Select New Machine' and launching another machine (Ryan Holtz)
- 06221: [Interface] PLUGINS: pluginspath option not fully recognized (crazyc)
- 06215: [Misc.] (sorcerer.c) sorcererd: Refuse to load some cpm programs! (Robbbert)


Source Changes
--------------
-Further improvements to the Patinho Feio driver & CPU [Felipe Sanches].
-atarigen: Remove the slapstic direct update handler, which hasn't been necessary since direct access has been enhanced to work correctly on handlers, years ago [O. Galibert].
- sloop: Direct update handler unneeded too [O. Galibert].
- esb: Direct update for slapstic gone too [O. Galibert].
- gameboy: Improved support for M161 and MMM01 mappers [Tauwasser].
-n64dd: Change N64DD to use harddisk device instead of quikload device. Updated checksum for Randnet disk, previous conversion was faulty [Happy].
- ui refactoring:
  * Make ARRAY_LENGTH cause a compile error if used with a pointer/vector
  * move menu classes into ::ui namesapce and reduce scope of many symbols
  * Clean up text input code, move common operations to inline templates
  * Fix numerous one-byte buffer overruns
  * Don't flat-out ignore input beyond the C1 hole
  * Fix decoding of SDL text input [Vas Crabb].
-Added highly experimental SHARC recompiler (disabled by default) [Ville Linde].
- psx.xml: Added more information and small fixes to Japanese discs [Fabio Priuli].
- Commodore PET Joysticks and Sound Device [Ken White].
- sun2: Preliminary MMU implementation, still has issues [R. Belmont].
- sun2: MMU fixes, both VME and Multibus variants now POST and show something [R. Belmont].
- gbcolor.xml: Documented more Game Boy Color PCBs, based on no-intro pictures [Fabio Priuli].
- vboy.xml: Documented a few Virtual Boy PCBs, based on no-intro pictures [Fabio Priuli].
- Ignore cylinders, heads and sectors from identify device data, based on the ATA 5 specification [smf].
- Added CHS and LBA limits when the chd doesn't contain identify device data [smf].
- Fix NeoGeo CD P2 inputs [fuzzbop].
- Update rainbow.cpp [Bavarese].
- Added comlist and commit commands to debugger. comlist prints available comments in debugger console, commit will do a bulk comadd and comsave operation [Angelo Salese].
- Don't use AM_MASK on ram, you end up with an incorrect allocation size [O. Galibert].
- rainbow: led polarity [Baverese].
- sun2: fixed more MMU issues, added serial ports [R. Belmont].
- Fix TGP parser crashing in Model 1 [SailorSat].
- Fixed network output to include all data [headkaze].
- lk201: Fix 6805 clock to verified value [Lord Nightmare].
- sun3 updates:
  * Split sun3 and sun3x archiectures, they're different enough
  * Sun3 MMU and unique hardware implemented, all models now POST including 3/2xx [R. Belmont].
- sun4: Preliminary implementation of sun4c MMU and related hardware [R. Belmont].
- gba.xml: documented some more Game Boy Advance PCBs [Fabio Priuli].
- gba.cpp: several improvements [Fabio Priuli]
  * Implemented emulation of the  "General Purpose I/O" port (GPIO) of GBA.
  * Hooked up S-3511 RTC emulation through the GPIO port. This allows to avoid the "Internal battery has run dry [...] clock-based events will no longer occur" messages in Pokémon Emerald / Ruby / Sapphire. This also promotes Sennen Kazoku to working state.
  * Hooked up Boktai Light Sensor emulation through the GPIO port. This allows to avoid the "Solar Sensor is broken" message in Boktai / Bokura no Taiyou, which is now playable and to recharge your weapons in all three games of the series. Light level has to be chosen via the "Machine Configuration" menu, until we get some kind of camera input.
 * Hooked up Warioware Twist Gyroscope emulation through the GPIO port. This allows to play the minigames, even if in some case the input sensibility might need a few tweaks.
 * Hooked up Warioware Twist & Drill Dozer Rumble emulation through the GPIO port. MAME will now output a "Rumble" output bit (0 for Rumble=OFF and 1 for Rumble=ON)  whenever the games try to access the Rumble component… third party applications can now listen to the output and redirect it to some hardware that can "rumble" in sync with the gameplay.
- gba.cpp: implemented emulation of the Tilt sensor used by Yoshi’s Universal Gravitation / Yoshi Topsy-Turvy / Yoshi no Banyuuinryoku (and by Koro Koro Puzzle). Note that the calibration can seem a bit tricky at first, because the emulated screen does not turn as the GBA would... In order to properly calibrate the sensor, just keep pressed right for a few seconds when requested to calibrate right inclination (first calibration screen in Yoshi Universal Gravitation) so to get the full right range; then keep pressed for left for a few seconds when requested to calibrate left inclination (second calibration screen in Yoshi Universal Gravitation) so to get the full left range [Fabio Priuli].
- gb.cpp: Added Rumble emulation to the MBC-5 Game Boy Color games which supported it. MAME will now output a "Rumble" output bit (0 for Rumble=OFF and 1 for Rumble=ON) whenever the games try to access the Rumble component… third party applications can now listen to the output and redirect it to some hardware that can "rumble" in sync with the gameplay [Fabio Priuli].
- gb.cpp: Added partial RTC emulation to the MBC-3 Game Boy Color games which supported it. Clock proceeds a bit too fast during gameplay, but at least it is not stuck anymore to the time of first configuration [Fabio Priuli].
- Netlist changes:
  * Introduced HINT(device, hint) to clarify that hints are inheritent and not specific to devices.
  * Added improved profiling support to netlist. Statistics output now proposes devices for which whole device activation/deactivation be disabled. No significant improvement for pong, but breakout experiences a 10% improvement.
  * Introduced perftime_t and perfcount_t for gathering statistics. These templates do not create any code if statistics are not kept.
  * Make help2man ./nltool produce usuable output.
  * Replaced shared_ptr by unique_ptr.
  * Better seperation of setup_t and netlist_t.
  * Fixed bugs in rdtsc code. Refactored timer code.
  * Moved options code from include to cpp file.
  * More truthtable refactoring. Removed half-finished code for internal state support. As implemented, this would have had no support for timing delays. 
  * All netlist device setup is now done in the device constructor. This significantly increases readability and stability and allowed to remove init_object calls and start calls.
  * Removed a significant amount of dead code.
  * Remove ATTR_HOT and ATTR_COLD. Refactored netlist_time.
  * More STL usage and c++11.
  * Get rid of nl_math. Remove nl_util.h and moved contents to plib/putil.h [Couriersud].
- Major refactoring of debugger core:
  * Eliminate globals/file statics
  * Remove lots of stuff from global scope
  * Use std::function for custom command registration
  * Eliminate some trampolines
  * Build fixes from Vas Crabb and balr0g [Ryan Holtz].
- n64.cpp: Disabled fast RAM, as it prevents watchpoints from working and doesn't gain much on the interpreter core [Ryan Holtz].
- rainbow.cpp: add 23-090b1 z80 arbitrator PROM dump [Lord Nightmare].
- Small update of italian traslation [AntoPISA].
- Fix keyboard shortcuts for disassembly comments pane:
  * Win32 previously recognised Ctrl+N but menu incorrectly showed Ctrl+M.
  * Qt showed Ctrl+C but it was swallowed by text editing and didn't work.
  * Ctrl+N is now shown/used by Win32 and Qt (matches Cmd-N on OS X)  [Vas Crabb].
- Fix git version:
  * Git version is set by top-level make, not just when GENie runs.
  * Can set IGNORE_GIT=1 for make to ignore git.
  * Git ignored/unavailable uses "unknown" in version string.
  * Mark modified trees as dirty.
  * Note that version now comes from makefile [Vas Crabb].
- A little change to device_image_interface::call_display to better decouple UI fronted and image devices [F. Ulivi].
- Rom for GameKing 3 [PeT, James].
- Introduce dynamic_module [Giuseppe Gorgoglione].
- Remove Direct3D abstraction layer [Giuseppe Gorgoglione].
- Reverse-engineered Moto Frenzy security FPGA and implemented decryption code [Morten Shearman Kirkegaard, Samuel Neves, Peter Wilhelmsen].
- Make filesel current path clickable [Nathan Woods].
- fmtowns_cd.xml: Added more info, based on Breiztiger's research [Fabio Priuli].
- fmtowns_flop.xml: Added a new software list for floppy-only FM Towns games (boot disks for CDs remain in the CD list, for easier launching). Many thanks to r09 and Breiztiger for help with info and images [Fabio Priuli].
- gameboy: Added DMG v0 boot ROM [gekkio].
- abc80x: Added ROM version 1.05 for the 55-21046 disk controller [Anders Sandahl].
- sdk80: Added correct monitor ROM [Nigel Barnes].
- imds2: Added monitor versions 1.1 and 1.2 [Nigel Barnes].
- terminal: Fixed Color configuration [Nigel Barnes].
- Memory fun:
 * Added AM_SELECT/addrselect field.  Replaces the old AM_MIRROR/AM_MASK combo used to mirror a handler and get the mirrored bits in the offset.
 * Removed mask and/or mirror from where it didn't belong.  Simplified a lot of instances of mask that just weren't needed, especially in bus handlers. Used the short forms of install handlers where possible.
 * Replaced the 60s hippy, "It's cool man" range parameter handling in map_range that tried to guess what was meant when the values passed were not entirely sensible, by a cranky, diner waitress-turned IRS auditor curmudgeon. Main control function has a series of 14 tests just to find a reason to fatalerror out your requests. You have been warned [O.Galibert].
- Fixed double hyphen in -pipe [belegdol].
- abc802, abc806: Added LUXNET BIOSes [Anders Sandahl].
- Added command strobe callback interface for LDV1000, and hooked it up to esh.cpp driver [Angelo Salese].
-eeprom: Not a device_memory_interface [O. Galibert].
-cdi.xml: added info about original disks. [Fabio Priuli]
-intelfsh, i2cmem: Not a device_memory_interface either [O. Galibert].
-decwritr.c: update the la120 driver documentation a bit, fixed memory mirror related issue [Lord Nightmare] decwritr.c: documented the Caps Lock key being a physical toggle [NeXT].
- emumem: Handlers on different subunits of the same address with different address masks are now supported [O. Galibert].
- Add basic SPARCv7 core [Ryan Holtz].
- megadriv: improved description of many taiwanese unlicensed titles + added dump of Ju Ji Ma Jiang II by Sun Green [Fabio Priuli].
- emumem: Fix some issues [O. Galibert].
- newbrain fdc: fix mirrors w.r.t mask [O. Galibert].
- apollo: Install the unmapped handler in the correct post-trampoline range [O. Galibert].
- l9nibble: If it's a tms9900, put one, because the 9980 address space is too small [O. Galibert].
- prox180x, pve500: Map fix [O. Galibert].
- tms57002: I hadn't yet understood some of the, err, subtleties of the memory subsystem [O. Galibert].
- improve SPARC disassembler:
  * Support SPARCv9.
  * Allow plug-in ASI comments.
  * Fix format of some opcodes.
  * Produce clr synthetic.
  * Allow running in v7, v8 and v9 modes.
  * Fix addcc/andcc in SPARCv7 mode and simplify integer op tables.
  * Allow ASI descriptions to be supplied with MCFG macro.
  * VIS I (UltraSPARC) and II (UltraSPARC III) support.
  * VIS 2+, VIS 3 and VIS 3B support.
  * Add several SPARC models to unidasm [Vas Crabb].
- banctec: If it's a 6803, then use a 6803, duh [O. Galibert].
- M2COMM: hook up comm board in model2 (W.I.P.) [Ariane Fugmann].
- sun4: Add SPARC ASI descriptions [Vas Crabb].
- mac: Fix interactions between mirror and range [O. Galibert].
- Rewrite SPARC emulation based on detailed descriptions from SPARC manual [Ryan Holtz].
- dec_lk201: keyclick [Bavarese].
- Added "return to origin point (0,0)" feature to Tilemap Viewer (tied with HOME key) [Angelo Salese].
- Improved workaround for missing cbegin/cend in glibstdc++ [Alex Miller].
- sg1000.cpp: many improvements:
  * Create a SG-1000 expansion slot.
  * Hook up the SG-1000 expansion slot to sg1000.cpp and sms.cpp (sg1000m3).
  * Split the sk1100 code from sg1000.cpp and attach it to the new expansion slot.
  * Create a new FM Sound Unit device and attach it to the new expansion slot.
  * For the sc3000 driver, re-add sk1100 as a fixed SG-1000 expansion device.
  * Add sg1000 software list to sg1000m3 and Japanese/Korean SMS drivers [Enik Land].
- sms.cpp: implemented some new findings:
  * Remove some mirrors for ports $DC/$DD on SMSJ based on Charles' hw tests.
  * Add basic C-Sync callback to 315_5124.cpp, based on Charles' hw tests.
  * Add built-in Rapid Fire (uses C-Sync) for SMSJ and Korean SMS1 drivers.
  * Add new SMS drivers due to XTAL differences: sms1br - Tec Toy Master System I (Brazil) sms2br - Tec Toy Master System II (Brazil) smsbr - Tec Toy Master System III Compact (Brazil) sms1paln - Tec Toy Master System I (PAL-N) sms2paln - Tec Toy Master System II (PAL-N) smspaln - Tec Toy Master System III Compact (PAL-N) Brazil is PAL-M TV system, but I decided to call it by the country name, seems to be better recognizable and for emulation looks more like a NTSC system. PAL-N is used in Argentina, Paraguay and Uruguay and looks closer to the European PAL system when compared to PAL-M [Enik Land].
- Load save state preparations:
  * A number of changes and refactorings in preparation for a new load/save state menu. Most notably, I am C++-ifying osd_directory (now osd::directory) and changing osd_stat() to return std::unique_ptrosd::directory::entry.
  * Take note that this change completely omits POSIX support, simply because I lack a development environment to support it. This will have to be done by someone else [Nathan Woods].
- POSIX implementation for new directory read features, cleanup of Windows implementation, return directory handle as smart pointer, fix full build [Vas Crabb].
- cop: Nicer sorting routine [O. Galibert].
- Supply modified time for files in archives [Vas Crabb].
- Fix LDUH, LDSH, LDUHA, and LDSHA opcodes in the SPARC core [Ryan Holtz].
- ImGui debugger improvements:
  * Memory views now control their own position, removing the scrollbar, allows finer control of large memory areas.
  * Pressing Enter on an empty debugger console input now does a single step.
  * Disassembly and Memory expression inputs now auto-select all.
  * Fix various key inputs.
  * Send character inputs to views, allowing memory editing to be possible in a memory window.
  * Show a rectangle around the view with focus.
  * Add history functionality (press up/down in the debugger console input widget).
  * Allow log windows and debugger console scrollbars to stay at their maximum value, if moved there [Barry Rodewald].
- Add older version SPARCstation IPX (Sun 4/50) ROM as an alt bios, and add ROM locations [Lord Nightmare].
- trs80: Fixed loss of keyboard control on some games [Robbbert].


New machines added or promoted from NOT_WORKING status
------------------------------------------------------
Tektronix 4404 [R. Belmont, Al Kossow]
Entex Electronic Soccer [hap, Sean Riddle]
U.S. Games Super Sports-4 [hap, Sean Riddle]
Reversi Sensory Challenger [hap, yovan]
iSBC 80/10 [Nigel Barnes]
iSBC 80/10A [Nigel Barnes]
iSBC 80/10B [Nigel Barnes]
iSBC 80/30 [Nigel Barnes]
Fidelity Elite Avant Garde (model 6117-9) [anonymous]


New clones added or promoted from NOT_WORKING status
----------------------------------------------------
Electronic Battleship (1982 version) [hap, Sean Riddle]


New machines marked as NOT_WORKING
----------------------------------
V-Tech V-Smile Pro  [TeamEurope]
Fidelity Elite A/S Challenger [hap, anonymous]
Alesis QS-7 [Felipe Sanches]
CPU-30 [Joakim Larsson Edstrom]


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


New WORKING software list additions
-----------------------------------
- bbcb_cass.xml: Added various recently dumped games [Nigel Barnes].
- bbcmc_flop.xml: Added various educational titles [Nigel Barnes].
- megadriv.xml: Chaoji Majiang Club / Super Mahjong Club (Tw) [system11, Fabio Priuli].
- pce_tourvision.xml:  Out Run [system11, kebrank].
- pet_cass.xml: * Added Supermon (Toronto PET User Group) [Ken White] * Replaced bad dump of Side B of Squiggle, Big Time / Monitor (the m command in the monitor now works correctly) [Ken White].
- psx.xml: Added CHD images of redump.org USA disc set [Aeternal].
- psx.xml: Added some more prototypes and misc disks [Fabio Priuli].
- sorcerer_cass.xml: Added many games [Robbbert].


New NOT_WORKING software list additions
---------------------------------------
- cdi.xml: added a few recently dumped prototypes [Fabio Priuli].
- fmtowns_cd.xml: completed addition of known dumps [r09, Breiztiger].
- leapster.xml: 8 new dumps added [Team Europe].
- pc98_cd.xml: added software list with misc CHDs from several sources [r09].
- vsmile.xml: 6 new dumps added [Team Europe].
- vsmile_cart.xml: added a few new US dumps [Rimsky82].