0.177
-------


MAMETesters Bugs Fixed
----------------------
- 05823: [Core] (coco12.c) -ramsize does nothing for emulation although it does change the .ini file [Nathan Woods].
- 06185: [DIP/Input] LIGHTGUNS: Aimtrak Dual Lightguns no longer properly detect [Pitou].
- 06269: [Debugger] DEBUGGER: Unable to use any valid cheats while using debug [Ryan Holtz].
- 06292: [Crash/Freeze] (victor9k.c) victor9k [cpm86]: Freeze with 'cpm86' disk [Curt Coder].
- 06314: [Crash/Freeze] Fatal error - All sets using '-centronics p72' slot/option [Ryan Holtz].
- 06315: [Crash/Freeze] Fatal error - All sets using c4023, c1526, mps802 devices [Ryan Holtz].
- 06316: [Crash/Freeze] (pc1512.c) pc1512, pc1512dd, pc1512hd10: Use of 'ibm_mfc' slot option causes Fatal error [Ryan Holtz].
- 06317: [Crash/Freeze] (pc1512.c) pc1512, pc1512dd, pc1512hd10: Use of '3c503' slot option causes Fatal error [Ryan Holtz].
- 06326: [Crash/Freeze] (megadriv.c) megadriv, 32x and clones, some segac2.c sets: Selecting machine and game via softlist though internal menu results exception/crash [Osso].
- 06328: [Crash/Freeze] Various ISA using machines: Crash/Exception at Initialization [crazyc].
- 06330: [Crash/Freeze] (altos5.c) altos5: Crash/.Exception on start [crazyc].
- 06331: [Crash/Freeze] (apollo.c) dn3500_19i, dsp3000, dsp3500, dsp5500: Crash/Exception on start [Osso].
- 06335: [Interface] UI:: Input (general) selection menus do not display correctly or at all [Vas Crabb].
- 06342: [Crash/Freeze] pc (pccga): System crashing while loading [crazyc].


Source Changes
--------------
- apple2gs.cpp: Redumped 341-0748 FE-FF ROM for the ROM03 Apple IIGS, confirming that 341-0748 and 341-0749 ROMs are identical [Brian Troha].
- amstrad.cpp: Added pause button to GX4000 [Barry Rodewald].
- debugimgui: Added images menu, with crude file select dialog, added very crude create image dialog [Barry Rodewald].
- altos5: Fixed banking, all disks can boot [Robbbert].
- Renamed the arcade "sun" project to avoid conflict with the mess "sun" project [Robbbert].
- Pro-80: Added devices [Robbbert].
- Separated the LDP-1450 laserdisc player into its own device [James Wallace].
- abc80x: Fixed ABC-838 disk image cell size [Curt Coder].
- c64: Optimized the 1541 bit read/write function slightly without noticable effect on driver speed, since the 2 CIA's are the current bottlenecks [Curt Coder].
- compis improvements: * Created a bus for the graphics card slot * Fixed keyboard * Promoted driver to working * Fixed RTC to use 24 hour mode [Curt Coder].
- victor9k improvements: * Set floppy RPM after track step * Implemented hires graphics * Implemented display brightness control * Fixed keyboard line Y12 * Implemented SCP communications * Boots to CP/M and MS-DOS now - promoted driver to working [Curt Coder].
- pofo improvements: * Implemented the A: credit card memory * Fixed the RTC * Added memory card slot interface and ROM/RAM cards [Curt Coder].
- im6402: Reset receive/transmit registers after data frame is changed [Curt Coder].
- wangpc improvements: * Fixed interrupt handling - boots to DOS now * Fixed keyboard error on POST [Curt Coder].
- Fixed missing region report when DEVICE_SELF is used [O. Galibert].
- dirom: device_rom_interface for sound chips with rom/memory map alternative * Make robust for oversize ROMs [O. Galibert].
- dirom, okim6295: Added/fixed banking support [O. Galibert].
- Fairlight CMI IIx driver: * Modernization of Phil's CMI IIx driver * Hooked up serial callbacks, alphanumeric keyboard now works * Fixed FDC DMA, QDOS now boots * Fixed MSM5832 RTC hookup * Hook up second floppy [Ryan Holtz].
- vgmplay.cpp enhancement: * Added HuC6280, NES APU, Gameboy DMG, YM2203, YM3812, YM3526, AY-3-8910, Namco C352, Sega MultiPCM, Konami K053260, Atari POKEY and Oki M6295 support * Added support for looping * Added dual-chip support for AY-3-8910, YM2203, MultiPCM, and POKEY [Ryan Holtz].
- tv990/995: Added save state support and LPT port [R. Belmont].
- tv950: New redumps, fleshed out the skeleton, needs a CRTC expert to draw anything [R. Belmont, Al Kossow].
- ti99 improvements: * Fixed stuck INT line in TMS9902 * Improved logging * Fixed missed CTS signal, outgoing RTS, incoming DTR * Fixed RS232 line mapping * Fixed debugger access to cartridge  * Use proper RAM devices instead of ROM_REGIONS * Fix a problem with formatted disk images that do not match the expected file size * Fixed another issue with double stepping [Michael Zapf].
- ti99_dsk: Fixed issue with deleted data marks in FM [Michael Zapf].
- hdc92x4: Added 9224 emulation [Michael Zapf].
- Added PC-AT mode (still untested), some preparations for 9224 emulation [Michael Zapf].
- floppy: Improved floppy sound emulation with new sound samples [Michael Zapf].
- alto2 improvements: * Added speaker sound * Further cleanup and removed cruft * Get rid of the fake status display. Refactor mouse positioning code * Removed extra screen buffer * Save copying odd/even frame scanlines by immediately updating bitmap * Fixed I/O memory read * Reduced frame rate (really 30 frames/60 fields per second) * Replaced decoded MIR bit fields * Removed member function pointers * Refactored videotiming, use attoseconds_t [Juergen Buchmueller].
- apricot improvements: * Moved expansion bus to its own directory * Created bus interface for the keyboard interface * Made HLE keyboard emulation a bus device * Use device_buffered_serial_interface and device_matrix_keyboard_interface for the HLE keyboard emulation to reduce duplication and implement a FIFO * Added rtc support to keyboard [Dirk Best].
- Keyboard/terminal improvements: * Added base classes for HLE matrix keyboard and buffered RS232 device * Made generic keyboard/terminal more usable: configurable typematic delay/rate, selectable JIS/ANSI layout, handle simultaneous keypresses more intuitively, use meta to set high bit, configurable auto LF on CR, auto CR on LF and local echo, audible bell * Untangled Olivetti M20 keyboard from generic_keyboard, add notes, use physical layout * Untangled RM Nimbus keyboard from generic_keyboard aand fix -natural * Untangled x68k keyboard from generic_keyboard, improve key names, default mapping and typematic behaviour * Untangled QX-10 keyboard from generic_keyboard * Kept NGEN keyboard barely working [Vas Crabb].
- Rewrote srcclean to be cool with UTF-8, C++14 and Lua [Vas Crabb].
- Fixed UTF-16 encode, pass UTF-16 to Windows character drawing [Vas Crabb].
- Made path_iterator copy search path to fix use-after-free [Vas Crabb].
- devfind improvements: * Made object finders behave like pointers (not pointer/reference/vector) hybrids * Removed some default argument values and dangerous accessors * Use single uniform class for object array finders, using real arrays to avoid double indirection * Use a format string to allow more flexible tag names in object array finders * Use template using typedefs to greatly reduce bolerplate code * Consolidated template instantiations speeding up the build * Added Doxygen comments to many key classes [Vas Crabb].
- Fixed regression: using IPT_START in sms makes mame think joypad 1 is occupied and inserts joypad 2&3 instead of joypad 1&2 [hap].
- gx4000: Don't use IPT_KEYBOARD for console pause button [hap].
- al520ex: Use correct key name for tvordiy znak [hap].
- hh_tms1k: Gamelist notes update [hap].
- hh_hmcs40: Added sag internal artwork (external artwork still recommended) [hap].
- tlcs90: Fixed a nonsense check [hap].
- chessmst: Added reset and halt buttons [hap].
- tiamc1: Tilemap bit layers disable control [MetalliC].
- i8080: Fixed status callbacks during stack and IO access [MetalliC].
- vector06: Improvements: * RAM expansion emulated, MicroDOS and software works now * Fixed ROM cartridge address decoding, boots now * Changed to use KR1818VG93 FDC * Added "Sound Tracker" and "R-Sound" AY8910 sound * Added pit8253 sound * Fixed vblank interrupt generation [MetalliC].
- aica: Added ADPCM diff value clamp based on encoder research [kode54, MetalliC].
- hp9845: Added correct character generator ROMs [F.Ulivi, A.Kueckes].
- Use emumem.h defines whenever possible [Giuseppe Gorgoglione].
- gba: First batch of code refactorings: attempt at modernizing the code by taking advantage of C++ features. Reworked and simplified code [Giuseppe Gorgoglione].
- Made hiscore path configurable by ini file, fix .hi file path resolution [stengun].
- kim1: RS & ST keys, input ports update: * Hooked up the ST key and updated RS key function * Updated INPUT_PORTS to add numpad keys and better support pasting * Moved type definitions to kim1.h * Simplified kim1.lay coordinates [Dagarman].
- Documented 3 diagnostic menu bugs in the Vii's BIOS [PressStartandSelect].
- Fixed action on debugger 'trace'/'traceover' commands: * 'trace'/'traceover' commands were registered as having three arguments, this fixes it so there are four arguments [Nathan Woods].
- Fixed some MC6847 low resolution video modes: * Fixed a bug from where video data was sampled that could cause too many samples to be loaded in low resolution video modes * On the CoCo, this fixes some low resolution video modes used by Project Nebula and some other games [Nathan Woods].
- CoCo 1/2: Fixed configurable RAM sizes: * Changes the 6883 SAM implementation to assume memory bank lengths smaller than available space are not mirrored [Nathan Woods].
- Made rom_entry a class that keeps copies of strings: * Also introduce a POD tiny_rom_entry for static ROM definitions * C++-fiied code that iterates over rom_entry arrays [Nathan Woods].
- diimage refactoring: * Changed device_image_interface::load() so that it doesn't load both images and softlist items * Remove vestigial has_been_created() API  * Consolidated error code translation * Use std::string rather than C strings in more cases * Better encapsulation of format list * Better encapsulation of filename extension extraction [Nathan Woods].
- Software List refactoring: * Separation of software list data structure from runtime device * Use std::string rather than C strings in many cases * Standardized terminology for various concepts [Nathan Woods].
- Converted many NUL-terminated strings to std::string: * Parameters to zippath and emufile * menu_software_list::m_filename_buffer [Nathan Woods].
- Check return value of CassetteLegacyWaveFiller.chunk_sample_calc() (this is just better error checking) [Nathan Woods].
- Changed device_image_interface::determine_open_plan() to not create an image unless device_image_interface::create() is used. This fixes odd behavior where zero byte images could be created [Nathan Woods].
- Report Win32 ERROR_INVALID_NAME as osd_file::error::NOT_FOUND [Nathan Woods].
- Fixed menu lag [Dankan1890].
- Use required_ioport_array for multiple keyboards [shattered].
- ec1841: Adapted to new memory system [shattered].
- mc1502: Made serial test in BIOS work [shattered].
- poisk1, mc1502: Minor fixes [shattered].
- vt240: Fixed host comms when flow control is enabled [shattered].
- dvk_ksm: Dropped dvk_ksm01 variant and merged ROM sets; enabled tx to its keyboard. Fixed host comms, added PORT_CHARs to its keyboard [shattered].
- ms7004: Enabled serial rx and add PORT_CHARs [shattered].
- keyboard: Added F16..F20 keys (present on DEC terminals) [shattered].
- isa_hdc: Implemented READSBUFF command (used by ec1841 diagnostics) [shattered].
- Attempted to fix distortion with -refreshspeed and -audio xaudio2 [Calamity].
- New stretching options (as suggested by Jezze): * New option -unevenstretchy (complementary to -unevenstretchx) * New option -autostretchxy, to automatically apply -unevenstretchx or -unevenstretchy based on source native orientation [Calamity].
- Warp mode for relative mouse on OSX SDL 2.0.4 (fixes Github issue #1232) [bradhugh].


New machines added or promoted from NOT_WORKING status
------------------------------------------------------
Alto-II [Juergen Buchmueller]
TeleNova Compis [Curt Coder]
Atari Portfolio [Curt Coder]
Victor 9000 [Curt Coder]
Wang Professional Computer [Curt Coder]
Vector 06c [MetalliC]
Select-A-Game: Baseball 4 [hap, Kevin Horton]
Select-A-Game: Pinball [hap, Kevin Horton]


New clones added or promoted from NOT_WORKING status
----------------------------------------------------
Compis II [Curt Coder]


New machines marked as NOT_WORKING
----------------------------------
CMI IIx [Ryan Holtz]
Tandy/Memorex Video Information System MD-2500 [Carl, Sly DC]
Select-A-Game: Space Invader 2 [hap, Kevin Horton]


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


New WORKING software list additions
-----------------------------------
pc98_cd.xml: added more disks + FM Towns hybrids [rzero9]
fmtowns_cd.xml: new dumps [rzero9]
coco_cart.xml: Switched 'cclimbra' to 'cclimber'. [Nathan Woods]
pofo.xml: Dumped the File Manager/Tutorial card. [Curt Coder]


New NOT_WORKING software list additions
---------------------------------------
gba_ereader.xml: Animal Crossing Series 2 [Shideravan]


Translations added or modified
------------------------------
Catalan [Jordi Mallach]
Spanish [A.Viloria]