Mameinfo.dat v0.178
Updated - 25th October 2016

Homepage -
E-Mail -



What's New

*NEW* Mameinfo + MAMEUI-inifiles-0179GIT (22nd Oct) (3.13Mb)

MAMEUI 0.178 Category-, Version and Alltime inifiles (644 kB)

MAME NEWS from 0.37b1 - 0.178 (3.68 MB)

PCB-infos 0.153 (2.11 MB)

MAME listinfos from 0.25 to 0.170 (153 MB)

New in MAME:    
0.179GIT - New games: Exzisus (Magnet System), Humlan's Lyckohjul, Istrebiteli, Mahjong Senpu, Ocean to Ocean (Medal) [DECO Cassette MD], Splendor Blast II, Super Two In One, Time Scanner (Magnet System) and Xain'd Sleena (Magnet System) - New Working games: American Music Poker, Power Drift (Japan, Link Version) and Tatakae Genshizin Joe & Mac (Japan, bootleg) - New Non-Working games: Big Casino, Choro Q Hyper Racing 5, Crazy Dou Di Zhu II, Grande Fratello, Puzzle Yutnori (Korea) and Super Triv Quiz I - New clones: Blue Shark (Model Racing bootleg), Bombjack Twin (prototype? with adult pictures, set 2), Dead or Alive 2, Demon's World / Horror Story (set 2), Lady Maker [BET] (Japan), Mutant Night, Ocean to Ocean (Medal) [DECO Cassette MD] (No.10/Ver.6,US), Poker (Version 50.02 ICB, set 4), Ron Jan, Splendor Blast (set 2), Splendor Blast (set 3), Stargate (rev.5), Tarzan Chuang Tian Guan (V109C, set 1), Teenage Mutant Ninja Turtles (Asia 4 Players, version ?), Time Crisis II (Japan, TSS1 Ver. B), UniWar S (bootleg), Video Hustler (bootleg, set 3) and Wing War R360 (US) - New drivers: cedar_magnet.cpp, funtech.cpp, istrebiteli.cpp and mjsenpu.cpp - New devices: ad7521, ad7524, ad7528, ad7533, am6012, cedmag_sound, cedmag_plane, cedmag_sprite, cedmag_flop, dac_10bit_r2r, dac_12bit_r2r, dac_12bit_r2r_tc, dac_16bit_r2r, dac_16bit_r2r_tc, dac_2bit_r2r, dac_3bit_bw, dac_4bit_bw, dac_4bit_r2r, dac_6bit_r2r, dac_8bit_bw, dac_8bit_r2r, dac_8bit_r2r_tc, istrebiteli_sound, mc1408, mc3408, mc3410 and volt_reg - New mame.ini options: swpath = software - ADSP-21xx, ALPHA-8201 and AM29000 CPUs: Changed disassemblers to use std::ostream internally - M6809/HD6309/KONAMI CPU: Merged the M6809, HD6309 and KONAMI CPU disassemblers and changed to properly use streams. - M68000 CPU: Added [[noreturn]] instead of ATTR_NORETURN (cpu\m68000\m68kmake.cpp) - ARM7 CPU . Performed some minor optimization . (MESS) Game Boy Advance fix, added update_irq_state to ARM7 on places missing. - SH-2 CPU: Added read-back for BCR1 register, fixing missing polygons in (MESS) Daytona USA CE for Sega Saturn. Added stub bus\sci\wdt devices for SH7604, this part will require more work as H8 and SH-2 shares same chips. - SH-4 CPU: Reinstate lines removed in error - AY-3-8910A sound . Mention the OKI M5255, Winbond WF19054, JFC 95101, File KC89C72 and Toshiba T7766A as compatible / clone (sound\ay8910.h). . Implement upper address check, not configurable at present but chips could be ordered from the factory with ID's other than 0. Allowing you to chain multiple chips without adding extra address lines. Don't hardcode AY8910 into logerror, using name() instead. - CD Audio: m_audio_ended_normally is set within the stream_update(), so update the stream before returning it (sound\cdda.cpp) - DAC sound . Ataxx: Fixed missing sound channel caused by one DAC not being hooked up and one DAC being hooked up to two addresses. . Best Of Best: Fixed high pitch screech caused by incorrect addressing (two dacs weren't hooked up and two were hooked up to two addresses). . Cosmic Chasm: Fixed static noise generation caused by feeding the same bit to both DACs. . Cheeky Mouse: Slightly improved sound by implementing sound triggers as 8 x 1 bit DACs instead of 1 x 8 bit DAC. . harddriv.cpp: Improved 12 bit controls in all games in driver, although centre still goes out of sync. . Mega Phoenix: Fixed noisy samples due to wrong format. . Seicross and suna8.cpp: Changed to a 4 bit DAC as samples are packed nibble. . Space Guerrilla: Preliminary sound using space invaders samples. . Virtual Combat: Fixed static during machine gun fire due to incorrect DC offset removal. . vectrex.cpp: Fixed noisy samples due to wrong format. . Wheels & Fire: Fixed sound, EEPROM & analogue steering wheel and brake pedal. - ES5505/6 sound . Fixed readback of global registers when the current page was in a certain range . Real hardware does run the voice for a zero-length loop and the synths rely on it. These changes fixed the playback of "Transwaves" on the (MESS) VFX and SD-series synths [Christian Brunschen]. - TMS3615 sound: Use new deprecated attribute - Volume Filter: Update stream before setting the new gain (sound\flt_vol.cpp) - 6840 PTM: Changed WRITE8 to WRITE_LINE for single-bit outputs. Changed device to use an array of devcb_write_line. - 8253 PIT and MSM5832 RTC: Eliminate device name from logging messages - CHDMAN: Fixed chdman addmeta --valuefile by calling the correct write_metadata - Imgtool . Fixed a recently introduced bug that could cause module's close() callback to be invoked if an image fails to be opened or created. . Made imgtool_image (now imgtool::image) a "real" C++ class. C++-ified a few more classes: imgtool_partition ==> imgtool::partition and imgtool_directory ==> imgtool::directory. Changed many 'imgtool::stream *' to 'imgtool::stream &'. Changed a number of callbacks to be std::function instead of old fashioned function pointers. Changed the create/open callbacks to take 'imgtool::stream &&'. Changed 'imgtool::image *' ==> 'imgtool::image &', 'imgtool::partition *' ==> 'imgtool::partition &' and 'imgtool::directory *' ==> 'imgtool::directory &'. Modernized imgtool::image::list_partitions(). Changed imgtool::image::info() to use std::stream and std::stringstream. Consolidated logic for default implementation of imgtool::image::list_partitions(). Changed imgtool::stream::open*() to return imgtool::stream::ptr. Updated quite a bit of client code that manually owned these pointers. - MC6845 CRT: Allow cursor blink state to be read - RP5C01 RTC: Fixed clock regression with RP5C01. This also makes the RP5C01's NVRAM actually non-volatile (previously it would be cleared upon reset after being loaded). The RP5C01 has a power supply line but no reset signal input, so device_reset doesn't seem to make sense here. - Z80 SCC . Z-Bus interface functions zbus_r and zbus_w added supporting shift left/right modes. Improved variant handling including the incomplete read register maps for some. External CTS and DCD interrupts added. Improved device reset values. SWI acknowledge command added. Improved/fixed handling of wr9, rr2, rr3. WR7PRIME register added. Fixed vector modification. . Added iack by reading rr2. z80daisy_iack now returns -1 when no vector found or disabled through the WR9 VIS. Removed z80daisy_reti code to match SCC documentation. Removed defacto reset values where possible and replaced them with documented SCC reset values. . Improved Tx handling with FIFO including special case with 1 slot FIFO - atlantis.cpp and midzeus.cpp . Removed unused define parameter in Atlantis driver. Removed includes\midzeus2.h and video\midzeus2.cpp as not needed. . Zeus-2 video: Updated waveram organization. Updated quad rendering command size. Updated register naming. - chihiro.cpp . Clarifications and renaming for 3D matrices . Tidy up video\chihiro.cpp and updated driver notes. More details about AN2131QC pins. - cischeat.cpp . Set default palette init to black and fixed communications RAM ranges . Fixed dipswitch 'Unit ID' in F-1 Grand Prix Star II. . Added IRQ notes and bumped framerate to 60 Hz to all minus captflag/scudhamm. . Various input related bug-fixes to Wild Pilot: Lightgun is actually an ad-stick. Added Player 2 inputs. Fixed bogus start button starting a play even without a coin inserted. Demoted Wild Pilot to MACHINE_NOT_WORKING. - crystal.cpp, jalmah.cpp and ninjakd2.cpp: Added MACHINE_UNEMULATED_PROTECTION flag to Mahjong Channel Zoom In, Mahjong Daireikai and Otogizoushi Urashima Mahjong (games have unfinished m68k snippets), Mahjong Kakumei 2 (uses protected RNG), Atomic Robo-kid (random crashes), Donggul Donggul Haerong and Office Yeo In Cheon Ha. - decocass.cpp . Tagged all the DECO Cassette sets as US / Japan based on which BIOS type they use (A = Japan, B = US/World, they aren't compatible, using the wrong one will give a loading error). Note clone Bump 'n' Jump (DECO Cassette, Japan) is for type B, so was incorrectly tagged as Japan (or has been hacked). . Make the different decocass BIOS roms actually selectable. - equites.cpp: Fixed flip screen for Splendor Blast and High Voltage (ID 06411) - megasys1.cpp: Added save state support - midvunit.cpp, midzeus.cpp and seattle.cpp: Added clickable buttons to a few Midway layouts (calspeed, crusnexo, crusnusa, hyprdriv and vaportrx) and cleaned up some code. - model1.cpp . Allow NetMerc to boot. There still seems to be something uninitialized or some memory corruption as quite often it will crash instead of launching, but if it does launch you can get a title screen and attract demo with some 3D. Roms pass in rom test now too. 3D is quite broken, lots of polys being stretched in weird ways and no 3D palette. . Make Model 1 render list scanning code safer by masking accesses to the ram size and using less pointer math. Without this invalid displaylists can easily crash MAME because the pointer artihmetic can end up going way beyond RAM sizes with no easy way to mask. NetMerc still crashes due to other things tho. . Allow NetMerc 68k to run - nightgal.cpp: Added some system inputs. Added gamble payout button to backspace as default for Night Bunny. This fixed game stalls when winning a hand (ID 06409). - skylncr.cpp: Update driver to use RAMDAC - stv.cpp: Added Taiwan 97/05/15 v1.14 BIOS. Minor documentation update. - system16.cpp: Preliminary sound for clones Bay Route (encrypted, protected bootleg) and Golden Axe (encrypted bootleg - American Music Poker . Major improvements (Game now playable) . Inputs figured out almost completely . Added blinking cursor for service mode . Gross hacks used to get coins working due to broken IRQ timings . Palette remains in dire need of improvement . RTC writes now actually go through, so the game will remain stuck in 1987 until the date is changed. Added the new machine flag for the unemulated printer. - Caveman Ninja: Some work on clone Tatakae Genshizin Joe & Mac (Japan, bootleg). Promoted to WORKING with known problems. - Destiny - The Fortuneteller: Updated to use stub LCD and updated flags - Draw Poker (Bally, 03-20): Redumped sound roms - Emeraldia: Fixed Emeraldia (World) visible area (ID 06404) - Irritating Maze: Redumped v2 rom and fix rom loading. No XML update as this cart isn't in the softlist as it was for a dedicated machine with custom BIOS only. - Mahjong Kaguyahime Sono2 [BET] (Japan 890829): Fixed clone Mahjong Kaguyahime Sono2 Fukkokuban [BET] (Japan 010808) year info (ID 06110) - PinMAME: Replaced sound ROMs for Contact, Disco Fever, Phoenix and World Cup Soccer with game specific sound dumps (drivers\s3.cpp). - Poker / Black Jack (Model 7521): Added PROM, PAL and updated PCB layout. - Power Drift: Spotted link ID and link communication mode in clone Power Drift (Japan, Link Version), promoted game to working. - San Francisco Rush: Added layout - Vs. Janshi Brandnew Stars: Added missing soundlatch to Vs. Janshi Brandnew Stars, this fixed crash when you insert a credit (ID 06391). - Vindicators/Vindicators Part II: Added proper input labels. Make left/right sticks labels explicit so that "Left/Up" isn't upper-right direction but "Left Stick/Up". - Witch: Take the 'Hopper Active' dipswitch value into proper account; no longer must it be low. Added ticket_dispenser_device::motor_w as a proper WRITE_LINE method, first step towards eliminating the m_active_bit=0x80 nonsense. - Input port . Separate natural keyboard support from ioport.cpp . Added ticket_dispenser_device::motor_w as a proper WRITE_LINE method, first step towards eliminating the m_active_bit=0x80 nonsense (machine\ticket.cpp) . Misc. keyboard input improvements . Added BS, Tab, 00, 000 keys common on add-on keypads as input items; SDL may recognize these, but DirectInput does not. . Assign Keypad 00 and Keypad 000 in several drivers' input lists . Added SDL keycode for "cancel" key . Added keypad keys as alternates to natural keyboard . Moved has_keyboard() out of the core; enabled() test is unnecessary now that all optional keyboards are slot devices. . Incorporate product/instance directinput device IDs. This change generates a more unique device ID for direct input devices by incorporating the product unique identifier and instance unique identifier. This allows for better disambiguation on device ID when mapping controllers via mapdevice config settings (input\input_dinput.h). . Parenthesize optional items in input menus (ui\inputmap.cpp) . Lock out ioport_fields independently of natural keyboard state . Fixed Left/Right Sticks for P2 and above (emu\inpttype.h) - Dipswitch fixes in dynax.cpp, mjsister.cpp, nbmj8688.cpp, nbmj8891.cpp, nbmj8991.cpp, nbmj9195.cpp, niyanpai.cpp, segaybd.cpp, snowbros.cpp, srmp6.cpp and ssv.cpp - Renamed (demonwld1) to (demonwld2), (demonwld2) to (demonwld3), (demonwld3) to (demonwld4), (doa2) to (doa2a), (mnight) to (mnightj) and (ronjan) to (ronjans) - Description changes of Bishou Jan (Japan, Ver. 203), Bombjack Twin (prototype? with adult pictures, set 1), Bust a Move 2 - Dance Tengoku Mix (Japanese ROM ver. 1999/07/17 10:00:00), 'lots of DECO Cassette games', Demon's World / Horror Story (set 3), Demon's World / Horror Story (set 4), Demon's World / Horror Story (set 5), Dynamite Baseball '99 (Japan) (Rev B), Dynamite Baseball NAOMI (Japan), Everyone's A Winner (Barcrest) (MPU4) (unknown rev, bad), Idol Janshi Suchie-Pai II (v1.0), Idol Janshi Suchie-Pai II (v1.1), Mutant Night (Japan), New 2001 (Italy, Ver. 200N), Ron Jan Super, Royal Poker V 1.85, Sega Strike Fighter (Rev A), Sega Strike Fighter (Rev A, no training mode), Splendor Blast (set 1), Tarzan Chuang Tian Guan (V109C, set 2), Tatakae Genshizin Joe & Mac (Japan, bootleg), World Series 99 / Super Major League 99, World Series Baseball / Super Major League (GDS-0010) and X-Plan (Ver. 101) - MAME . VIDEO RENDERING SYSTEM . HLSL/BGFX . Fixed target texture dimension when -intoverscan is used (this fixes the appereance of scanline and shadow mask) . Added target_scale and screen_count uniforms . Rounded corners now remain aligned with screen bounds when -intoverscan is used (single screen only) . Use floorf rather than floor for float->float (bgfx\chain.cpp, chainmanager.cpp and d3d\d3dhlsl.cpp). Fixed OSX build: Use fabsf rather than abs for float->float (emu\render.h). . Fixed aspect ratio of rounded corners . Reduced defocus effect to one pass (HLSL/BGFX). Removed second defocus pass. Limited defocus stength to a maximum of 2.0. . Fixed use of uninitialized stack memory in render\drawd3d.cpp . D3D/HLSL . Refactored d3d_render_target: Removed cashe_target class. Moved cashe texture and surface to d3d_render_target class. Render targets are now created per screen not per screen texture. Removed useless creation of render targets for ui textures (render\d3d\d3dcomm.h, d3dhlsl.cpp/h and drawd3d.cpp). . Fixed null reference exception (D3D/HLSL), when toggling from fullscreen to window mode. . Disabled clearing of render targets in several passes (HLSL). Which was quite a performance overhead and not necessary because the shaders fill every texel of a target without blending. . Improvements to rgb_t . Make most class methods constexpr . Make color constants (white, black, etc.) into constexpr factory methods, in order to fix a static initialization problem discussed on the MAMEWorld forums. Note that while C++14 allows constexpr member variables to be initialized outside classes, current compilers' support for C++14 constexpr rules has proven to be lamentably deficient. . Created bitmap_rgb32::erase to simplify syntax in update handlers . Erased bitmap_rgb32::erase . Make D3D9 a little more discerning in what level of bad hardware it will allow (render\drawd3d.cpp) . UI . Fixed crash in ui\selgame.cpp . Added "Software Media" folder (swpath). Allows users to specify location of loose software (emu\diimage.cpp, emuopts.cpp and ui\dirmenu.cpp). . Split media_identifier and console in separate files . 3rdparty . Added ASIO networking library. Removed libuv library. Replaced code usage of libuv with ASIO library. Added more warning disable to support compile on various Clang versions. . Added Sol2 header only library as future replacement for luabridge . Added Linenoise Next Generation library for CLI . PLUGINS: Updated hiscore.dat . Increased number of OSD modules (modules\osdmodule.h) . Register window messages before creating window (output\win32_output.cpp) . Proposal for new system flags: MACHINE_NODEVICE_MICROPHONE For unemulated microphone, MACHINE_NODEVICE_CAMERA For unemulated camera, MACHINE_NODEVICE_PRINTER For unemulated printer, MACHINE_NODEVICE_LAN For unemulated linking multi-cabinet capabilities and MACHINE_NODEVICE_WAN For unemulated networking capabilities. Restructured MACHINE_FLAGS into FATAL / WARNING / BTANB main categories, in order to make them easier to expose. . Initial work on console interface. Use Ctrl-Z to close console on any OS. To start use -console parameter. . Soft resets no longer turn back clocks on devices (device_rtc_interface) . Cleanups and refinements . Give RTCs their own phase of machine initialization, right after NVRAM loading . Make RTC feature flag overrides const, including one new one . Make rtc_clock_updated a required override . Fixed INI creating for individual games when the game and the driver share the same name (source.ini must now be in the source subfolder) (ID 03045). . We introduced a 16-char limit to parent sets, for eg. nintendo vs prefix, or when you're short 1 or 2 letters. - Android: Set Android 5.0 as minimum one, older API are not compatible - MESS . Sound Blaster 16 . Drop the upper bit of the address when shifting left, as described (machine\cs4031.cpp). This fixes 16 bit audio in sb16 diagnose.exe. . Intel documentation is conflicting, which prompted osdev to claim that 128k DMA was impossible. Masking the lowest bit of the page instead of the upper bit of the address makes more sense and it does also fixed the issue with SB16 diagnose.exe playing silence (bus\lpci\southbridge.cpp, machine\cs4031.cpp, wd7600.cpp and machine\at.cpp). . Applied IBM AT 16-bit DMA wrap round fix to other implementations. . Added "headphones" to ATAPI CD-ROM drives - Compiling . Fixed two leaks (input\input_winhybrid.cpp and sound\xaudio2_sound.cpp) . Added new string conversion overloads [a|w|t|utf8]_from_[a|w|t|utf8_]string(xyz.c_str()). Bulk renaming of Windows string conversion functions: utf8_from_[a|w|t]string ==> osd::text::from_[a|w|t]string and [a|w|t]string_from_utf8 ==> osd::text::to_[a|w|t]string. . Some bool <-> int not needed conversions, also cleaned drivenum.* was using memset for clearing vector. . Changed dynamic_buffer to std::vector . Use std algo instead of manual setting (emu\screen.cpp) . Use standard types uintptr_t, char16_t and char32_t instead of FPTR, utf16_char, unicode_char . 3rdparty . LUA engine: Added new types, fixing LUA part (mame\luaengine.cpp). . Fixed Google benchmarks build and cleanup U64 and S64 macro definition, it is now in standard (benchmarks\eminline_native.cpp, eminline_noasm.cpp and osd\osdcomm.h). . NOTICE (TYPE NAME CONSOLIDATION): Use standard uint64_t, uint32_t, uint16_t or uint8_t instead of UINT64, UINT32, UINT16 or UINT8. Also use standard int64_t, int32_t, int16_t or int8_t instead of INT64, INT32, INT16 or INT8. . Converted lot of TRUE/FALSE to real boolean and updated types . Fixed VS build (noticed only when using MSBUILD=1) (scripts\src\3rdparty.lua) . Added virtual for consistency in cpu\alto2\alto2cpu.h, cp1610\cp1610.h, hd61700\hd61700.h, hphybrid\hphybrid.h, i860\i860.h, jaguar\jaguar.h, m6800\m6800.h, mb86233\mb86233.h, pic16c5x\pic16c5x.h, scmp\scmp.h and scudsp\scudsp.h. - Debugger . Fixed disassembly if 6809 is interrupted mid-instruction (debug\debugcpu.cpp and dvdisasm.cpp). Sync pc & curpc and removed superfluous callimport()/callexport() on STATE_GENFLAGS. . Make sure all CPU's export STATE_GENPCBASE and use safe_pcbase() for everything in the debugger, which allows interruptible CPU's to work properly. Changed CPU cores pcbase handling to be consistent with the majority of CPU cores, now that the debugger relies on it. . Fixed disassembly window updating when you set pc/curpc on 68000 and Z80. Removed masking from SH-2 curpc to be consistent with old versions and the pc passed by the interpreter to the hook to be consistent with the DRC. . Added row size as sixth parameter to debug dump command (debug\debugcmd.cpp) . Fixed disassembly window for ADSP21062, ALPHA-8201, ALPHA-8301, APEXC, I80186, PDP8 and MIPS3 CPUs. 0.178 - New games: Poker (Electro-Sport), Slap Shooter and Star Audition - New Working games: Grand Prix '98 (V100K) - New Non-Working games: Pop'n Stage (ver JB-A) and Labeled 'WU- MARY-1A' Music by: SunKiss Chen - New clones: Air Trix (original), Battles (set 2), Chicken Draw (2131-04, U5-0), Condor (S C Novar bootleg of Phoenix), Crush Roller (set 3), Elevator Action (4 pcb version, 1.1), Gemini Wing (bootleg), Jumping Cross (set 2), Le Grandchamps, Ms. Pac-Man (bootleg, set 2), NASCAR Racing (original), NBA Jam Extreme (ver. 1.10I), Nibbler (rev ?), Phoenix (Amstar, set 2), Pinguinos (Spanish bootleg on Pac-Man hardware), Popeye (Japan, Sky Skipper hardware), Raiden Fighters (Great Britain), Road Riot 4WD (set 1, 04 Dec 1991), Rolling Crush (version 1.03.E - 1999/01/29), Sauro (bootleg), Stratovox (set 2), Street Fighter (Japan, pneumatic buttons), Super Qix (World/Japan, V1.0), Tecmo World Soccer '98 (JUET 980410 V1.000), Terminator 2 - Judgment Day (prototype, rev PA2 10/18/91) and Virtua Fighter 3 (Revision D) - New TourVision games (Softwarelist: hash\pce_tourvision.xml): Barunba and Power Tennis - New drivers: marywu.cpp - New devices: at29c020, ms1_tmap, msm5832 and sharp_lh28f016s_16bit - New mame.ini options: monitorprovider - i860XR CPU: Fixed an issue on the i860 disassembler that could cause an undefined string to be used (i860\i860dis.cpp) - MC68340 CPU: Memberize public non-member function - PSXCPU: Fixed buffer overflow when debugging (cpu\psx\psxdasm.cpp) - TMS99xx CPUs: Added save state support to TMS99xx; replaced new/delete by unique_ptr. - AY-3-8910A sound: Slight improvements to AY8910 error logging, with some messages now disabled by default. - AY-3-8914 sound: Implement register readback masking for AY-3-8914 as used on (MESS) Intellivision - OKI6295 sound: Directly use set_rom_bank - 6840 PTM: Fixed channel card memory tests in (MESS) CMI IIx. Load the counter when held in reset (machine\6840ptm.cpp). - SCN2674 Display Controller: Make (MESS) Octopus look better (video\scn2674.cpp; ->mpu4vid.cpp) - Sega Custom: Simplify 315-5881 logic and updated comment - Sharp LH28F016S: Added 16-bit hook-up (machine\intelfsh.cpp) - aleck64.cpp: Promoted all games as working minus Magical Tetris Challenge - arkanoid.cpp: Clean up variable names for eventual harmonization with other Taito drivers with MCUs. Comment fixes and variable name clarify. Variable name consistency. - chihiro.cpp: Added debugger command "chihiro threadlist" to list ready threads except current one. Small refactoring. - cischeat.cpp: Added tilemap device to CiscoHeat driver and fixed a few soundlatches - cps1.cpp and mitchell.cpp . Changed joysticks to 4-way in ghouls, pang, spang and pang3 as flyers and manuals indicate . Mark button 2 in pang and spang as optional . Removed buttons 2 and 3 in pang3 (even service mode only shows one "Shot" button) - cps2.cpp . Use keys that can be programmed onto a CPS2 motherboard . Small step towards getting rid of the cps2_dead machine config - cmmb.cpp: Minor consolidations. Inputs and basic flash device hookup. - dwarfd.cpp: Fixed graphics in Poker (Electro-Sport) - freekick.cpp: Added flipscreen support to Gigas, Free Kick and Counter Run - goldnpkr.cpp: Added clickable buttons to layout\goldnpkr.lay - homedata.cpp: Fixed sound I/O write in Homedata driver (affected hourouki, mhgaidenm, mjhokite, mjclinic and mrokumei). This fixed missing voices of "Reach", "Ron" etc. in Mahjong Hourouki (ID 00490). - megasys1.cpp: Made Mega System 1 tilemaps into a device - midvunit.cpp: Fixed Midway V Unit wheel output. It seems the diagnostics test for the wheel is poorly coded for turning left as it is correct in game. - naomi.cpp . Docs update. Added machine\naomibd.cpp notes. . Fixed crashed before OK in some sets (ID 06364). The error 'Caught unhandled St11logic_error exception: basic_string::_M_construct null not valid' appears when the game is started (emu\parameters.cpp). Atomiswave developer and game names corrections. . Added Altera's config EPROM dump - nss.cpp: Revised/corrected hardware info - photon2.cpp: Documentation update based on schematics research - seattle.cpp . Added layout for California Speed, Hyperdrive and Vapor TRX. . Minor improvement on logging. The LOG define isn't needed as everything expected is found. What could remain would be considered an error and needs to be logged. - segas24.cpp . Moved FDC legacy logging behind a compile switch . Fixed maximum shot power in Dynamic Country Club (ID 00792) - simple_st0016.cpp: Marked all games in st0016.cpp as MACHINE_NO_COCKTAIL - stfight.cpp . Switched to configured banking . Fixed save state problem with clone Cross Shooter (2 PCB Stack) - stv.cpp: Removed optional joystick control inputs from Virtual Mahjong since this game only supports Mahjong panel but was defaulting to Joystick. - superqix.cpp . Vs. Hot Smash: Got rid of timer hacks for Z80<->MCU communication. Implemented 68705 DDR registers and proper readback of Z80<->MCU semaphores. Got rid of HOLD_LINE hack for NMI by implementing NMI ACK register. Added more driver notes. Consistencized the AY port bits. Added notes about what the majority of the hotsmash MCU code actually does. Unified memory map for prebillian and hotsmash. Made hotsmash machine config derived from prebillian. . Prebillian: Fixed rom labels and locations and added notes about lack of Taito game ID and PCB label. Improved MCU HLE for Prebillian to use non-anonymous timers instead of scheduler hacks. Consistencized the AY port bits. Got rid of hack mame_rand usage for the MCU semaphores in Prebillian in favor of proper implementation. Unified memory map for prebillian and hotsmash. . Super Qix . Shuffled around the Super Qix machine configs to make a bit more logical sense . Added a custom input member to clean up the MCU semaphore implementation for sqix and clones . Added some notes about the sqixb1 MCU code origin. Marked the recovered sqixb1 MCU dump good for that specific set as it matches a dump from a working PCB and updated notes. Replaced bootleg MCU code on sqix and sqixr1 sets with an MCU dump patched from the decapped sqixu MCU, using hints in the bootleg MCU code to figure out what to change. This very likely will match the real sqix/sqixr1 MCU once it gets dumped, but mark it as BAD_DUMP since it is a user-created image. . Added sqixr0 World/Japan V1.0 romset as a working clone, dumped from an early PCB. Renamed sqixr1, sqix, and sqixb1 set long names to include their version numbers. Updated comments about sqixb1, which is in fact an exact copy of sqixr0 with one gfx rom split and the MCU replaced with a bootleg version. Added notes about the greenwire fix on 7H on the V1.0 pcb vs the res/cap fix on later PCBs and notes about V1.0 coin lockout being inverted compared to the later sets. . Changed the samplerate of the sample playback engine from 5khz to 3906hz which sounds more correct in hotsmash, and is directly derivable from the 12mhz PCB xtal. . Variable name consistency. Added notes and some debugger access fences on read handlers. . Added notes about what the various rams on hotsmash/prebillian and superqix actually do, including the framebuffer ram. . Implemented AY-3-8910 mixing based on PCB tracing and added XTALs and notes about "SYSTEM" register bits being incorrect as currently implemented. - taitogn.cpp/zn.cpp: Renamed ZN1/ZN2 bios roms based on the label (where known), renamed the bios sets after the board and moved cat702 to files. - taitosj.cpp . Added semaphore and command handshake flags to audio section. This fixed no attract mode sound after first time loading in piratpet, junglek and jungleh (ID 01170). . Added XTALs for various clocks based on schematics. Documented and implemented AY-3-8910 outputs being tied directly together for 3 of the 4 AY-3-8910 chips. . Added proper handling of sound cpu NMI on sound command register and semaphore writes and clears. Added note about an unemulated filter effect on one of the AY chips. Some savestate and init fixes. . Fixed watchdog timing per schematics, and re-enabled watchdog. Bio Attack doesn't incorrectly trigger watchdog on death anymore. . Cleaned up rom labels/locations for the Elevator Action sets and added notes. Noted that the 4 and 5 board sets dumped so far of Elevator Action are the exact same code and gfx, just split differently. - tecmo.cpp: Added preliminary raster effects, improves ending screen effect in Gemini Wing. - tourvis.cpp . Added Barunba and Power Tennis (Not Working) to hash\pce_tourvision.xml . Updated information for new card images added - vsnes.cpp: Renamed select sets for Nintendo Vs. which cause -verifysoftware confusion with NES softlist titles due to shared setnames in the form of partial hits. This also tests the waters for expanded setnames for parents. - '96 Flag Rally: Needs START1 hooked up for the continue feature, even if it isn't used to start the game. - AGEMAME . Added new internal layouts to aces1.cpp, jpms80.cpp and mpu5.hxx . Fixed 'Fatal Error' when starting any maygay1b.hxx set (ID 06366) . Updated layouts with fixes and improvements . aristmk4.cpp: Added clickable buttons for 3 Bags Full (5VXFC790, Victoria) and clone 3 Bags Full (3VXFC5345, New Zealand) . aristmk5.cpp: Accurate flags. Added missing ARISTOCRAT_MK5_BIOS defines to some sets, fixing changing System Configuration in adonis to anything but game_prg causes a crash (ID 06374). - American Music Poker . Change CPU type to 8088. Hook up a bunch of devices. Identify a few inputs. Hardware notes. . Use PIC for interrupts and correct SN76489 type - Asterix: Added coin counter and lockout - Bagman: Improved graphics in clone Le Bagnard (bootleg on Crazy Kong hardware). - Big 10 . Various modest input/output improvements . Use applicable gambling input types and keypad for numbers instead of BUTTON . Added ticket dispenser for payout (but is there any hopper feedback? no obvious error message) . Added lamp output(?) . Try to puzzle out some more DIP switches based on what the code does - Birdie Try: Fixed "Allow Continue" and realized that 0x3c7 protection write is actually related with speed of the ball. Demoted to MACHINE_NOT_WORKING. - Caveman Ninja: Fixed sound ROM hookup in clone Caveman Ninja (bootleg, alt) - Combat School . Added SCREEN_RAW_PARAMS . Fixed text tilemap char select enable and opacity in Combat School. This fixed the two rows of garbage blocks at the top of the screen in the 2nd firing range stage (ID 00399). - D. D. Crew: Added inputs to clone D. D. Crew (bootleg), identified OKI write. Missing OKI bankswitch, so sounds are sparse and wrong. - Dirt Fox: Reversed 'Gear Shift Up/Down' - Fighting Roller . Fixed scrolling in Fighting Roller/Roller Aces. This fixed the scrolling bar of initials does not work properly, when you insert your initials (ID 00963). Actually it fixed also "landscape scrolling" when turning right landscape is supposed to go left, not the other way around. . Converted driver foreground to tilemap system and fixed flip flags in it, fixes service mode in clone Roller Aces (set 2). Also fixed a wrap-around regression. - Flower: Some work towards driver - Gold Medalist: Properly mark clones Gold Medalist (set 2) and (bootleg) as unemulated protection flag, they never access the video bank register for whatever reason. - Grand Prix '98: Redumped graphics rom (Game now playable) - Hana Awase: Added IRQ ack. This fixed Dealt cards are not random (ID 00435). - Jackal: Fixed coin counter (ID 02555). Note: All revisions flips the coin counter bit between 1 -> 0 five times, causing the bookkeeping to report 5 coins inserted. Most likely solution in HW is a f/f that disables coin counters when any of the other bits are enabled. - Judge Dredd: Swap non playable Primal Rage 2 for playable Judge Dredd for now (machine\idehd.cpp) (ID 06138) - KiKi KaiKai: Fixed coinage dipswitch settings (ID 02349) - Lethal Enforcers: Fixed linescroll in clone Lethal Enforcers (ver JAD, 12/04/92 17:16) (ID 02446) - Lovely Cards: Assume same frequencies used between lvcards and tehkanwc driver (ID 02473) - Mahjong Gakuensai/Mahjong Gakuensai 2: Fixed OKIM6295 and YM2413 sound volumes (ID 01044) - Moon Alien Part 2: Readded original roms to clone Moon Alien Part 2 (older version) - Mr. Driller 2: On-the-fly decryption support for Mr. Driller 2 - Pairs Love: Fixed screen in service mode goes black (ID 00343). Note: Game sets up two identical palette banks at 0-1ff and 0x200-0x3ff in-game, 0x200-0x3ff only in service mode. Maybe there's a color offset register to somewhere? - Pesadelo (bootleg of Knightmare on MSX): Updated comments - PinMAME . Marked all pinballs as NOT_WORKING . Updated idsa.cpp driver - Power Spikes: Assume clone Power Spikes (Italian bootleg) to have OKIM6295 pin7 low - Puzzle Club: Added NO_DUMP for missing title screen - Shanghai Kid: Fixed buttons 1 and 2 are switched (ID 06368) - Shooting Star: Added protection info. Update Art & Magic driver. - Silent Dragon: Fixed dipswitches 'Friendly Fire', 'Power-Up at Stage Clear' and 'Regain Power buy-in' (ID 00611) - Schmeiser Robo: Game has layer bug with flipscreen. Marked game as MACHINE_NO_COCKTAIL (ID 01890). - Space Chaser: Fixed MCFG_MACHINE_START for clone Space Chaser (CV version - set 1). This fixed crashes on reload (-str 8) in a staggered -str 20 run (ID 06371). - Sunset Riders: Fixed protection chip to use the work RAM buffer for horizontal scrolling in collision detection routine. Fixed players/enemies collision detection on slopes amd characters judder when walking diagonally (ID 00952). - Tecmo World Cup '90 . Fixed sprite priority bug with the ball being above the net in Euro League / Tecmo World Cup '90 bootlegs. . Added IRQ acks and second YM2203 sound chip to Euro League, which added piano keys to sound. None of these have flipscreen dip, so why the MACHINE_NO_COCKTAIL? - Time Crisis: Added byteswapped sample rom also to clone Time Crisis (Rev. TS2 Ver.A) - Usagi: Marked game as MACHINE_IMPERFECT_GRAPHICS - missing transparencies. - Wai Wai Jockey Gate-In!: Fixed visible area - Witch: Sort out which inputs and outputs are which. Use standard gambling input types where appropriate. Identify "Attendant Pay" (keyout?) and payout switches. Removed fake DIP switches. Names of real DIP switches no longer all-caps. Expand range of NVRAM. Added two PPIs for I/O. Partially implement hopper output. Clarification regarding 8255s. - Input port . Added support for binding devices to controller IDs (see devicemap.rst). This allows for stable controller IDs even if USB devices are plugged or unplugged, system is rebooted, etc. . Added id() property to input_device. Added an id() property representing unique device ID. This allows the OSD layer to supply display name along with unique identifier. Currently only used to map a physical controller device to controller ID, but can be used more generally in the future. For raw input devices, device ID is full raw input name. For all other devices, we fall back to device name as the device ID. Device ID uniqueness is not currently enforced programmatically. . Changed use of IPT_START to IPT_START1 in bartop52, guab, midyunit, namcos22, sshot and turrett - Fixed rom names in greatgun, midwunit.cpp, sf.cpp, stv.cpp and superqix.cpp - Dipswitch fixes in aerofgt.cpp, big10.cpp, idsa.cpp, igs011.cpp, jangou.cpp, nbmj8688.cpp, nbmj8891.cpp, nbmj8991.cpp, segas24.cpp, sf.cpp, shangkid.cpp, superqix.cpp, taito_b.cpp and taitosj.cpp - Renamed (acpsx) to (coh1000a), (atluspsx) to (coh1001l), (atpsx) to (coh1000w), (cpzn1) to (coh1000c), (cpzn2) to (coh3002c), (crush3) to (crush4), (crush4) to (crush5), (machridr) to (nvs_machrider), (machridra) to (nvs_machridera), (mightybj) to (nvs_mightybj), (nbajamex) to (nbajamexa), (platoon) to (nvs_platoon), (popnstex) to (popnstage), (psarc95) to (coh1002e), (roadriot) to (roadriota), (roadrioto) to (roadriotb), (taitofx1) to (coh1000t), (taitogn) to (coh3002t), (tps) to (coh1002m), (vf3) to (vf3c) and (vspsx) to (coh1002v) - Description changes of Air Trix (Rev A), Battles (set 1), Chicken Draw (2131-04, U5-1), Condor (Sidam bootleg of Phoenix), Crush Roller (set 4), Crush Roller (set 5), Dragon World II (ver. 100H, Hong Kong), Elevator Action (5 pcb version, 1.1), Face Off (Japan 2 Players), Idol Janshi Su-Chi-Pie II (v1.1), Idol Janshi Su-Chi-Pie II (v1.0), Jumping Cross (set 1), Le Bagnard (bootleg on Crazy Kong hardware), Ms. Pac-Man (bootleg, set 1), NASCAR Racing (Rev A), Net Select: Salaryman Kintaro (ID 06375), Net Select Horse Racing: Victory Furlong, Phoenix (Amstar, set 1), Planet Harriers (Rev A), Road Riot 4WD (set 2, 13 Nov 1991), Road Riot 4WD (set 3, 04 Jun 1991), Rolling Crush (version 1.07.E - 1999/02/11, Trust license), Stratovox (set 1), Super Qix (bootleg of V1.0, 8031 MCU), Super Qix (bootleg, No MCU), Super Qix (World/Japan, V1.1), Super Qix (World/Japan, V1.2), Tank Force (US, 2 Players), Tank Force (US, 4 Players), Task Force Harrier (US) and World Club Champion Football Serie A 2001-2002 Ver.2 (CDP-10001C) - MAME . VIDEO RENDERING SYSTEM . Fixed GH#1364 (bgfx/chains/crt-geom-deluxe.json and crt-geom.json) . Converted OSD monitor info to modules plus added DXGI implementation. Converted the monitor information code from video.cpp in SDL and Windows to modules. . UI . More new features for UI graphics viewer . Mouse over GFX tiles to reveal pixel values . Mouse over tilemap to reveal tile codes and colors . UI tilemap scrolling controls are now orientation-relative . Make mouse visible everywhere in UI graphics viewer by treating it like a menu. Added all necessary getters to tilemap_t and a few more. Added comment about role of decoder in tilemap creation. . More consistent use of integer types in tilemap_t and other graphics-related classes. Define indirect_pen_t, requiring a slight reordering of emu.h due to an unsurprising dependency. . Fixed File Manager when cfg image directory invalid (ui\imgcntrl.cpp) . Removed datfile_manager (ui\datfile.cpp) and moved UI dats to LUA plugin . Changes the selgame UI sidebar get the dat information from a plugin rather than the hardcoded C++ . Much easier to add other dat files and allow for scripted data . Example included that uses the hi2txt XML parser files to display high score info from hiscore file or NVRAM . Removed enable_dats() option, no longer needed after the switch to LUA plugin. . Fixed remove favorites via "configure machine" menu (ui\miscmenu.cpp) . Sort favorites game list by description (ui\selgame.cpp) . Fixed custom renderer alignment (ui\custui.cpp) . Fixed the failure to select the last used machine if quit with the focus in another part of the main menu. . Exporting game list is now also possible for the favorites list, except if it has software in it (ID 06383) . Consolidated code that inputs characters into buffers. Fixing issue where a multibyte character could cause the maximum size to be exceeded, and obtaining the maximum size with std::numeric_limits (ui\utils.h). . Fixed an off by one error when identifying best entries for typeahead on the file selection and software list dialogs (ui\filesel.cpp and swlist.cpp) . DEVICE IMAGE INTERFACE . Changed the "extension as filetype" behavior for software list images to be opt in behavior . Resist emu\dirom.cpp to out-of-bounds bank numbers. Added a mandatory callback on bank change to dirom. . Added some documentation (device_memory_interface.rst and device_rom_interface.rst) . Allows devices to indicate whether image creation should be supported at the command line (emu\diimage.cpp and image.cpp). This addresses MT bug #6372. The prior issue is that creating serial and/or printer output relied on how image_load() would create images that were not there. This behavior was not universally desirable (the consensus was that it was wrong for disk images, up in the air for cassettes etc). This change makes it possible for devices to control this behavior. Currently I have it associated with image_type(); this might not be the ideal fix. . Now setting m_filetype for images loaded from softlists (emu\diimage.cpp) . PLUGINS: Updated hiscore.dat . SOFTWARE LIST . Increased max length of parent name to 16, for evaluation purposes (emu\softlist_dev.cpp and validity.cpp). Check that driver names contain only [0-9a-z_] (emu\validity.cpp). . Check characters in softlist setnames, fix errors (emu\softlist_dev.cpp). . Added ROM management for newbies (aboutromsets.rst), FAQ entry on common problems with unofficial builds. . Imgtool now supports HP9845B tape image. Retired imgtool_basename(), in favor of core_filename_extract_base(). Changed the read_sector apparatus to use std::vector. - SDLMAME . Partially fix SDL joysticks with same name . Each mouse should track its own double-click status (input\input_sdl.cpp) - Compiling . 3rdparty . Updated BGFX and BX and updated MAME code to support new API. Generated missing shaders. . Updated to LUA 5.3.3 . Updated GLM, Google Benchmark, GoogleTest, PugiXML and RapidJson . Changing an 'assert(false)' to 'throw false', so that this always errors even in non-debug builds (util\opresolv.cpp). option_guide C++-ification, touched up imgtool. . Subscripting std::array<..., 0> is bad; working around this specific case (util\opresolv.h) . Introduced an STL container and changed util\opresolv.cpp to use it. Alphabetizing the #include's and added typedef's for the reverse iterators (util\coretmpl.h). . Initial imgtool C++-ification . Hack for Clang compiling on windows, as it can't tell that calling ::RaiseException will prevent the function from returning (3rdparty\compat\winsdk-override\wrl\internal.h). . Fixed compile for DirectWrite font provider and make it compile with normal windows build (font\font_dwrite.cpp). Disable unknown-attributes & ignored_qualifiers to allow font_dwrite.cpp to build with Clang (scripts\genie.lua). . Changed win_get_window_text_utf8() to return std::string. This eliminated an unnecessary conversion step. . Fixed srcclean when doing multiple files in a single run - Debugger . Fixed trace command access a parameter beyond the list supplied, added an error message if you provide an invalid boolean, allow boolean to be case-insensitive and skip empty strings when parsing booleans. . Initial work towards debug command hookups for Sega Saturn. Usage: saturn inside debugger console. saturn help for a list of currently available commands. . Allow STRIP_SYMBOLS=1 and DEBUG=1 to be applied simultaneously 0.177 - New Working games: Magical Butterfly, Playmatic MPU 1 games, River Patrol (Japan) and Techno Drive - New Non-Working games: The Key Of Avalon 2.5 - War of the Key (client) (Rev B) (GDT-0019B), The Key Of Avalon 2.5 - War of the Key (server) (Rev B) (GDT-0018B), Mobile Suit Gundam 0079 Card Builder (CDV-10010), Mobile Suit Gundam 0083 Card Builder (CDV-10030), Multi Game I (unknown V2.4), Quest of D (CDV-10005C), Unknown Fun World A0-1 game, Unknown Fun World A7-11 game 1 and Unknown Inter Games poker - New PinMAME games: Al's Garage Band Goes On A World Tour (R06a), Amazon Hunt (alternate set), Amazon Hunt II (French), Amazon Hunt III (French), Apollo 13 (2.03), Apollo 13 (5.01, Display 4.01), Arena (alternate set), Basket Ball, Batman Forever (1.02), Batman Forever (2.02), Baywatch (3.00 Dutch), Baywatch (4.00 English), Big Bat (Bat game), Bike Race (2-ball play), Bike Race, Black Knight 2000 (LA-2), Black Knight 2000 (PA-5), Black Knight 2000 (PA-7), Breakshot (1.2), Centaur (alternate set), Centaur (Inder), Chicago Cubs' Triple Play (alternate set), Continental (Bingo, alternate version), Cue Ball Wizard (rev.2), Cue Ball Wizard (rev.3), Cyclone (L-1), Dale Jr. (5.00), Devil Riders (French speech), Diner (L-2), Fire! (L-2), Flash Dragon (alternate set), Galaxy Play 2, Godzilla (Pinball, 0.90), Godzilla (Pinball, 1.00), Grand Lizard (L-3), Guns N Roses (3.00 Dutch), Guns N Roses (3.00 French), Hang-On (Sonic), Hook (4.01 with prototype sound), HyperBall (L-3), Independence Day (v2.01 France), Independence Day (v2.02 France), Io Moon, Iron Balls, Kidnap, King Kong (1.0), Kiss (prototype v.2), Laser War (8.1), Lethal Weapon 3 (2.03), Lost in Space (1.01 Germany), Lost in Space (1.01, Display 1.02), MAC Jungle (New version), MAC's Galaxy, Mars - God of War (French speech), Miss Disco (Bingo), Monte Carlo (Pinball, alternate set), NBA MAC, Petaco (new hardware), Petaco (new hardware, alternate set), The Phantom of the Opera (2.9), Phantom Ship, Pin-Bot (L-1), Pistol Poker (R01), Punchy The Clown (R03), Punky Willy, Raven (alternate set), Red Baron (Pinball), Riverboat Gambler (PA-7), Robocop (3.0), Secret Service (4.2 alternate sound), Sir Lancelot, Soccer Kings (alternate set), Space Jam (2.00), Space Panther, Space Shuttle (L-3), Space Team, Space Train (Pinball), Spring Break (alternate set), Star Trek 25th Anniversary (1.17), Star Wars (1.06), Starship Troopers (2.00), Strikes n' Spares (rev.2), Swords of Fury (L-1), Taxi (Marilyn) (LU-1), Taxi (P-5), Thunder Man, Time Machine (1.8, Germany), Torpedo Alley (1.6), Unknown Game (MAC #1808), V.1, Viper Night Drivin' (1.02), Volcano (Sound Only set 1), Walkyria, The Who's Tommy Pinball Wizard (1.02), Wild Texas and X-Files (2.00) - New clones: Air Gallet (older, Europe), Air Gallet (older, Hong Kong), Air Gallet (older, Korea), Air Gallet (older, Taiwan), Air Gallet (older, USA), Akuu Gallet (older, Japan), Casino Five (3315-02, U5-2B), Champion Base Ball (Japan set 3), Dealer's Choice (E4A1), Deluxe 4 U (ver. 0107, 07/01/2000), Escape from Mars (bootleg of Lunar Rescue), Gals Panic S - Extra Edition (Europe, set 2), Golden Tee '98 Tournament (v3.02), Gulf Storm (Korea), Jolly Card (Austrian, set 2), Jolly Joker (Apple Time), Jungler (Subelectro, bootleg on Scramble hardware), Metamorphic Force (ver AAA), Mobile Suit Gundam 0079 Card Builder Ver.2.02 (CDV-10024B), Mobile Suit Gundam 0083 Card Builder Check Disk (CDV-10031), Mobile Suit Gundam 0083 Card Builder Ver.2.10 (CDV-10037B), New Zero Team (V33 SYSTEM TYPE_B hardware), The NewZealand Story (US, old version) (older PCB), OutRun 2 Special Tours (Japan) (Rev A) (GDX-0011A), Ring & Ball (unknown title), Super Hang-On (Hang-On conversion, Japan, FD1094 317-0039), Super Street Fighter II X: Grand Master Challenge (Japan 940311), Teenage Mutant Ninja Turtles (US 4 Players, version H), Terminator 2 - Judgment Day (rev LG1 11/04/91), Unknown Fun World A7-11 game 2, Virtua Cop 3 (Rev B) (GDX-0003B), Wangan Midnight Maximum Tune (Japan) (Rev B) (GDX-0008B) and Wangan Midnight Maximum Tune 2 (Japan) (Rev A) (GDX-0015A) - New drivers: barni.cpp, idsa.cpp, inderp.cpp, joctronic.cpp and macp.cpp - New devices: airraid_vid, cdp1863, dooyong_ram_tilemap, dooyong_rom_tilemap, rshark_rom_tilemap and stfight_vid - New mame.ini options: unevenstretchy and autostretchxy - H8 CPUs: Changed endianness of H8 ADC register (cpu\h8\h8_adc.cpp). This was broken in a rewrite a long time ago, breaking the controls in some Namco System 12 (and probably 23) games. This commit improves controls in golgo13, g13knd and technodr. - 8085A CPU: Fixed i8080 status callbacks during push/pop (i8085\i8085cpu.h) - I8086 CPU: Made common_op virtual for wip tool (cpu\i86\i86.h) - I80186 CPU: Less errorlog spam - I386, MIPS and PPC CPUs: Store address of elemtnt 0 of m_table and return it in vtlb_table, with this in debug mode i386 is 1.7 times faster (emu\divtlb.cpp). - T11 CPU: Fixed IRQs. This fixed Atari's APB police car graphics problem at the point you drive away from your starting square (ID 00550). - TLCS-90 CPU: Fixed a nonsense check - AICA sound: Added ADPCM diff value clamp based on encoder research - C352 sound . Replaced C352 core. The new core has working noise generator and sample interpolation. . Rearrange C352 channels, removed rear channels for systems without second DAC. Rearrangement speakers for Namco NB2. . Removed MACHINE_IMPERFECT_SOUND flags for C352 games - ES5505 sound: Attempt to fix 32bit crash - OKI6295 sound: Fix for save state reloading for many machines using OKI6295 - Sega/Yamaha 315-5560 sound: Make multipcm cache sample data on KeyOn - CHDMAN . Unbreak large files after refactor . Removed create_option_guide() as you can't create CD's (imagedev\chd_cd.cpp) - Discrete Netlist . Minor include cleanup . Fixed a memory hole caused by assign operators . More C++ . Added doc target to netlist makefile. Removed old style cast. . Use noexcept in netlist code where appropriate. Use macro NL_NOEXCEPT if debug builds would throw an exception (e.g. by using nl_assert). This is not entirely safe. Going forward, nl_assert should call log first and than throw. Fixed noexcept and NL_NOEXCEPT to pass g++ 6.x builds. . Added target mingw to standalone netlist makefile . Added a preliminary parser for RINF netlist format - ISA: Check get_card_device before using. This fixed crash/exception at initialization in various machines using ISA (ID 06328). - Serial device interface: Make buffered serial a mixin to promote reuse (rs232\keyboard.cpp, rs232.h, terminal.cpp, emu\diserial.h) - TMS9902 controller: Improved logging; fixed missed CTS signal, outgoing RTS and incoming DTR. - airraid.cpp, darkmist.cpp and stfight.cpp . Various Seibu Refactoring: Air Raid, Street Fight and Dark Mist all basically use very similar video systems (4 layers, 2 of them being ROM based tilemaps, a CLUT prom for each layer which controls colours and transparency handling) this takes some steps towards allowing a common implementation of it. . Street Fight and Cross Shooter (Street Fight type hw) use a common motherboard but different Video Boards. This makes the video boards into devices to faciliate this. . Added missing_dependencies check to video\airraid_dev.cpp (fixes segfault in tilemap viewer) . Added assert to device_gfx_interface::palette() to help catch dependency mistakes like the above (emu\digfx.h) . Added MACHINE_IMPERFECT_SOUND to clone Cross Shooter (2 PCB Stack) (music desyncs a lot) - alg.cpp and cops.cpp: Separation the LDP-1450 laserdisc player to its own device - amaticmg.cpp: Corrected technical notes - centiped.cpp: Correct tag for the ay8910 and removed unneeded callback. - chihiro.cpp . Ghost Squad, The House of the Dead III, Sega Club Golf 2006 Next Tours, Virtua Cop 3 and Wangan Midnight Maximum Tune boots and Sega Network Taisen Mahjong MJ 2 (Rev C) throws an exception. . More USB. Comments-docs update. - dooyong.cpp . Emulated mixing of two 4bpp tilemaps to make 8bpp background in Pop Bingo. Also initialise/save palette bank properly for 8-bit Dooyong games. . Make tilemap generator into a device, move a whole lot of stuff from video start to machine config. . Converted rshark/superx ROM-based tilemaps to device as well and removed all the trampolines. . Clean up, encapsulate stuff, use derived machine configs and better represent the 16-bit text layer block on 8-bit machines. - eprom.cpp: Fixed save state regression - esd16.cpp: Minor documentation update - galpani3.cpp, jchan.cpp and kaneko16.cpp . Stop trashing memory in machine\kaneko_calc3.cpp. This fixed MAME crashed when exiting B.Rap Boys (ID 06349). . Fixed read case in kaneko_calc3.cpp and make kaneko_toybox.cpp safe as well - konamigx.cpp: Comment a printf for performance reasons (type4_prot_w state). This fixed MAME produces several messages about unknown protection command during run in rungun2 and slamdnk2 (ID 05584). - kurukuru.cpp: Input/output improvements: Ticket dispenser now works for real, dispensing on command rather than like crazy. Correct "Payout Mode" DIP settings. Correct DSW1 settings in Pyon Pyon Jump. Rename coin inputs and coin-related DIP switches and reorder them by increasing denomination. Remove bogus "Unknown" inputs that aren't actually used. Full character names only for Kuru Kuru Pyon Pyon (except in bookkeeping mode). Reset button now mapped as "Memory Reset" (though it also resets the program). Random notes based on program code. - midvunit.cpp . Added basic wheel force feedback reference and made notes on other outputs . Finished implementing motion controller. Motion test will succeed and everything sent to motion controller goes to stdout. . Added layout for Midway V-Unit games (Cruis'n USA, Cruis'n World and Off Road Challenge) . Dumping Galil commands to osd_printf_error for now. Not confident enough in the rest of the code to include tests for them so improved the comments about them instead. - midzeus.cpp: Fixed save state crashing in The Grid and Cruis'n Exotica - namconb1.cpp, namcos11.cpp, namcos12.cpp and namcos23.cpp . Updated H8/3002 and C352 frequencies for namcos12 and namcos23. This is based on sound driver research, and comparing the H8/3002 ND-1/ND-2 programs with the System 12 and 23 programs. The figures are similar to the previously measured clock speeds so chances are the earlier values were just measurement error. Removed MACHINE_IMPERFECT_SOUND flags for namcos23.cpp. . Fixed incorrect C352 clock frequency in namcos11 . Fixed sound timing in namconb1 for some games. Did some digging into the sound timing issue in certain NB-1 games. It seems like the C75 MCU does not like non-60 hz interrupt intervals, wanting the interrupts to sync with a 120hz internal timer. By moving the interrupt callbacks to separate 60 hz timers (instead of the 59.7 scanline timer), this fixes the sound tempo in nebulray, gslugrsj, gslgr94u, clones and vshoot. . Changed endianness of H8 ADC register (cpu\h8\h8_adc.cpp). This was broken in a rewrite a long time ago, breaking the controls in some Namco System 12 (and probably 23) games. This commit improves controls in golgo13, g13knd and technodr. . Make Techno Drive workin . The game previously displayed a 'COIN ERROR' at bootup. Fixed this by patching the sub CPU H8 program (not the best fix maybe but I hope it will work for now). . The contents of 'th1fl3l.12' and 'th1fl3u.13' appeared to have been swapped. Swapped the filenames and placed them at the proper memory location (0x1800000) and the game no longer crashes at the Namco logo. Played through the game a few times and it seems to be fully working now. . H8 SCI improvements. This should hopefully prevent the sub CPU from locking up (and making controls unresponsive) in Techno Drive . To play the game, press F2 to enter the test menu, navigate to GAME OPTIONS and disable the printer by setting "PRINTER" to OFF. Printer not emulated. - naomi.cpp . Added all known Sega DIMM board firmware dumps . Dumped Ferrari F355 Japan BIOS - neodriv.hxx . Added mahjong panel to Mahjong Kyo Retsuden . Fixed oversized sprites region in Digger Man - segasp.cpp: Migrate driver to ROM_PARAMETER for board ID - skylncr.cpp . Improvements to almost all games in Sky Lancer driver . Use standard input mappings in all games except Sonik Fighter . Added working hopper outputs and payout buttons . Promoted Magical Butterfly to WORKING after solving the protection (the code wasn't encrypted) and added the button lamps internally associated with it . Decrypted Butterfly Dream 97, which is almost working now with obvious graphical glitches and some apparent input problems. . Created address_space_debug_wrapper to deal with pedantic but common issue - tiamc1.cpp: Tilemap bit layers disable control (used in test mode only) - toaplan2.cpp: . Added NVRAM to Power Kick and Othello Derby; document the reset mechanism for the latter. . Added ticket dispenser to Power Kick (seems to work for the most part). . Removed numerous bogus DIP switches. . Thoroughly reconfigure coin inputs in Power Kick and adding counters and lockouts for all three (including the "Key In" input that really isn't). . More meaningful settings for the "Payout" DIP switch in Power Kick (based on program code). - triforce.cpp: Comments-docs update - uapce.cpp: Fixed invalid dipswitch 'Buy-In Feature' - williams.cpp: Added video proms to Turkey Shoot and Mystic Marathon - yunsung8.cpp: Simplified rom loading - AGEMAME . bfm_sc1.cpp, bfm_sc2.cpp and bfm_sc4.cpp: Added new Scorpion 1/2/4 internal layouts. Comment debug helper from being used from bfm_sc4 sets which can really fill up a log when all 3k plus machines are run in a test. Put the DM01 matrix board CPU inside the device for BFM SC2/4. Make the DMD be treated as a screen, avoids tag lookups, adds correct dmd rom to some bfm_sc2 sets etc (video\bfm_dm01.cpp). Improved DMD on/off dot colours (video\bfm_dm01.cpp). . jpmimpctsw.cpp, jpmmps.cpp, jpmsys5sw.cpp and mpu3.cpp: Added new internal layouts . maygay1b.hxx: Partially fix lamp mapping in Maygay M1A/B hardware. Added Maygay M1A MCU bones, commuication not hooked up yet. Fixed Maygay M1A lamping code to work with layouts. Maygay1b: Fixed second set of lamps and partially investigated MCU hookup. Found the rather obvious bug that was actually preventing the 2nd lot of lamps from working. Adding layouts to Maygay M1 driver. Fixed maygay M1A lamping code to work with layouts. Fixed Maygay input strobe order bug. Updated layouts with new MFME2MAME Debug View. Layouts have new fix (same as MPU4) for 'coin slot buttons'. Some reel lamp improvement for 5th reel. Added four new layouts. . mpu4.hxx: Added all known expansions as fragments for DRIVER_INIT. This will permit 'per set' configuration to make the games playable. . mpu4sw.hxx: Fixed many MPU4 set descriptions. Identify and mark hacks. Associate sets with correct games . Added support for MPU4 layouts for games beginning with 'a', based on MFME2MAME conversion. CHR protection data is still not hooked up for many of these sets, so lamping behaviour is incorrect. - Ajax: Slightly adjust visible area (ID 06356) - APB - All Points Bulletin: Fixed IRQs in T11 CPU. This fixed police car graphics problem at the point you drive away from your starting square (ID 00550). - Arkanoid: Clean up comments and fix obsolete set names in comments which have long since changed. Clean up and update notes about which MCUs are used. - Bagman: Got clone Bagman (bootleg on Crazy Kong hardware) to boot, gfx are completely wrong though. - Diamond Derby: Attempt to fix crash on 32bit - Dig Dug: Fixed missing graphics from tilemap 0 (ID 06332). Note: GCC 6.1.0 issue with uninitialized variables. - Dottori Kun . Much better video timing, but still shows glitches in ccovell's ROM . eat_cycles clamps to 0, adjust_icount does do what i intended. - Donkey Kong: Added notes about the Speed-up Kit #2 - Dribbling: Fixed proms (all 4 bits) - Green Beret: Added missing PAL dump to clone Green Beret (bootleg) - Hana Yayoi: Resolve conflicting input bindings - Intergirl: Dumped color PROMs - Laser Ghost: Fixed noticeble offset on the left in the crosshair (ID 01455). Allow gun offset correction to be disabled. - Mahjong games: Designate more memory reset inputs in mahjong games; regularized service inputs in dynax.cpp (dynax.cpp, fromance.cpp, lucky74.cpp, macs.cpp, mayumi.cpp, nbmj9195.cpp, niyanpai.cpp, ojankohs.cpp, pastelg.cpp and royalmah.cpp) - MegaDrive/Genesis (hshavoc.c, megadrvb.c, puckpkmn.c, segac2.c, megaplay.c and megatech.c): Fixed selecting machine/game via softlist though internal menu results exception crash (ID 06326) - Muscle Bomber Duo: Fixed game crashed in demonstration mode (ID 06352) - Need For Speed: Added NFS Underground System Recovery CD dump - Pairs: Restore unique sound rom due cut-n-paste overwrite and not paying attention. - Panel & Variety Akamaru Q Jousyou Dont-R: Fixed OKI6295 banking - Pink Sweets: Found and corrected bad bits in Pink Sweets U2 graphics roms based on comparison 4 dumped versions. Notes: pinkswtsb (2006/04/06 MASTER VER.) and pinkswtsx (2006/xx/xx MASTER VER.) uses same U2 graphics content with 1 bad bit difference in pnkswtsb_u2. normally after manual changes in roms BAD_DUMP flag must be raised, but here we have 4 dumps with almost identical contents (only two 128kb files different/changed from oldest to latest version), so 99.9% with these changes we have full good Pink Sweets U2 nand dumps now. Sad stats: 4 dumps, 2 of them was a bit bad, i.e. 50% cases - so bad quality components was used by Cave in theirs 'expensive' SH3 PCBs. - PinMAME . Updated/WIP Play_1, Play_2, Play_3 and Play_5 drivers. All Play_1 games working. . Started syncing with latest PINMAME. Will add new games directly in the wn (alvg.cpp, bingo.cpp, by35.cpp, capcom.cpp, de_2.cpp, de_3.cpp, de_3b.cpp, gts3a.cpp, gts80.cpp, gts80a.cpp, gts80b.cpp, jp.cpp, kissproto.cpp, peyper.cpp, play_2.cpp, play_5.cpp, s7.cpp, s9.cpp, s11.cpp, s11a.cpp, s11b.cpp, s11c.cpp sleic.cpp, spectra.cpp, techno.cpp, white_mod.cpp, whitestar.cpp and zac_2.cpp). . Added some skeleton drivers - Plotting: Fixed dipswitches in clone Plotting (US) (ID 06343) - River Patrol: Decrypted main roms in River Patrol (Japan) (Game now playable) - Sengoku Mahjong: Input mappings refined based on examination of program code. All service inputs are active switches, not DIP toggles. Added unused SW2 DIPs as displayed in service mode. Added a couple of obscure inputs not shown in service mode. - Time Crisis: Byteswapped sample ROM ts1wavea.2l - Virtua Racing: Added IO board dumps - Input port . Keyboard/terminal improvements . Mark lots of things constexpr in attotime and turn macros into functions . Added base classes for HLE matrix keyboard and buffered RS232 device . Make generic keyboard/terminal more usable . Keyboard has configurable typematic delay/rate . Keyboard has selectable JIS/ANSI layout . Keyboard handles simultaneous keypresses more intuitively . Keyboard uses meta to set high bit . Terminal has configurable auto LF on CR, auto CR on LF and local echo. Terminal has audible bell (see Funky Ball). . Added linefeed key to generic keyboard (maps to ins by default). . Added workaround for MSVC warning (machine\keyboard.ipp) . Default auto CR on LF for generic terminal (machine\terminal.cpp) . Added F16..F20 keys (present on (MESS) DEC LK201 keyboard and its clones) . Devfind revision . Eliminate read_safe as a global function and make it a method of optional_ioport (and required_ioport, for which it makes less sense). . New constructor for optional_ioport_array and required_ioport_array using std::initializer_list to specify tag list . Removed pointer/reference conversion operators for required_ioport and optional_ioport. Explicit getters like found() and target() are now required when dereferencing isn't wanted. Many drivers have been changed to use required_ioport_array and optional_ioport_array to make this cleaner. . Updated numerous drivers that were using read_safe to use I/O port finders generally. Port names have been kept the same as far as possible to avoid breaking saves (some of the optional finders should probably be required). . Give edfbl and monkelf their own memory maps so hacky input reading routines can be removed. . Clean up some legacy static handlers in amiga.cpp and cubo.cpp. . Fixed Gun#2/Aimtrak Dual Lightguns no longer properly detect (input\input_rawinput.cpp) (ID 06185) . OSD input code cleanup (osd\modules\input\input_...) . Removed legacy forms of (required|optional)_(shared_ptr|ioport)_array, use new syntax for I/O port array. - Fixed rom names in bfm_sc2.cpp, merit.cpp, midyunit.cpp, tnzs.cpp, triforce.cpp and williams.cpp - Dipswitch fixes in cclimber.cpp, kurukuru.cpp, neodriv.hxx, play_1.cpp and taito_l.cpp - Renamed (casino5) to (casino5a), (cshooter) to (cshootert), (cshootere) to (cshooter), (m4addrcc) to (m4addrcc__c), (m4addrcc__c) to (m4addrcc), (m4andybt) to (m4andybt__b), (m4andybt__b) to (m4andybt), (m4buc) to (m4buc__n), (m4buc__n) to (m4buc), (m4cashat) to (m4cashat__ar), (m4cashat__ar) to (m4cashat), (m4coscas) to (m4coscas__d), (m4coscas__d) to (m4coscas), (m4crdome) to (m4crdome__j), (m4crdome__j) to (m4crdome), (m4gbust) to (m4gbust__f), (m4gbust__f) to (m4gbust), (m4gclue) to (m4gclue__j), (m4gclue__j) to (m4gclue), (m4goodtm) to (m4goodtm__ae), (m4goodtm__ae) to (m4goodtm), (m4hijinx) to (m4hijinx__ab), (m4hijinx__ab) to (m4hijinx), (m4hypclb) to (m4hypclb__c), (m4hypclb__c) to (m4hypclb), (m4hypvip) to (m4hypvip__b), (m4hypvip__b) to (m4hypvip__e), (m4hypvip__e) to (m4hypvip), (m4jpgem) to (m4jpgem__g), (m4jpgem__g) to (m4jpgem), (m4jpgemc) to (m4jpgemc__j), (m4jpgemc__j) to (m4jpgemc), (m4jwlcwn) to (m4jwlcwn__k), (m4jwlcwn__k) to (m4jwlcwn), (m4lucksc) to (m4lucksc__b), (m4lucksc__b) to (m4lucksc), (m4luxor) to (m4luxor__j), (m4luxor__j) to (m4luxor), (m4madhse) to (m4madhse__s), (m4madhse__s) to (m4madhse), (m4mag7s) to (m4mag7s__ag), (m4mag7s__ag) to (m4mag7s), (m4nhtt) to (m4nhtt__i), (m4nhtt__i) to (m4nhtt), (m4nnww) to (m4nnww__aq), (m4nnww__aq) to (m4nnww), (m4nnwwc) to (m4nnwwc__7), (m4nnwwc__7) to (m4nnwwc), (m4przhr) to (m4przhr__p), (m4przhr__p) to (m4przhr), (m4przmns) to (m4przmns__n), (m4przmns__n) to (m4przmns), (m4przmon) to (m4przmon__i), (m4przmon__i) to (m4przmon), (m4przrf) to (m4przrf__i), (m4przrf__i) to (m4przrf), (m4przrfm) to (m4przrfm__d), (m4przrfm__d) to (m4przrfm), (m4przwo) to (m4przwo__e), (m4przwo__e) to (m4przwo), (m4przwta) to (m4przwta__p), (m4przwta__p) to (m4przwta), (m4ready) to (m4ready__as), (m4ready__as) to (m4ready), (m4rfym) to (m4rfym__ar), (m4rfym__ar) to (m4rfym), (m4rhog2) to (m4rhog2__l), (m4rhog2__l) to (m4rhog2), (m4rhogc) to (m4rhogc__a), (m4rhogc__a) to (m4rhogc), (m4rhr) to (m4rhr__i), (m4rhr__h) to (m4rhr), (m4rhr__i) to (m4rhr__h), (m4rhrc) to (m4rhrc__j), (m4rhrc__j) to (m4rhrc), (m4rhrcl) to (m4rhrcl__c), (m4rhrcl__c) to (m4rhrcl), (m4rockmn) to (m4rockmn__j), (m4rockmn__j) to (m4rockmn), (m4takepk) to (m4takepk__j), (m4takepk__j) to (m4takepk), (m4thestr) to (m4thestr__e), (m4thestr__e) to (m4thestr), (m4tic) to (m4tic__h), (m4tic__h) to (m4tic), (m4toot) to (m4toot__j), (m4toot__j) to (m4toot), (m4tutcl) to (m4tutcl__j), (m4tutcl__j) to (m4tutcl), (m4uuaw) to (m4uuaw__n), (m4uuaw__n) to (m4uuaw), (m4vegast) to (m4vegast__h), (m4vegast__h) to (m4vegast), (m4vegast__w) to (m4vivaes__aq), (m4vivaes) to (m4vivaes__j), (m4vivaes__ab) to (m4vivalv__9), (m4vivaes__i) to (m4vivaes), (m4vivaes__j) to (m4vivaes__i), (m4viz) to (m4viz__j), (m4viz__j) to (m4viz), (m4wta) to (m4wta__d), (m4wta__d) to (m4wta), (metamrpha) to (metamrphe), (nzeroteam) to (nzeroteama), (ssf2xj) to (ssf2xjr1), (ssf2xjd) to (ssf2xjr1d), (ssf2xjr) to (ssf2xjr1r) and (vcop3) to (vcop3a) - Description changes of Al's Garage Band Goes On A World Tour (R02b), Baywatch (4.00 Dutch), Breakshot (1.3), Chicago Cubs' Triple Play, Cross Shooter (2 PCB Stack), Gals Panic S - Extra Edition (Europe, set 1), Godzilla (Pinball, 2.05), Independence Day (v2.02), Jolly Card (Austrian, set 1), The King of Fighters '97 Chongchu Jianghu Plus 2003 (bootleg), Lost in Space (1.01), Magical Butterfly (version U350C, protected), 'lots of MPU4 games', Mystery Castle (R02), Mystery Castle (R03), New Zero Team (V33 SYSTEM TYPE_B hardware, China?), Pistol Poker (R02), Punchy The Clown (R02), Space Jam (3.00 France), Space Jam (3.00 Germany), Space Jam (3.00 Italy), Space Jam (3.00), Starship Troopers (2.01), Super Hang-On (Hang-On conversion, bootleg), Super Hang-On (Hang-On conversion, ride-on, Japan, FD1094 317-0038), Teenage Mutant Hero Turtles (UK 2 Players, version ?), Teenage Mutant Hero Turtles (UK 2 Players, version U), Teenage Mutant Hero Turtles (UK 4 Players, version ?), Teenage Mutant Hero Turtles (UK 4 Players, version F), Teenage Mutant Hero Turtles (UK 4 Players, version S), Teenage Mutant Ninja Turtles (Japan 2 Players, version 1), Teenage Mutant Ninja Turtles (Japan 4 Players, version 2), Teenage Mutant Ninja Turtles (Oceania 2 Players, version ?), Teenage Mutant Ninja Turtles (US 4 Players, version J)', Teenage Mutant Ninja Turtles (US 4 Players, version R), Teenage Mutant Ninja Turtles (World 4 Players, version X), Turkey Shoot (prototype), Viper Night Drivin' (2.01), Volcano (Sound Only set 2) and Volcano (Sound Only set 3) - MAME . VIDEO RENDERING SYSTEM . Fixed benchmarking by adding additive-blend YUY16 support to emu\rendersw.hxx . intscalex, intscaley and unevenstretchx now consider the system orientation and screen rotation . Fixed scanline issue also applied for swapped orientation . Updated BGFX shader binaries which have changed after the last BGFX update . Implement new option -unevenstretchy (complementary to -unevenstretchx) . Implemented new option -autostretchxy, to automatically apply -unevenstretchx or -unevenstretchy based on source native orientation. . Consistently apply -intscalex to the long dimension of the target monitor and -intscaley to the short dimension . UI . Fixed stuk softlist art (ui\selmenu.cpp) . Attempt to prevent GCC optimising away global_alloc_clear (scripts\genie.lua). This fixed UI 'Input (general)' selection menus do not display correctly (ID 06335 and ID 06342). . Moved input_character() template method to ui/utils.h and changed menu_software_list::m_filename_buffer to be std::string. . Created class ui::machine_info for holding calculated machine info and generating descriptive strings for the UI. This absorbs a number of unimportant core functions that existed only for the UI's convenience. . Fixed a regression in the bios menu that caused all devices to be displayed (ui\miscmenu.cpp) . Fixed detection of auto option in ui\submenu.cpp . Moved creation roms list where necessary, this gets back to the menu at acceptable reaction times (ui\selgame.cpp). . Show color values in palette viewer: On the UI graphics viewer's palette screen, moving the mouse over a color rectangle will show the index of the entry and its RGB values in hexadecimal. For indirect pens, the index of the corresponding color will also be shown. For colors in normal RAM-based palettes, the raw (i.e. undecoded) value stored in memory will also be shown. This does not currently work with most buffered palettes (though the Seibu SPI driver has been updated for this purpose), and is totally incompatible with PROM-based or RAMDAC-based palettes. The changes made to the core while implementing this feature may look more substantial than they really are. A whole batch of read methods have been made const, and palette_device now has a generic read_entry function that is used both internally and externally. . DEVICE IMAGE INTERFACE . Removed device_image_interface::has_been_created(). This method was necessary long ago when devices didn't have distinct load and create paths, which has since been addressed. . Created device_image_interface::add_format() protected member and made device_image_interface::m_formatlist be private. . Reverse logic of IMAGE_VERIFY (emu\diimage.h) . Made a bunch of device_image_interface members private (instead of protected) . Changed device_image_interface::load() so that it is no longer responsible for both loading images and softlist items . Turn image init/validate into scoped enums to avoid accidental casts to/from integer and boolean types. The image error should also be turned into a scoped enum - the menus were assuming it was the same thing as an init result. . Changed device_image_interface::load() to take 'const std::string &'. Converted more stuff in diimage to use std::string instead of 'const char *'. . Fixed issues where softlist items (that were not for floppies) were loaded from the software list menu. Fixed more softlist regressions. . Eliminated device_image_interface::make_readonly(): 1. All image loads through softlists are done through common_process_file(), and thus going to be readonly anyways. 2. The cassette.cpp call to make_readonly() seems to be a residual hack, if a failure occurs the image will be unloaded anyways. . device_image_interface::software_name_split() ==> softlist.cpp:software_name_parse(). Also consolidated with code that performed a quick pass to identify whether a piece of text is a software name. . Added device_rom_interface for sound chips with rom/memory map alternative (emu\dirom.cpp). Make dirom robust to too big roms. Added/fixed banking support. Better OKIM6295 fix post-release. . Changing device_image_interface::determine_open_plan() to not support creating an image unless device_image_interface::create() is used . DEVICE FINDING . Fixed missing region report when DEVICE_SELF is used (emu\devfind.cpp) . Make &some_required_shared_ptr[offs] work as expected in const context (emu\devfind.h) . Make (required|optional)_ioport_array perform as well as a real array + shared_ptr arrays cleanup (emu\devfind.h). Devices can be found array-style, too. . Changed warning flags for Clang build: -Wno-missing-braces is unfortunately now necessary to avoid errors on almost every single use of the std::array initializer in devfind.h (apparently C++14 does make double braces optional for std::array initializers, but clang and GCC's -Wmissing-braces never took that into proper account, which is why GCC may still have it disabled by default). Several other Clang-specific warnings have been undisabled; some might perhaps need to be locally reenabled if legacy 3rdparty code or sundry OSD includes happen to disagree with them. The only warning to require any code changes was -Wabsolute-value, which seems to have caught a minor render bug (and nothing more). . Doxyfy a significant chunk of devfind.h. Eliminate a lot of boilerplate code from devfind.h. Keep instantiation of templates in one place to improve build time. Removed some dangerous accessors. . Prepare to make object finders behave like a pointer, not a half-pointer. Make object_array_finder a bit more flexible, centralise instantiation of more templates, more preparation for crud removal (emu\devfind.cpp). . Make object finders behave like pointers for the purposes of implicit casts, dereferencing and array access, not something that's part pointer, part reference, part vector. Require dummy tag to be specified explicitly, magical defaults are unhelpful here as the more common case it to search for a real object. Make the search methods private in concrete classes where possible as users should rely on the resolution process for these things (emu\devfind.cpp). . ROMLOAD . Added some default constructors to rom_entry(), and made it so changes to flags are done through a set_flags() accessor method. . Changes rom_entry from a struct to a class, storing its strings as stdd::string and separated the declaration into a new header. . Fixed breakage caused by a change in how the byte for ROM_FILL is represented with recent changes (emu\romload.cpp) . Introduced a tiny_rom_entry structure, for the purposes of ROM declaration . C++-fiied code that iterates over rom_entry arrays (without usage of rom_[first|next]_*) . Changed how ROM_COPY and ROM_FILL are represented in tiny_rom_entry to be more how they were in the past. Turbo Sub had a ROM_COPY declaration with an expression ('ROM_COPY( "main_code", 0x18000 + 0x2000,...) and this simply did not work with the new model. This required changing ROM_* declarations to more resemble how they used to be and to perform the conversion on load. Adding parentheses around some (but not all) ROM_* macro parameters (emu\romload.h). . SOFTWARE LIST . Fixed issue that prevented softlist items specified on devices from loading . Splitted emu\softlist.cpp/h: The newly refactored rom_entry data structure is used. Keep the refactored softlist code in src/emu, in order to defer the mechanical process of moving it. Keep includes of softlist[_dev].h out of diimage.h, so that changes to either do not trigger an emu.h recompilation. . Changing 'bool iswild' to 'const bool iswild' (emu\softlist_dev.cpp) . Fixed an issue that caused softlist device descriptions to be blank. This also fixes a likely undiscovered issue where the filename in softlist XML parse error messages was also blank. . Changed software_info::find_part() to use std::find_if() . PLUGINS . Updated hiscore.dat . Make path expansion work on win32 (hiscore\init.lua) . Made hiscore path configurable by ini file, fix .hi file path resolution. . MULTI-LANGUAGE . Catalan translation updates . Updated Spanish strings . Validity checking improvements: Always print the name of each driver checked with -validate -verbose, and print before beginning the check to help detect crashes. Fixed already_checked test so that softlists get validated the first time, not every time but the first. Removed #include "validity.h" where not required. attotime::from_double cannot be constexpr because it uses floor. . Fixed UTF-16 encode, pass UTF-16 to Windows character drawing (unfortunately still no nice speaker icon). . New core input type: "Memory Reset": In machines that store their settings and/or bookkeeping logs in some form of non-volatile memory, "Memory Reset" will reset them to some system-provided default. This replaces all existing inputs named "Memory Reset" and a few simply named "Reset" which are known to do this rather than reboot the system (a confusion to be avoided, though many systems will only acknowledge this input at boot time); others should be checked. The default key binding (F1) for this new input type is chosen partly to avoid conflicts with those used by gambling/mahjong games which are currently the only systems to use this, though broader use is envisioned. Added "Memory Reset" input type to Nichibutsu mahjong games (nbmj8688.cpp, nbmj8891.cpp and nbmj8991.cpp) as designated in source. . Make address maps complain when entry bounds lie outside the global mask. Alter a bunch of address maps so all validity checks pass. These includes global address masks in Hexaa and the (MESS) Newbrain FDC (regression testing should be done here). . Use emumem.h defines whenever possible (mem_mask & xxxxxxxx -> ACCESSING_BITS_xx_xx) . Fixed audio distortion with -refreshspeed and -sound xaudio2 (ID 06199). Try to fix audio delay regression caused when fixing -refreshspeed for -sound xaudio2. Minor XAudio2 tweak to not always submit buffers if not needed. . Preliminary VGM player. Use: ./mame vgmplay -bitb file.vgm/vgz. Lots of chips missing, no visualization, no control of anything, no volume control either and no sound shutdown on end of file. Added AY-3-8910, C352, DMG APU, HuC6280, K053260, MultiPCM, NES APU, OKI6295, OKI6295, POKEY, SN76496, YM2203, YM3812, YM2413, YM2612 and YM3526. . Floppy . Fixed an issue with legacy floppy loading caused by filetype() now being a std::string (imagedev\flopdrv.cpp and formats\flopimg.cpp) . Improved floppy sound emulation. Added new floppy sound samples. . Cheat engine . Made path_iterator copy search path to fix use-after-free (emu\fileio.cpp and mame\cheat.cpp). Cleanup mame\cheat.cpp. . Fixed -debug -cheat crash (mame\cheat.cpp) (ID 06269) . Now reporting Win32 ERROR_INVALID_NAME as osd_file::error::NOT_FOUND (file\winfile.cpp) . Make output_manager::find_item much more efficient (emu\output.cpp) . Fixed regression in save states (emu\emumem.cpp) - SDLMAME: Attempt to fix mouse state on startup in SDL builds by initialising members (sdl\window.cpp) - MAC OS X . Remap "P1 Mahjong Score" to / key for OS X (input/input_sdlcommon.cpp; 78-key Apple MacBook & Bluetooth keyboards have no right control key). . Warp mode for relative mouse on OSX SDL 2.0.4 - MESS . Fixed a bug from where video data was sampled that could cause too many samples to be loaded in low MC6847 resolution video modes . Fixed readonly cassette formats (imagede\cassette.cpp, tools\castool.cpp) . Performs argument checking on the return value of CassetteLegacyWaveFiller.chunk_sample_calc() (formats\cassimg.cpp). This is just better error checking. You can see this if you create a garbage file named 'foo.csw' and invoke the following command: mame bbcb -cass1 foo.csw. With this change you get an invalid image error. Without it, you get this: Caught unhandled St12length_error exception: vector::_M_default_append - Compiling . 3rdparty . Updated BGFX, BX and rapidjson . Synced BGFX so it can compile with Clang 4.0 . Make some constexpr functions comply with older C++11 rules to keep Visual Studio happy . Miscellaneous cleanups to diimage.cpp/h; mostly std::string stuff. . Converted a number of zippath calls that took 'const char *' to std::string (imagedev\floppy.cpp, emu\diimage.cpp, ui\filesel.cpp, ui\floppycntrl.cpp, ui\imgcntrl.cpp and util\zippath.cpp/h). Changed int *beginpos/*endpos to std::string::size_type *beginpos/*endpos and other cleanups for util\zippath.cpp. . Changed various string arguments for emu_file::open() from 'const char *' to std::string (emu\diimage.cpp, fileio.cpp/h, romload.cpp and mame\luaengine.h) . Attempt to prevent GCC optimising away global_alloc_clear (scripts\genie.lua) . Miscellaneous cleanups (emu\diimage.cpp/h and ui\imgcntrl.cpp): Removed some c_str() calls when using util::zippath_parent(). Removed the error code return value from set_image_filename(). Consolidated error code translation (osd_file::error ==> image_error_t) in image_error_from_file_error(). Other cosmetic improvements. . Use std::min and std:max instead of MIN and MAX, also some more macros converted to inline functions. . Macros should be turned into constexpr or they can't be used in many situations they were previously use in the silly _partialNN functions are necessary because MSVC doesn't support C++14 properly. . Changed #include to #include where appropriate . Made constexprs lower case and used constexpr for returning input value as well for rest of defines in osdcomm.h . For bool type use true and false instead of TRUE/FALSE . Changed device_image_interface::filetype() to return 'const std::string &' instead of 'const char *' . Introduced is_filetype(), instead of normalizing filetype() to lower case. . Re-write tools\srcclean.cpp to be cool with UTF-8 and C++14. srcclean can now clean layouts. Added LUA-cleaning ability to srcclean. srcclean on LUA plugins, too. . Removed util\cstrpool.cpp/h; it is no longer used. . Compile netlist and LUA only if used. Made proper formats compiled only if needed. . Don't rely on macro expansion to supply parentheses around condition for if statement . Replaced BITSWAP8/16/24/32 macros with constexpr function that works for any number of bits. Check number of bits in BITSWAPnn and expand up to 64 (emu\emucore.h). BIT doesn't need to be a macro. . Tidy up some scope (cpu\g65816\g65816ds.cpp, lh5801\5801dasm.cpp, m37710\m7700ds.cpp and upd7810\upd7810_dasm.cpp) . LUA engine: Removed now unnecessary stuff since a copy of searchpath is made and it won't be garbage collected from underneath us. . Added documentation to main tree . Fixes to build with visual studio: 3rdparty\zlib doesn't seem to be picked up when building drivers, building with msys may work because it comes bundled with it's own zlib.h. GCC pre-compiled headers is broken as it masked the missing emu.h. . Note that compilers are now limited to GCC 5.0.0 and up . Some C++14 features are not supported by VS2013. VS2015 is free for home use so no need for legacy support. . Fixed TARGET=virtual (scripts\target\mame\virtual.lua) . Make iterators actually meet requirements of ForwardIterator (and by consequence, ForwardIterator, Iterator and EqualityComparable). Don't use function statics if they can be avoided - it isn't thread-safe. Removed leftover crud from when dynamic_buffer and friends were templates in lib/util. It's still dangerous that the const behaviour of iterators doesn't match STL. Also, simple_list members with similar functionality to STL container members should be renamed (emu\device.h, emumem.cpp, render.h, rendlay.cpp and util\coretmpl.h). - Debugger . Adding an assert() to util\hash.cpp . ImGui based debugger: Added images menu, with crude file select dialog and very crude create image dialog . The 'trace' and 'traceover' commands were registered as having three arguments. This fixes it so there are four arguments (debug\debugcmd.cpp). . Fixed -debug -cheat crash (mame\cheat.cpp) (ID 06269) 0.176 - New games: Gorodki, Intergirl, Kot-Rybolov, Player's Choice (M4C1) and Swing Gal [BET] (Japan 871221) - New Working games: Flaming 7 (Custom Hardware, Main, 50 Bonus), Flaming 7 (Custom Hardware, Main, 500 Bonus), Flaming 7 (Custom Hardware, Main, 2000 Bonus), Flaming 7 (Custom Hardware, Egyptian Gold, 2000 Bonus) and Flaming 7 (Taiwanese Hardware, unknown version) - New clones: Beaste Feastie, Bubble Trouble (World, Rev B), Fighting Fantasy (World revision 3), Operation Thunderbolt (World, rev 1) and Raiden Fighters 2 - Operation Hell Dive (Japan set 3) - New TourVision games (Softwarelist: hash\pce_tourvision.xml): Adventure Island (Tourvision PCE bootleg), Alice In Wonderland (Tourvision PCE bootleg), Drop Rock Hora Hora (Tourvision PCE bootleg), Fighting Run (Tourvision PCE bootleg), Image Fight (Tourvision PCE bootleg), Kato Chan & Ken Chan (Tourvision PCE bootleg), Mesopotamia (Tourvision PCE bootleg), Ordyne (Tourvision PCE bootleg), Power Sports (Tourvision PCE bootleg), Puzznic (Tourvision PCE bootleg), Sokoban World (Tourvision PCE bootleg), Soldier Blade (Tourvision PCE bootleg), Spin Pair (Tourvision PCE bootleg), The NewZealand Story (Tourvision PCE bootleg) and Tricky (Tourvision PCE bootleg). - New drivers: seicupbl.cpp - New devices: cdrom_fixed, jrc6355e, jvs_master and ohci_hlean2131sc - New mame.ini options: bgfx_avi_name = auto and hlsl_write = auto - New HiScore.dat: - ADSP21062 CPU: Fixed Linux crash (cpu\sharc\sharcdrc.cpp) (ID 06262) - I8051 / MCS-51 CPU: Converted serial_rx and serial_tx to devcb - I80286 CPU: hlt requires CPL == 0 independent of IOPL - M6502, M6800, M6809 and S2600 CPUs: Removed irq_line methods and replace uses with DEVCB_INPUTLINE. Added several aliases for M6800_IRQ_LINE. - M6809 + HD6309 CPUs: Improved debugging support - M68000 CPU: Replaced M68000 write_irq[1-7] handlers with DEVCB_INPUTLINE - T11 CPU: Added reset output line - VLM5030 sound: Converted VLM5030 to device_memory_interface; correct region lengths. Fixed VLM loading in Jail Break and clones. - YM2151 and YM2413 sound: Isolate, objectify and integrate - 6850 ACIA: Make ACIA write initial line state in reset to avoid crash - 68681 DUART: Added op tx/rx status lines - 8250 UART: Reassert THRE irq when setting mask - 8251 USART . Added rtscts flow control for rs232\null_modem.cpp and relevant fix to i8251 . RTS and DTR outputs now use negative logic (0 = active) - CD-ROM . Fixed >2GB .iso parsing in util\chdcd.cpp . Set pregap subcode type to NONE for .CUE and .TOC for consistency with other formats (util\chdcd.cpp) - CHDMAN: Fixed remaining "CREATE CD" 64bit issues - Discrete Netlist . nltool now accepts -Ddefine=value to pass on to netlists . Improved option handling and added "dummy" options to add grouping and examples in help output. . Improved --cmd=listdevices output . Fixed dynamic timestepping. This will work with breakout using real capacitor modelling instead of delay devices. Really slow, but very useful to calibrate timings. . Fixed an awful bug in timing for delay devices. . Switched to clang 3.8 and made code compile with -Weverything -Werror -Wno-old-style-cast -Wno-padded -Wno-weak-vtables. -Wno-missing-variable-declarations -Wno-conversion -Wno-c++98-compat. -Wno-float-equal -Wno-cast-align -Wno-global-constructors. -Wno-c++98-compat-pedantic -Wno-exit-time-destructors. -Wno-format-nonliteral -Wno-weak-template-vtables. This was a helpful exercise since it brought forward some serious issues with implicit constructors. . Added more RAII and improved exceptions. Fixed some bugs in parser code. . Removed trampolines (OUTLOGIC, INPLOGIC and friends). Started using doxygen comment and documentation style. Added doxygen files to documentation folder. Refactored code triggered by doxygen output. Moved internal and support classes into namespace detail. Use an anordered map in parser. -Wconversion fixes - All done now. Fixed -Wold-style-cast warnings in netlist code. Added iterators to pstring. Moved two macros, added more RAII and improved exceptions. Fixed some bugs in parser code. Fixed a number of bugs in parser code and exception handling. . Fix for netlist library when built for WINDOWS with UNICODE defined (netlist\plib\pdynlib.cpp). When UNICODE is defined LoadLibrary is redefined to LoadLibraryW which expects a widechar string as library name, while libname is always UTF8. Fixed copying TCHAR conversion code from strconv.cpp since netlist is meant to be also a stand-alone library. - MC68230 PIT: Added support for the 24 bit timer (machine\68230pit.cpp) - R4543 RTC: More complete implementation with better logging features (namcos12.cpp and namcos23.cpp) - airbustr.cpp, ajax.cpp, asuka.cpp, spdodgeb.cpp and vball.cpp: Simplified rom loading - astrocde.cpp: Initialize interrupt line register with 0xff (prevents initial bogus interrupts) and clear active interrupts when an interrupt related register is written (tests would be good to confirm how this works on real hardware). This fixed (MESS) 280Zzzap/Dodgem cartridge resets (ID 06281). - atlantis.cpp and midzeus.cpp . Added analog joystick to Skins Game. Fixed screen resolution in Atlantis driver. Added direct pixel writing for Atlantis. Scaling still needs work. . Added return data for unknown register access to keep 'The Grid' from hangin - bfm_sc4.cpp: Scorpion4 7Segment displays mostly fixed - chihiro.cpp . More descriptions for USB commands in AN2131QC. Moved USB part into new file (xbox_usb.cpp). Small adjustments. . Prepare to use jvs packets. Added a jvs host and a device. Now jvs communication works, although there seems to be some little problem left. . Use the gamepad only in the console and not the arcade . Time for AN2131SC, placeholders for all its USB commands. . Removed USB_HACK_ENABLED define, now USB can be disabled per game, in Xbox console USB is always enabled. Crazy Taxi High Roller boots. . Fixed copying of mcpx code - epos.cpp: Found out the flip screen bit. Flip screen still need work though. Added notes. - expro02.cpp: OKI map instead of memcpy, standard palette, removed a pair of unused variables and enabled save state support. - firebeat.cpp: Added ATAPI_FIXED_CDROM to driver - itech32.cpp: Added save state support - konamigx.cpp: Added coin3, coin4, service3 and service4 for type3 and type4 hardware - legionna.cpp, raiden2.cpp and r2dx_v33.cpp . Fixed priority issues in Legionnaire, Heated Barrel, Denjin Makai and Godzilla. . Fixed Denjin Makai puts sprites above everything for mode 3 . Moved around allocation pointers to own function, and register video pointers/functions to save state (video\legionna.cpp). Updated Denjin Makai and Godzilla flags. . Splitted Seibu Cup Soccer bootlegs into own driver. Fixed black screen in clones Seibu Cup Soccer (bootleg, set 1) and (bootleg, set 2) since MAME 0.155 (ID 06246) . Removed unused stuff and minor doc update. . Fixed Seibu Cup coin slots. Documenting what's wrong with Seibu Cup Soccer collision detection. . Added some unused macro hookups (seibucop\seibucop_cmd.hxx). . Hack Denjin Makai sound comms to work without ROM patch . Improved Zero Team sprite/sprite priorities. Simulation code in clone New Zero Team confirms that COP sort DMA function uses a dword key. Several priorities are still wrong (e.g. bikes invisible on character select screen). . COP command fix for minor Heated Barrel regression and misc notes. - naomi.cpp . Added Net-DIMM 3.03 firmware . Fixed Maximum Speed romload - neodriv.hxx: Added port names to Joystick buttons - ohmygod.cpp: OKI6295 memory map instead of memcpy - psikyosh.c: Fixed crash when attempting to use -cheat in gunbird2 and s1945iii (ID 06323) - seibuspi.cpp . Separated memory maps and make them slightly more accurate . Hook up Seibu CRTC . Hook up flip screen SW (not implemented yet). SPI input cleanups, tweaks and notes. . Making E-Jan Sakurasou multiplexed inputs reading more accurate - tiamc1.cpp . Added games Gorodki and Kot-Rybolov . Added support for KR580VV55A parallel peripheral interface (clone of i8255) . Added technical notes about some odd behaviour with someports, listed the specs of Kot-Rybolov hardware and added all clocks. . Main clock verified against original schematics and docs, Kot-Rybolov uses single i8253 timer for 'sound', the rest 2 controls (at least background's) view area size,Gorodki have AD stick, not paddle. - tmaster.cpp: Fixed coinage in Touchmaster 2000-8000 - tourvis.cpp: Added a number of new dumps (15) to the softlist. Updated driver with new information related to ID and gamelist for tourvis.cpp. - vendetta.cpp: Maincpu rom loading cleanup. Converted Vendetta driver to bankdev, this fixes slowdowns in Escape Kids (ID 06285). - Air Combat: Added PORT_REVERSE to pedal - Arkanoid: Updated notes, added mention of the secret (disabled?) credits scene found by and who is listed in it. - Esh's Aurunmilla: Added beeper - Fever Soccer . Hook up EEPROM, remapped buttons and hook up lamps and serial RTC. . More complete R4543 RTC implementation with better logging features. Added JRC6355E RTC variant used by Fever Soccer. Correct JRC6355E implementation to agree with NJU6355 datasheet. RTC writes and reads in Fever Soccer both fully work now. . Added NVRAM, identify some DIPs and document build date. - Flaming 7 . Reverse-engineer protection to bypass the requested serial number - Games now playable. The iButton device still needs to be hooked. Promoted these games to working with their correspondent flags. . Added tech notes, comments and instructions to boot the machine for first time. - Forte Card: Switched Forte Card (Ver 110, Spanish) to parent set since it's a posterior and newer version. Also cleaned up the driver. - Funky Ball: Fixed fatal error at start (ID 06324) - Meta Fox: Fixed bonus life settings and mask (ID 06266) - Operation Wolf . Fixed all the gameplay problems by improving the C-chip protection simulation. Gameplay should be a true 100% match to original now. Put extensive notes in the machine file about what has changed. . Fixed bug in 68K->C-chip simulation that could lead to level 2 boss not appearing after first run. - Out Run: Use correct sub-CPU roms for clone 'Out Run (Japan, deluxe sitdown) (FD1089A 317-0019)' allow all the roms to pass in the MEMORY check routine of the test screen. - Pairs (V1.2, 09/30/94): Added srom0 (ES5506) from clone (09/07/94) to parent set - Sliver: OKI6295 memory map instead of memcpy and added save state support - Spiders: Removed a few IRQ passthroughs - Tetris (bootleg of Mirrorsoft PC-XT Tetris version): Mark Tetris KR as working, see MT02851 for details (ID 02851). - Turtles: Moved clone Turpin (bootleg on Scramble hardware) from Scramble to Galaxian driver and added preliminary sound. Tempo is way to high. - Input port . Fixed input issues on big endian systems (input\input_common.h, input_dinput.cpp, input_rawinput.cpp, input_sdl.cpp, input_win32.cpp, input_windows.h, input_x11.cpp and input_xinput.cpp) . Fixed 0.172 regression for non-US keyboards (input\input_common.cpp) . Crosshair refactoring: Individual crosshairs are now first-class objects, rather than bits of state scattered across half a dozen arrays. The class is named render_crosshair with a view towards incorporating crosshairs into layouts in the future, rather than managing them separately as crosshair_manager still does now. Removed the old crosshair_user_settings interface for adjusting crosshair settings, since the UI can access the new crosshair objects directly. . Added a device as proof of concept which merges several input lines into a common output line, supporting both active high and active low inputs. . Make ioport_list a map instead of unordered_map, should fix INP incompatibilities across compilers and platforms. - Dipswitch fixes in ddenlovr.cpp, dynax.cpp, fromance.cpp, hnayayoi.cpp, homedata.cpp, jalmah.cpp, nbmj8688.cpp, nbmj8891.cpp, nbmj8991.cpp, nbmj9195.cpp and seibuspi.cpp - Fixed rom names in itech32.cpp and naomi.cpp - Renamed (beastf) to (beastfp), (bubbletr) to (bubbletrj), (ffantasy) to (ffantasyj) and (othunder) to (othundero) - Description changes of Beastie Feastie (conversion kit), Buena Suerte (Spanish, set 15, Prodel PCB), Euro League (Italian hack of Tecmo World Cup '90 - alt version) (ID 06293), Live Gal [BET] (Japan 870530), Operation Thunderbolt (US), Operation Thunderbolt (US, rev 1), Pairs (V1, 09/07/94), Tetris (Korean bootleg of Mirrorsoft PC-XT Tetris), The Pit Boss (PSB1), The Pit Boss (M4A1) and Untouchable (Ver. 2.10) - MAME . VIDEO RENDERING SYSTEM . Polymorphize layout_element::component (emu\render.h and rendlay.cpp) . Misc code cleanups for Direct3D code. Removed unused methods, unused function parameters, redundant casts, doubly linked lists made into singly linked lists, etc. Converted linked lists into vectors of unique pointers. . simple_list to vector in emu\rendlay.cpp . Make monitor list a list of shared_ptr like window_list . Use std::map for mapping XML tag name to layout component creation function - makes the code simpler and easier to read as well as being more scalable. Fixed problem using layout_element::texture in vector - destructor frees resources but generated copy/assignment operators don't release them, leading to a problem any time vector expands or element is added/removed anywhere but end. . BGFX . No need to build all tools, just shaderc (makefile). Documented BGFX shaders compile. . Added crt-geom and crt-geom-deluxe shaders for BGFX. This includes several aperture grille / shadow mask patterns. Note that these are all designed to be used on a display with RGB subpixel order, and may thus suffer if rotated or used with a BGR display. . Fixed crash when BGFX effect folder is not present or incomplete. BGFX renderer requires some effects also when post-processing is disabled. If they are not available, MAME complains about missing effect files, but then goes on and crashes soon after printing the backtrace. This fix just exits gracefully when effect files are incomplete and falls back to a different renderer if the BGFX folder is missing at all, warning the user in advance. . RGB utilities . Introduced validity checks for RGB utilities and fixed uncovered bugs. Added several missing functions to rgbgen. Fixed logical shift right in rgbgen. Fixed sra that should be sra_imm in rdptpipe. Added some simple SSE4.1 optimisations in rgbsse. Re-organised rgbsse, rgbvmx and rgbgen to be in more logical order. Fixed return on some modifying operators. Made some more reference parameters const. Removed inline qualifier from a number of methods as it's implied when body is present at declaration. Mark some constructors explicit. . Check a bunch more RGB operations in validity. Implemented the missing ones in rgbgen. Format similar one-liners in a more tabular way. Use default copy construct/assign. . UI . Added a move constructor and got rid of the 'const char *' overload. More use of std::move() and usage of emplace[_back]() as per cuavas. C++-ified the strings inside of menu items. . Force move construct/assign to be generated (ui\menuitem.h). Reduced usage of c_str() when used with menu::item_append(). . Changing menu_file_selector::append_entry() to return a reference instead of a pointer . uismall.bdf: Added first 48 Latin-1 Supplement characters, many Cyrillic characters (covers at least Russian, Ukrainian and Serbian), most of Latin B, some archaic Cyrillic characters, some IPA extensions and half-width katakana. European Latin and Cyrillic coverage should be pretty good. Added monotonic Greek (and a couple of archaic Cyrillic characters). Can now run mame -uifont uismall.bdf -language Greek for 15kHz monitor lowercase gamma and lambda could probably be prettier, but it's definitely all legible. Improved legibility of Russian at small sizes. . Cleanups to the software list menu . Fixed crash when drawing menus (ui\menu.cpp) (ID 06268) . Fixed choosing any filter which has no data makes the UI unrecoverable (ID 06263) . Fixed separator in ui\pluginopt.cpp . Cleanup ui\filesel.cpp . Fixed how the file selection dialog determines when to show "create" . Added in "Miscellaneous Options" menu one item to hide ROMless machines from the availables list. . Changed a number of file manager related menus to have their outputs be by reference than pointer and tightened up typecasts in menu_select_rw. . Added file create refactoring . Untangling the menu code and reduced visibility of more menu members. . Split out main menu and dat box drawing from base class. Make a bunch of class statics proper per-machine persistent objects. Object lifecycle fixes. . Moved more main menu stuff out of the base menu class. Get rid of the rest of the troublesome static members in ui::menu (there are still problematic function statics in some menu classes). Moved palette menu drawing code out of base into palette menu class. . Added std::bind - accept no substitutes. pointer -> reference conversion. Make more menu members private or protected. Don't play so fast and loose with integer types. Reduced some vector copying. Make more static constants const. . Splitted "widgets" code out of ui::menu::global_state into a separate module . Now using core_filename_extract_base() in menu_file_create ctor . Reduced repeated string allocation in audit code . Moved background bitmap/texture back into ui\menu.cpp . Eliminated some function statics. Moved another launch menu specific member out of base class. Moved some common code from selgame and selsoft into selmenu. Tighten up const and casts. . .h -> .ipp for things that aren't really headers. Make more stuff in selmenu private. Moved the remembered driver/software associated with the snap to the cache object. Start cleaning up constness in datfile manager - it's still a mess of non-const statics. More const where it should be. Don't unnecessarily copy big maps. Don't make things members when they shouldn't be. Get rid of a couple more function statics. Moved custom render and tab navigate up to base class. . Fixed selecting "Category" after listing "Favorites" causes exception (ID 06288) . Making menu_control_device_image::populate() be private (ui\imgcntrl.h). Miscellaneous cleanups to ui\imgcntrl.cpp/h and calling code. . PLUGINS . Added plugin path expansion (plugins/boot.lua and mame\pluginopts.cpp) . Fixed pluginspath in LINUX does not resolve $HOME (ID 06279) . Fixed plugin.ini file is created in the current folder when it should be created in the "ini" path (ID 06280) . Only load plugins in plugin path (plugins\boot.lua) . Cheat . Added logical address space accessors to LUA engine, use by default in translated cheats (plugins\cheat\xml_conv.lua). Better error handling (plugins\cheat\init.lua). . Added address_to_byte and optional arg for physical address space to LUA engine to disable address shift. Cheats created with the cheatfinder won't work with the builtin cheat finder if the cpu has an address bus that isn't 8bits unless the addresses are fixed up. . Added simple cheat file format (cheat\simple_conv.lua) . Added operand size to simple cheat and write cheats from cheatfind into simple file . Added name cheats . Hiscore . Added optional value to prefill for software that clears ram and add examples . Make hiscore.dat sorter stable so everything isn't rearranged every time . Updated hiscore.dat . MULTI-LANGUAGE . Updated and fixed translation files . Updated Brazilian Portuguese . Updated Chinese translations . Fixed Chinese_Simplified & Chinese_Traditional translation files . Updated Greek translation . Pick off some Japanese string translations, improvements welcome. . SOFTWARE LIST . Const correctness related changes to softlist . Better adoption of move constructors. Changed the softlist code to more aggressively use std::string. . std::string::c_str() const never returns nullptr. Get rid of extra length parameter using a template. . Changed some usage of simple_list to std::list in the softlist code . Cure software lists of validity checking errors: Fixed stupid logic errors in software_list_device::internal_validity_check. Allow info and feature list entries to provide an empty string as the value. . Added usage of std::find_if() . Replacing the enum with a class hierarchy, derived from 'software_list_loader'. Consolidated implementations of device_image_interface::call_softlist_load(). . DEVICE IMAGE INTERFACE . Changed image_device_format::extensions() to be a vector (emu\diimage.cpp) . Cleanups for device_image_interface. Removed the loaded_through_softlist virtual method and added a boolean getter with the same name, replacing a few variables that provided similar but redundant flags. Removed call_softlist_load, which the previous change reduces to a simple and unnecessary wrapper. . Simplified memory management for save states and states . Readding overloads that take a std::string& parameter for the result (emu\diimage.cpp, ui\imgcntrl.cpp and util\zippath.cpp/h) . Flush stdout/stderr before killing process (osd\watchdog.cpp). This fixed watchdog dialog is not able to be captured (ID 06284). . Introduced running_machine::compose_saveload_filename() function to convert a filename (for state save/load) to a fully qualified path (emu\machine.cpp) . Pass through the debugger flag from the incoming space argument (machine\bankdev.cpp) . AVI/Screenshot . Direct3D HLSL: Use aviwrite to record avi movies (d3d\d3dhlsl.cpp). Use common infrastructure in aviwrite.c instead of equivalent local code. The target textures used by the HLSL movie recorder are now allocated only when recording is ongoing. Removed shaders->begin_frame() and shaders->end_frame() hooks from the main Direct3D rendering loop. Set default HLSL movie name to hlsl.avi. . Fixed dimension of high-res snapshots (Alt + 12) and AVI records (Alt + Shift + F12) when screen dimension is swapped (d3d\d3dhlsl.cpp) . Added generic fix for -aviwrite (util\aviio.cpp; Captured AVI video from Super Hang-On shows only sound, no image) (ID 06286) . Fixed copy of texture data to bitmap in BGFX. Changed AVI dimension to a lowest integral multiple of 4 (2 was still to low for most video players, e.g. VLC). Added audio to AVI record in HLSL. HLSL AVI record now uses window dimension instead of snap dimension. This fixed unable to view recorded video in Car Polo made with -video bgfx/-window (ID 06291). - SDLMAME . Use allocating mode of ::realpath by default (modules\file\posixfile.cpp). POSIX implementation for valid filename/path character functions (modules\file\posixfile.cpp). . Fixed build on Debian PPC64 with -maltivec (sdl\sdlprefix.h). Problem is caused by puling in which #defines vector, pixel and bool however when the compiler is in Apple Altivec mode, these are context-sensitive keywords and don't need to be #defined we never need the #defines in our own code because we use the GCC-specific __vector instead of vector so we trick the header to think the compiler is in Apple Altivec mode to suppress the #defines. . Fixed warning message says "-waitsync" but should say "-waitvsync" (sdl\video.cpp) (ID 06296) . Take pkg-config path from env if defined (osd\modules.lua, osd\sdl.lua and sdl_cfg.lua) - Linux . Added detection for Linux architectures alpha and mips64el, to avoid using gcc -m64, which isn't available on them. . Fixed pluginspath in LINUX does not resolve $HOME (ID 06279) . GNU/kFreeBSD support. Sync with upstream. . Detect GNU/Hurd systems, but treat them as Linux. Compile fixes for GNU/Hurd systems: Define PATH_MAX if it's not defined and the compiler defines __GNU__. Cherrypick portability fixes for 3rdparty modules. - Android . Android strip SDL lib (src\3rdparty.lua) . Added Android build folders (scripts\toolchain.lua) . Fixed Android x86 and x64 full build. Abuse namespace. - MAC OS X: Removed #include (lib\osdlib_macosx.cpp and osdlib_unix.cpp) - MESS . Notes about how to load a floppy in supervisor mode to drivers\a310.cpp. Fixed Archimedes disk format. . Null Modem: Added rtscts flow control for rs232\null_modem.cpp and relevant fix to i8251. Make flow control optional (rs232\null_modem.cpp). . The Ethernet frame check sequence is now appended to transmit data (bus\isa\3c505.cpp) . uPD7220 video: Alternate drawing direction by line in gchrd . Z80 SCC: Fixed for mid tx reset of scc channel and problem with dropped characters for (MESS) Sun4_75 (machine\z80scc.cpp). Added support for changing the BRG constants after enabling Rx/Tx. Added support for delayed change of Tx baudrate. - Compiling . Fixed compile bug on Bash for Windows and fixed symbol stripping (scripts\toolchain.lua) . Removed FUNC_NULL macro . Made emu_timer register_save properly handle timer_expired_delegate() . Removed timer_expired_func and calls using it . Added a couple msys2 updated mingw headers to winsdk-override to support linux cross-compile with stock mingw-w64 . Override without virtual looks uncomfortable (util\vecstream.h) . Changed some int's to size_t's and added assertions where we were assuming that option_resolution was a requiremen. C++-ification of util\opresolv.cpp/h and corefile.cpp/h. . Fixed compile errors due to option_resolution namespacing . Removed some c_str() calls that are no longer necessary (tools\chdman.cpp and src2html.cpp) . Better enum increment/decrement operators: Reduced underlying type rather than assuming int. Return old value from post-increment/decrement. Return reference from pre-increment/decrement. . Use function-style casts, added explicit casts to keep newer GCC happy (video\rgbvmx.h). More PPC fixed (video\rgbvmx.h) and ppc64le (video\rgbgen.h, rgbsse.h, rgbvmx.cpp and rgbvmx.h). Fixed bilinear_filter and blend on ppc64le. . Adopting std::find() and std::find_if() in core_filename_extract_base() and added a check for reverse overflow when extensions is longer than filename (util\corefile.cpp). Fixed issue that could cause core_filename_ends_with() to return true when extension.size() > filename.size(). . Balance configuration macros in genie scripts (osd\modules.lua) . Removed implementations of create_option_guide() that return nullptr. Removed nullptr image_formats and fixed formatting. . Fixed separate compile of drivers using sharc/ADSP21062 cpu . Using decltype() in winfile.cpp and removing +1/-1 "dance" in strconv.cpp. Changed strconv.cpp/h functions to return their results as std::string and std::wstring. . Fixed compile error (video\dynax.cpp) - Debugger . Move disasm overrides into interface, reducing driver-debugger depend. . Don't need debugcpu to translate . Added support for 7z and 'Create' option to windebug images menu (debugger\win\consolewininfo.cpp). . Fixed scroll in debugger state view. Fixed item hilighting in debugger state view when scrolling. Better encapsulate debug_view_state::state_item (debug\dvstate.cpp) . Check for debugger access for reads with side effects machine\s2636.cpp . Make loop collation optional for debugger trace and traceover commands . ImGui based debugger: Fixed order of evaluation making imgui debugger not fail on starting without driver selected (debugger\debugimgui.cpp) . Prevent nullptr exceptions when devices named in expressions lack memory interface (debug\debugcpu.cpp), this fixed crash when attempting to use -cheat in gunbird2 and s1945iii (ID 06323). . Fix for debug build (machine\st0016.cpp) 0.175 - New games: 1943: The Battle of Midway Mark II (US), Kyuukoukabakugekitai - Dive Bomber Squad (Japan, prototype) and Mahjong Joshi Pro-wres -Give up 5 byou mae- (Japan) - New Working games: Flaming 7 (Red, White & Blue 7's + Hollywood Nights), Godzilla (Japan), Idol Janshi Suchie-Pai 3 (JPN), Moto Frenzy, Tora Tora and Usagi - Yamashiro Mahjong Hen (GDL-0022) - New Non-Working games: Flaming 7 (Custom Hardware, Main, 50 Bonus), World Club Champion Football Serie A 2001-2002 Ver. 2 (CDP-10001C), World Club Champion Football Serie A 2001-2002 DIMM FIRM Ver.3.03 (CDP-10003) and World Club Champion Football Serie A 2002-2003 Drive Checker (CDV-10007) - New AGEMAME games: Antony and Cleopatra (10163211, NSW/ACT), Bumble Bugs (0200456V, Queensland), Choy Sun Doa (20104011, NSW/ACT, Show Program), Inca Sun (0100872V, NSW/ACT, Show Program), King Penguin (40109021, NSW/ACT, Show Program), Player's Choice - Platinum (20282111, New Zealand), Queen of the Nile (0300439V, NSW/ACT), Queen of the Nile Special Edition - Jackpot Carnival (20123911, NSW/ACT, Show Program), Scatter Magic II (10102711, South Australia) and Wild Waratah (10215911, NSW/ACT, Show Program) - New clones: Astro Combat (encrypted), Buena Suerte (Spanish/Portuguese, set 23), E.D.F. : Earth Defense Force (Japan, prototype), Flaming 7 (Custom Hardware, Egyptian Gold, 2000 Bonus), Flaming 7 (Custom Hardware, Main, 500 Bonus), Flaming 7 (Custom Hardware, Main, 2000 Bonus), Flaming 7 (Taiwanese Hardware, unknown version), Galaxian (bootleg, set 4), Hyper Bishi Bashi Champ (GE876 VER. KAA), Lethal Weapon 3 (2.07), Lucky Poker (bootleg/hack of Major Poker), Magic Card (H8, English), Major Poker (set 2, Micro Manufacturing intro), Major Poker (set 3, Micro Manufacturing intro), Major Poker (set 4, Micro Manufacturing intro), Marvel Vs. Capcom 2 New Age of Heroes (USA) (Rev A), Metamorphic Force (ver EAA - alternate), Mutant Warrior (Altered Beast - Datsu bootleg), Out Zone (Zero Wing TP-015 PCB conversion), River Patrol (Japan), Royal Card (Austrian, set 8), Scramble (Model Racing, Italian bootleg), Side by Side (Ver 2.6 J), Side by Side 2 (Ver 2.6 OK), Space Invaders (CV Version, smaller roms), Super Pacman (v1.2) + Cherry Master (Corsica, v8.31, set 1), Super Street Fighter II: The Tournament Battle (Japan 931005), Teenage Mutant Hero Turtles - Turtles in Time (4 Players ver EAA), Ufo Robo Dangar (4/07/1987), Ufo Robo Dangar (9/26/1986, Japan) and Varth: Operation Thunderstorm (bootleg) - New TourVision games (Softwarelist: hash\pce_tourvision.xml): Out Run (Tourvision PCE bootleg) - Removed games: Eagle Strike (set 1), Flame Of Olympus, Flames Of Olympus USA (set 1), Foxworthy Redneck, Outback Jack (set 2) and Players Choice Favourites (set 1) - New drivers: divebomb.cpp - New devices: generic_keyboard, generic_terminal, ldp1000, m2comm, xga and zeus2 - New mame.ini options: Added vector_beam_smooth (VECTOR POST-PROCESSING OPTIONS). Removed antialias (CORE VECTOR OPTIONS). - New Cheat.dat: - ADSP21062 CPU: Added highly experimental SHARC recompiler. Runtime enable for sharcdrc. Added Model 2 and Zero Gunner compatibility. - Dynamic Re-Compiling . Fixed x64 compile (cpu\drcuml.cpp) . Modified branch in delay slot to match non-DRC behaviour for non-dynamic branch targets (cpu\drcfe.cpp) - M6502 CPU: Disabled VBL opcode logging (use wpiset 0,1,r) (cpu\m6502\odeco16.lst) - M6800 CPU: Fixed behaviour of N and V flags in CPX (compare X) instruction (cpu\m6800\6800ops.hxx). These two flags are only affected by the data comparison of the upper 8 bits, and not the whole 16 bits. - PPS4 CPU, TMS32010 CPU, TMS32025 CPU and V25 CPU: Fixed some cpus with virtual ports, mark them with +1 in any case. - T11 CPU: Fixed MARK insn (not supported by actual T11). Fixed all irqs. - TMS32010 CPU, TMS32025 CPU and V25 CPU: Made it use devcb instead of a memory map for the ports or bio line - TMS57002 CPU: Fixed internal_pgm ADDRESS_MAP range - Z80 SCC: Fixed baudrate calculation issue to make (MESS) Sun3-80 work and some minor debug message errors (machine\z80scc.cpp) - DCS sound . Added sport timer for DCS2 DSIO device (audio\dcs.cpp). Fixed buffer overflow with clone San Francisco Rush 2049: Special Edition. . Updated 2181 SYSCONTROL bits. Added internal ram memory bank for DENVER ADSP 2181 (audio\dcs.cpp). - Sound Interface . Updated more drivers to use the new gen_latch.cpp, which should substitute the soundlatch_* methods in driver_device. . Removed the old soundlatch methods (emu\driver.cpp) . Sound trampolines removal from various drivers - Atari Custom: Removed the slapstic and sloop direct update handlers, which hasn't been necessary since direct access has been enhanced to work correctly on handlers, years ago (machine\atarigen.cpp, drivers\atarig42.cpp and starwars.cpp). - Cassette: Modernized the cassette animation - CHDMAN . Ignore ATA ident CHS values for > 8GB images . Ignore cylinders, heads and sectors from identify device data, based on the ATA 5 specification. . Attempt to workaround hang during CHD creation - Device interface . Removed device_memory_interface in EEPROM, i2cmem.cpp and intelfsh.cpp . More efficient device error logging (emu\device.cpp) - Discrete Netlist . Moved all parameter definitions in constructors . Make netlist compile with C++11, use own implementation of make_unique to avoid C++14. . Removed dependency on osd_ticks. Converted palloc and friends into templates. Moved code into separate plib namespace. . Stop using underscore _names, they're reserved for compiler/system. . Minor cosmetic refactoring. Added a "uninitialised array" template to allow in-place creation (for increased locality) of netlist classes. Main use is in truthtable class. Removed PLIB_NAMESPACE macros. Removed namespace macros. Use explicit namespace declarations. Moved device definitions into cpp files. Moved more device definitions into cpp files. New prefix "nlid" for include files flags purely internal include files not to be leaked into userland. Fixed factory code. . Added constructors to prepare to move terminal setup into constructor. Reworked twoterm setup. Fixed some timebombs along the way. Fixed r2r dac. Remove dead code. analog_outputs now created in constructor. Moved analog_input creation into constructor. Moved logic output creation to constructor. Moved all logic inputs into constructor. Completely removed init_object - finally. . More code cleanup: Dead code removal and minor refactoring. Simplify. Align naming with stl. Fix somed pedantic warnings. More STL compatability. Removed ATTR_HOT and ATTR_COLD. Refactored netlist_time. Fixed long standing workaround which would ignore policy of change-only" propagation. Rewroted for loops to use auto : semantics. Truthtable cleanup. Get rid of nl_math. Remove nl_util.h and moved contents to plib/putil.h. Fixed standalone build. Refactor ptypes.h. . Merged netlist_dev branch, all code_refactoring: Object model optimisation. Merged remote-tracking branch 'origin/master' into netlist_dev. Default PHAS_PMF_INTERNAL=0 for 32bit windows mingw. Changed UINT8 to uint_[fast|least|8_t. Moved state_var so it can be used by base devices as well. Removed last traces of ATTR_ALIGN. Refactored netlist_time into a template. Removed implicit double assignment to netlist. Doomed to produce bugs. Instead, use netlist_time::from_double. Switch to using proper (i.e. bool type) param_logic_t. Formally differentiate between logic inputs (e.g. switches) and int inputs (e.g. resistor ladders or selection switches). Added parameter USE_DEACTIVATE to truthtable devices. Added more constexpr to netlist_time. Fixed some ifdef code paths. More C++. Simplify main processing loop. As a nice side-effect that squeezed out some cycles. More cycle squeezing. Removed pvector_t. Use std::sort. Refactored netlist state manager. Introduction of state_var object template to be used on device state members. Changed remaining save occurrences to state_var. Rewrote nltool's listdevices command. This allowed removal of one member from devices which served solely for listdevices. Remove hashmap_t. Fix kidniki regression. . Replaced shared_ptr by unique_ptr. Better seperation of setup_t and netlist_t. Fixed bugs in rdtsc code. Refactored timer code. Simplify conditional activation/deactivation. 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. Moved options code from include to cpp file. Minor modifications to 7493 and 9316. 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. More truthtable refactoring. Removed half-finished code for internal state support. As implemented, this would have had no support for timing delays. . Added explicit to constructors to avoid bad surprises later. Srcclean on netlist files. Avoid the merge massacre. - Harddisk: Added CHS and LBA limits when the CHD doesn't contain identify device data (machine\idehd.cpp) - Laser Disc . deco_ld.cpp: Added Road Blaster LaserDisc image. Added bare-bones Sony LDP-1000 device . esh.cpp: Added Esh's Aurunmilla LaserDisc image. Added line blinking and overlay opacity selectors. Added command strobe callback interface for LDV1000, and hooked it up to esh.cpp driver. Fixed IRQ 0 hookup, using device_timer to ack an IRQ for MAME is never a good idea. Added the other blinking mode. . dlair.cpp: Some misc updates. Improved dlair internal layout (based on external artwork by Mr. Do & Co). . Fixed laserdisc screen PAL parameters (machine\laserdsc.h) - Sega Custom: Added basic C-Sync callback to 315-5124, based on Charles' hardware tests. - Slots . Added tagged_list to unordered_map for slots . Proper exception handling (emu\dislot.cpp) - aerofgt.cpp . Fixed POST palette for Spinal Breakers and added minor note. . Found out that Karate Blazers (bootleg) uses a sound system copied from SNK's Street Smart. Hooked up preliminary sound. SFX are wrong. - aleck64.cpp: Disabled fast RAM, as it prevents watchpoints from working and doesn't gain much on the interpreter core (machine\n64.cpp). - atarigx2.cpp: Reverse-engineered Moto Frenzy security FPGA and implemented decryption code (Game now playable). Fixed controls. Left/right were reversed, throttle was defaulting to on and was clashing with BUTTON1. Added port names. - atlantis.cpp, iteagle.cpp and midzeus.cpp . Updated rom naming/mapping and changed ram instantiation (mips\mips3drc.cpp and machine\vrc4373.cpp) . Updated Atlantis driver and address map. Changed Atlantis to DENVER audio. Added DCS3 fifo reset to Atlantis address map. . Use normal array allocation for fixed sized arrays (machine\gt64xxx.cpp and iteagle_fpga.cpp) . Added IRQ callback (machine\pci-ide.cpp) . Use new Zeus2 video device for Atlantis and Midway Zeus 2 (video\zeus2.cpp). Re-organize frame buffer ram and add IEEE754 floating point conversion. Closer to getting quad 14 word working. Better quad size selection. Changed texture size selection and attempt to extract last parameters from quad 14. . Fixed 'The Grid' crashes with "Fatal error: Extreme count" after the initial system test (ID 05980) - bfcobra.cpp: Use ramdac_device instead of custom implementation. The driver also has a custom FDC implementation, which I failed to update to the device one. - chihiro.cpp . Try to boot Crazy Taxi High Roller & small 3D adjustments. . Try to complete Xbox memory map, EEPROM must be NTSC. . Added description of 2 commands sent via USB to the AN2131QC chip, based on disassembly of its firmware. They are used to read the I2C EEPROMs connected to the chip. . Removed memory map error - cobra.cpp and zr107.cpp: Removed unnecessary mirrors - cps3.cpp: Speed up initial programming by reducing the number of error.log entries - galaxian.cpp . Preliminary sound hook-up for clone Take Off (bootleg of The End) . Separated memory map for clones Explorer (bootleg of Scramble) and Take Off (bootleg of The End) instead of a lot of install_* at driver_init time. . Documented Galaxian (bootleg, set 2) which mixes roms from other sets (double sized program roms and kamakazi3 gfx roms) - goldnpkr.cpp: Completed clone Buena Suerte (Spanish, set 15). Rearranged the graphics ROMs to get accurate gfx banks. Discrete sound needs to be traced. Game is working properly. Added technical notes, WIP, edge connector and mech counters pinout to clone Buena Suerte (Spanish, set 15). - goldstar.cpp . Flaming 7: Added new technical notes. Added hand made electronic serial DS2401 dump, as a start of electronic serial number support. Hook up serial DS2401 EEPROM. Connected the electronic serial DS2401 device to the proper PPI8255 (PC6) line. Support DS2400-compatibility command 0x0F to read serial no (machine\ds2401.cpp). Promoted Flaming 7 to working: Correct DS2401 hookup on PIA 0 port C. Make serial number ROM to match our program ROM dump. Inputs could be improved. Get past the data error on empty NVRAM with book (0) and reset (R) buttons. . Tetris + Cherry Master (+K, Canada Version, encrypted) hidden switch documentation . Some driver cleanups toward coding standards . Added Super Pacman (v1.2) + Cherry Master (Corsica, v8.31, set 1). Note: New parent set, since they fixed some weird bug in pulses/bookkeeping. - harddriv.cpp . Added more info for invalid register accesses (cpu\adsp2100\2100ops.hxx). Added callback for dmovlay instruction. . Nop out a memory range, makes log a bit more sane. A 2 second log used to weigh about 700 MB - kinst.cpp: Naming KI1 & KI2 Input buttons the same way it's displayed in original Arcade Control - legionna.cpp and raiden2.cpp . Cleaning up the Seibu COP (Co-Processor) device and documentation . Moved DMA and commands into own files (machine\seibucop\seibucop_cmd.hxx and seibucop_dma.hxx) . Prevent cop_angle to overflow byte range. Fixes III to I quadrant movements in Legionnaire and Heated Barrel. Fixes stage clear player movement in Legionnaire, level 4 boss and maybe access exceptions in Heated Barrel. . Added nicer sorting routine. Moved zsorting to DMA file, improved notes (machine\seibucop\seibucop.cpp). - leland.cpp . Merged ataxx.cpp into leland.cpp as they had a completely shared main header file (leland.h). . Fixed 'missing required objects' fatalerror (ADDRESS_MAP/AM_SHARE"mainram") in Ataxx (ID 06223) - lindbergh.cpp: Updated docs - magicfly.cpp: Refactored PCB layout and pinout with new findings and PCB trace. Also added some technical notes. - megasys1.cpp: Fixed sound regression in System Z hardware games from MAME 0.171. System Z games use a Z80 as sound cpu instead of a M68k. In 0.171 the input lines' enumeration for Z80 was changed and this wasn't updated. - megatech.cpp: Added some title documentation - midzeus.cpp: Naming MK4 P1 & P2 inputs and ports - model1.cpp: Fixed TGP parser crashing in Model 1. This fixed Virtua Racing may crashed if running in linked mode and after coining up (ID 06123). - model2.cpp . Added highly experimental SHARC recompiler. Runtime enable for sharcdrc. Added Model 2 and Zero Gunner compatibility. . Finish the MB86235 disassembler. Fixed 4 compile errors (cpu\mb86235\mb86235d.cpp). . Hooked up M2COMM simulation. Commented out jaleco custom handlers. Cleaned up some Sega comm related stuff. Replaces printf with osd_printf_verbose in a number of places. Removed no longer needed code from Model2. - model3.cpp . Update culling node info (video\model3.cpp) . Hooked up M2COMM simulation. Commented out jaleco custom handlers. - namconb1.cpp: Fixed degraded performance speed in machbrkr and outfxies by disabling logerrors (ID 06244). Also added save state support. - naomi.cpp and segasp.cpp . Added PowerVR2 hack (hacky end of render delay for Capcom games, otherwise they works at ~1/10 speed) . NAOMI documentation update and new DC/NAOMI security system findings . Added Net-DIMM firmware (fpr23718.ic14) and notes . 'Samba de Amigo Rev.A' cartridge contents identical to already dumped Rev.B - nbmj9195.cpp: Fixed mscoutm, imekura and mjegolf inputs (ID 06234) - neodriv.hxx . Fixed most sets in neodriv.hxx crashes if cheats are enabled . Fixed savestate problems in NeoGeo hardware driver (drivers\neogeo.cpp). Many thanks to Tafoid and Osso for the debugging help (ID 06253). - nss.c, sfcbox.c and snesb.c . Fixed back N5A22 clock steps (cpu/g65816/g65816cm.h; timing bug that was lingering for a while, no idea about what it fixes / breaks for SNES but it doesn't seem harmful from a quick random test). . Minor NSS screen output fixes - pacman.cpp, jrpacman.cpp and pengo.cpp: Fixed X and Y flip bits are ignored when sprite is rendered at top of screen due to vertical wrapping (ID 06235). Note: When a sprite is partially off the bottom of the screen (Y values less than $10) the hardware draws the missing parts at the top of the screen, basically wrapping the sprite. - splash.cpp and turbo.cpp: Don't use AM_MASK on ram, you end up with an incorrect allocation size. - system16.cpp . Made some observed changes to some of the game flags in the driver . Reorganized the different sound configurations in "fragments" and added preliminary sound to clones Altered Beast (Datsu bootleg), Mutant Warrior (Altered Beast - Datsu bootleg) and Passing Shot (4 Players) (bootleg). - tourvis.cpp: Added Out Run to the Tourvision games list. Minor gamelist changes. - vegas.cpp . Corrected sub-device lookup string. Added Nile 4 timer scaling. . Added sport timer for DCS2 DSIO device (audio\dcs.cpp). Fixed buffer overflow with clone San Francisco Rush 2049: Special Edition. - AGEMAME . aristmk5.cpp: Reorganized sets based on their actual description. Unified rom naming and added a few sets that were missing. . aristmk6.cpp . Reorganized sets based on their actual description. Removed a few sets which were hacked or incomplete, compared to their parents. . Unified rom naming and fixed loading offset in games which use the expansion board. Also added a few sets that were missing. . Fixed BIOS loading and some BIOS naming. Removed an overdumped BIOS and moved qnilese base PCB ROMS to the BIOS set. . mpu4.hxx and mpu4sw.hxx: Made efforts to provide a 'simpler' configuration setup for MPU4 hardware to encourage easier 'per game' configuration. Tested with one Andy Capp game for now, but others will follow. - Android (prototype, later build): Fixed ROM labels/locations for clone Android (prototype, early build) and added dumps of the two PLDs. - Battle Rangers: Game is a mono PCB - Blood Bros: Thoroughly reworked clone West Story (bootleg of Blood Bros.) memory map based on M68000 code. FG tilemap scrolling implemented for weststry. Sound hooked up, but doesn't fully work (YM3812 stops sending IRQs). Various things documented in other Blood Bros. games. - Breakout [TTL]: Fixed attract mode - Funky Ball: . Reversed ROM flash hookup, fixed bogus FPU exception. . Hooked up terminal device. Fixed region endian. - Gals Panic 3: Added correct supplemental graphics roms to clone Gals Panic 3 (Hong Kong) - Godzilla (Japan): Fixed BCD overflow score bug (machine\raiden2cop.cpp). Marked game as working until otherwise proven. - Gradius 4: Added rasterizers (video\voodoo_rast.hxx) - Halley's Comet: Removed goto:s and somewhat simplified the readability of the video driver - Hole Land: Corrected default dips (local language, not English) and added dipswitch definitions for clone Hole Land (Spain) - Lucky 9: Replaced TMS9980A CPU with TMS9900, because the 9980 address space is too small. - Major Poker: Added missing PLDs, plus technical notes. - Mario Bros: Fixed 'Bonus Life' dipswitch descriptions for Mario Bros. (US, Revision F) (ID 03321) - Match Games . Added technical notes and corrected CRT 810 layout + old notes . Some cleanup for coding standards and fixed coinage dipswitches. - Metal Freezer . Added dips . Fixed missing sprites on edges . Attempt fixing rowscroll enable for stages 5, 10, ... . Removed MACHINE_IMPERFECT_GRAPHICS flag until otherwise proven - Ozma Wars: Added color proms - Poker Monarch: Boots up. By adjusting SW1 you can get various test screens and cards. - Pro Sports: Fixed wrong Upright / Cocktail assignment - Rad Mobile: Swap Lights_lamp and Wiper_lamp (these output signals were misassigned) - Sliver: Made the way jpeglib.h is included more pretty - Street Smart: Fixed sprite regression - Teenage Mutant Ninja Turtles: Corrected visible screen area as per real hardware - Tora Tora: Fixed timer and interrupts. Improved sound (Game now playable). - Ultimate Mortal Kombat 3: We're currently using version 1.0 roms for sound for all sets, see MT#00751. Marked sound roms bad dump in Ultimate Mortal Kombat 3 (rev 1.2) and clone (rev 1.1). - Input port . Added flag to mark input fields as optional . Don't crash on input modules not derived from wininput_module, like "none" (input\input_windows.cpp) . Added ioport tagged_list to unordered_map . A few minor input fixes and cleanups: Input modules exit() is called twice. Removed the unnecessary input_exit() method. Removed unnecessary pointer init in handle_input_event and should_hide_mouse. When registering event callbacks in SDL, don't assume the SDL enum values are int-sized. - Dipswitch fixes in atlantis.cpp, dlair.cpp, liberate.cpp, mario.cpp, metlfrzr.cpp and poker72.cpp - Fixed rom names in 1943.cpp, aristmk5.cpp, aristmk6.cpp, esh.cpp, galivan.cpp, himesiki.cpp, majorpkr.cpp, n8080.cpp and naomi.cpp - Renamed (50lionr) to (50lionrr), (50lionsa) to (50lionsm), (5draga) to (5drag), (5dragons) to (5dragsp), (adonis6) to (adonisa6), (adonise) to (adonisu), (adonishl) to (adonisce), (aftrhrs) to (afterhrs), (alchemya) to (alchemy), (amzqnar) to (amzqueen), (amzteml) to (amztempl), (antcleo) to (antcleom), (arbngts) to (arabnga6u), (arbnigar) to (arabnga6), (badbog) to (baddog), (bigbenpj) to (bigben), (bigredjp) to (bigred2), (birredar) to (bigred), (bmbgs) to (bmbugs), (bobdolu1) to (bobdolly), (bootscot) to (bootsctn), (bootsctn) to (bootsctnu), (brazilar) to (brazil), (bucanar) to (bucaneer), (buffalar) to (buffalo), (buffaloa) to (buffalou), (bumblbug) to (bumblbugu), (bumbugs) to (bumblbug), (butdeli) to (buttdeli), (callwlar) to (callwld), (canary2) to (canaryrc), (cashcham) to (cashchamu), (cashchm) to (cashcham), (cashcroa) to (cashcra5), (chickena) to (chickna5u), (chkmatar) to (checkma5), (chkrun) to (chickna5), (choysun) to (csdm), (cmpacman) to (cmpacmana), (coralr2v) to (coralrc2), (crspru) to (cryspriu), (crystals) to (crysprim), (cshcat) to (cashcat), (cuckoo) to (cuckoou), (cuckooa) to (cuckoo), (dangar) to (dangara), (dangar2) to (dangarb), (dangarb) to (dangarbt), (davedrag) to (5dragce), (dblagus) to (dblagent), (deltqn) to (deltaqn), (dinoaris) to (dinosa6), (dltbel) to (deltabel), (dmddove) to (diamdove), (dmdtouch) to (dimtouch), (dmneye2) to (dimeye), (dmneyeus) to (dimeyece), (dolphtra) to (dolphntra), (dolphtre) to (dolphntru), (dolptra) to (dolphntrb), (doubdolp) to (dbldolph), (drawpka) to (multidrw), (drfz6us) to (deepfrzu), (drgnlrd) to (drgnlord), (dstblom) to (dstbloom), (dyjack) to (dynajack), (eaglst2) to (estrike), (efcashex) to (efce), (eggsrich) to (eggsrccm), (eldora) to (eldorda5), (enchfore) to (eforsta5u), (enchfrst) to (eforsta5), (encspela) to (encspell), (ent6r) to (enchantr), (firedan) to (firednc), (flamolusa) to (flamolce), (flamoly2) to (flamoljc), (fortela) to (fortellr), (geishaar) to (geishaa6), (geishanz) to (geisha), (gldincas) to (goldincu), (gnomatw) to (gnomeatw), (goapear) to (goape), (goldarjp) to (goldarch), (goldphm) to (qnilemax), (goldprmd) to (goldpyr), (goldra) to (goldenra), (heartgar) to (heartgld), (highnoar) to (highnoon), (hlntry) to (hlntroy), (hlsunmon) to (sunmonbb), (houhear) to (househrt), (hrttrhb) to (swhr2), (incanz) to (incasunnz), (incsun) to (incasun), (indce) to (indremce), (inddrma) to (indream), (indgcm) to (indgldcm), (indiandr) to (indrema5), (indianmm) to (indremmm), (indll) to (indremll), (indsc) to (indrem2c), (indsrp) to (drmcatch), (jailbrar) to (jailbrk), (jewelunc) to (jewelcm), (koalmnt) to (koalama6), (kookabk) to (kookabuk), (loconz) to (locolootnz), (lonwolf) to (lonewolf), (luck88) to (lucky88), (luigball) to (luigibal), (lw3_207) to (lw3_207c), (magicmsk) to (magimask), (magicmska) to (magimaska), (margmgc) to (marmagic), (marmagic) to (marmagicu), (mgctouc) to (magtcha5), (mgforst) to (magforst), (mgmerm) to (magmerm), (monmous) to (monmouse), (moutmon) to (mountmon), (mtreenz) to (montree), (mysteyec) to (mysteycmu), (mystgrd) to (mystgard), (oscarar) to (oscara5), (pariligh) to (parislgt), (parilius) to (parislgtu), (pcfava) to (pcfavor), (pcnewz) to (pcgold), (pelpetus) to (pelipeteu), (pengpays) to (pengpayu), (penpay20) to (pengpaya), (penpaya) to (pengpayb), (penpayus) to (pengpyce), (petshopa) to (petshop), (pharpor) to (pharfor), (piratar) to (pirata6), (pompeiar) to (pompeia6), (pompus2) to (pompeia6u), (prophar) to (prophecy), (prtygras) to (partygrsa), (przfigha) to (przfight), (pwsp1) to (pwsuper), (qncsh) to (qcash), (qnile) to (qnilea6), (qnilecj) to (qnilejc), (qonilea) to (qnile), (qonileb) to (qnilea), (qotn) to (qnileb), (qotna) to (qnileu), (rdtripus) to (roadtrip), (redbarar) to (redbara6), (retsam20) to (retrsama), (retsam5) to (retrsamb), (rpatrol) to (rpatrola), (rubmgc) to (rubymag), (rumbrel) to (rumbreel), (rwarhl) to (rainwrce), (sbucks3) to (sbuk3), (scatmg2) to (scatmag2), (shamnmg) to (shamnmgu), (sharmnm) to (shamnmg), (sidebs2) to (sidebs2u), (sidebsja) to (sidebsjb), (silgolar) to (silgola6), (silkrdus) to (silkrda6), (skydncra) to (skydnca6), (smtmar) to (smtma6), (ssf2tbj) to (ssf2tbj1), (stardrfu) to (stardrftu), (sunmon2) to (sunmoon), (supbuk2) to (sbuk2), (swheart2) to (swhr2u), (swhr2us) to (swhr2a6), (swthrt2v) to (swhr2v), (thaiprar) to (thaiprnc), (thaiprin) to (thaiprncm), (thgamblr) to (gambler), (tigresar) to (tigress), (tiktoru) to (tiktorch), (timwolfu) to (timbwolf), (topshtar) to (topshta6), (torpdice) to (toprdice), (tretrva) to (trstrove), (triptrea) to (tritreat), (trjhrs) to (trojhors), (trkinus) to (trsking), (turtrea) to (turtreas), (venicus) to (venice), (wheregld) to (wheregldm), (whlcshus) to (whalecshu), (whlcshusa) to (whalecshua), (whtwtr) to (whtwater), (wildways) to (wwaysm), (wingolus) to (wingoly), (witgold) to (wheregld), (witgoldd) to (wheregldsp), (wldafus) to (wldafr), (wldamz1) to (wamazon), (wldamz3) to (wamazona), (wldcatsa) to (wldcata6), (wldcoug) to (wcougar), (wldcougr) to (wcougaru), (wldpan2) to (wldpanda), (wldpntus) to (wldpanth), (wldstal2) to (wldstall), (wldthg) to (wthing), (wwaysar) to (wways), (wwaysll) to (wzwaysll), (zorrojp) to (zorroa6) and (zorrous) to (zorroa6u) - Description changes of Adonis - Cash Express (0201005V, NSW/ACT), Adonis - Cash Express (0201005V, NSW/ACT), Adonis (BHG1508, US), All the King's Gold (0152152, US), Bad Dog Poker (0200428V, NSW/ACT), Bad Dog Poker (0200428V, NSW/ACT), Black Panther (0200818V, Victoria), Boot Scootin' (0100812V, NSW/ACT), Boot Scootin' (0100812V, NSW/ACT), Boot Scootin' (GHG1012-02, US), Buena Suerte (Spanish, set 15, Protel PCB), Buffalo (0252636, US), Bumble Bugs (0200510V, NSW/ACT), Bumble Bugs (0200510V, NSW/ACT), Bumble Bugs (CHG0479-03, US), Butterfly Delight (0200143V, NSW/ACT), Butterfly Delight (0200143V, NSW/ACT), Cash Cat (0300863V, New Zealand), Cash Cat (0300863V, New Zealand), Cash Chameleon (0100438V, NSW/ACT), Cash Chameleon (0100438V, NSW/ACT), Cash Chameleon (DHG4078-99, US), Cash Crop (0300467V, NSW/ACT), Cash Crop (0300467V, NSW/ACT), Chance in Hell - Li'l Lucy (0251125, US), Checkmate (01J00681, NSW/ACT), Checkmate (01J00681, NSW/ACT), Chicken (0100351V, NSW/ACT), Chicken (0100351V, NSW/ACT), Chicken (RHG0730-03, US), Chihiro Firmware Update For Compact Flash Box (4.01) (GDX-0024A), Coral Riches II (0100919V, NSW/ACT), Coral Riches II (0100919V, NSW/ACT), Cuckoo (0200753V, NSW/ACT), Cuckoo (0200753V, NSW/ACT), Cuckoo (CHG1195, US), Dengen Tenshi Taisen Janshi Shangri-la (Build 0728), Desert Bloom (0200111V, NSW/ACT), Desert Bloom (0200111V, NSW/ACT), Diamond Dove (0101018V, NSW/ACT), Diamond Dove (0101018V, NSW/ACT), Diamond Touch (0400433V, NSW/ACT), Dolphin Treasure (0100388V, NSW/ACT), Dolphin Treasure (FHG4077-02, US), Dynamite Jack (01J00081, NSW/ACT), Dynamite Jack (01J00081, NSW/ACT), El Dorado (0100652V, NSW/ACT), El Dorado (0100652V, NSW/ACT), Enchanted Forest (0400122V, NSW/ACT), Enchanted Forest (JHG0415-03, US), Fantasy (Germany), Flaming 7 (W4 Hardware, Red, White & Blue 7's + Hollywood Nights), Fortune Teller (01J00131, NSW/ACT), Fortune Teller (01J00131, NSW/ACT), Genie Magic (0200894V, NSW/ACT), Gnome Around The World (0100767V, NSW/ACT), Golden Pyramids (AHG1205-03, US), Golden Pyramids (AHG1206-99, US), Golden Ra (0101164V, NSW/ACT), Golden Ra (0101164V, NSW/ACT), Hole Land (Japan), Hole Land (Spain), Inca Sun (0100872V, NSW/ACT), Inca Sun (0100872V, NSW/ACT), Inca Sun (0101108V, New Zealand), Inca Sun (0101108V, New Zealand), Indian Dreaming (0100845V, NSW/ACT), Karate Blazers (bootleg with Street Smart sound hardware), King Galah (0200536V, NSW/ACT), Koala Mint (CHG1573, US), Kooka Bucks (0100677V, NSW/ACT), Kooka Bucks (0100677V, NSW/ACT), Loco Loot (0100472V, NSW/ACT), Loco Loot (0100472V, NSW/ACT), Loco Loot (0600725V, New Zealand), Loco Loot (0600725V, New Zealand), Lone Wolf (0100587V, NSW/ACT), Lone Wolf (0100587V, NSW/ACT), Lucky Poker (bootleg/hack of Major Poker), Magic Forest (0151139, US), Magic Garden (AHG1211-99, US), Magic Mask (AHG1548, US), Magic Mask (DHG1309, US), Magic Touch (0200455V, NSW/ACT), Magic Touch (0200455V, NSW/ACT), Margarita Magic (EHG1559, US), Marvel Vs. Capcom 2 New Age of Heroes (Export, Korea) (Rev A), Metal Freezer (Japan), Mine, Mine, Mine (VHG0416-99, US), Money Mouse (0400469V, NSW/ACT), Money Tree (0201397V, New Zealand), Money Tree (0201397V, New Zealand), Mountain Money (0100294V, NSW/ACT), Mountain Money (0100294V, NSW/ACT), Multidraw - Free Games (0200956V, NSW/ACT), Multidraw - Free Games (0200956V, NSW/ACT), Mystic Garden (0100275V, NSW/ACT), Mystic Garden (0100275V, NSW/ACT), Naomi DIMM Firmware Update for CF-BOX (4.01) (GDS-0042A), Naomi DIMM Firmware Updater (2.13) (GDS-0023A), Naomi DIMM Firmware Updater (2.17) (GDS-0023C), Naomi DIMM Firmware Updater (3.17) (GDS-0023E), Orchid Mist (0200849V, NSW/ACT), Oscar (0200348V, NSW/ACT), Oscar (0200348V, NSW/ACT), Panther Magic (0101046V, NSW/ACT), Party Gras (AHG1567, US), Party Gras (BHG1284, US), Peacock Flutter (02J00011, NSW/ACT), Penguin Pays (0200357V, NSW/ACT), Penguin Pays (0200357V, NSW/ACT), Penguin Pays (0200359V, NSW/ACT), Penguin Pays (0200359V, NSW/ACT), Penguin Pays (0200460V, NSW/ACT), Penguin Pays (0200460V, NSW/ACT), Penguin Pays (BHI0417-03, US), Pet Shop (0100679V, NSW/ACT), Prize Fight (0100299V, NSW/ACT), Prize Fight (0100299V, NSW/ACT), Queen of the Nile - Maximillions (0401072V, NSW/ACT), Queen of the Nile - Maximillions (0401072V, NSW/ACT), Queen of the Nile (0100439V, NSW/ACT), Queen of the Nile (0100439V, NSW/ACT), Queen of the Nile (0300440V, NSW/ACT), Queen of the Nile (0300440V, NSW/ACT), Queen of the Nile (GHG4091-02, US), Queens of Cash (0100706V, NSW/ACT), Queens of Cash (0100706V, NSW/ACT), Rainbow Warriors - Cash Express (0101332V, NSW/ACT), Rainbow Warriors - Cash Express (0101332V, NSW/ACT), Reelin-n-Rockin (0100779V, NSW/ACT), Return of the Samurai (0200506V, NSW/ACT), Return of the Samurai (0200506V, NSW/ACT), Return of the Samurai (0200549V, NSW/ACT), Return of the Samurai (0200549V, NSW/ACT), Return of the Samurai (0400549V, NSW/ACT), Return of the Samurai (0400549V, NSW/ACT), River Patrol (bootleg set 1), River Patrol (bootleg set 2), Space Invaders (CV Version, larger roms), Sumo Spins (0200606V, NSW/ACT), Super Bucks II (0400501V, NSW/ACT), Super Bucks II (0400501V, NSW/ACT), Super Bucks III (0200711V, NSW/ACT), Super Bucks III (0200711V, NSW/ACT), Super Pacman (v1.2) + Cherry Master (Corsica, v8.31, set 2), Sweethearts II (0200004V, NSW/ACT), Sweethearts II (0200004V, NSW/ACT), Sweethearts II (PHG0742-02, US), The Chariot Challenge (0100787V, NSW/ACT), The Gambler (EHG0916-02, US), Top Banana (0100550V, NSW/ACT), Treasure Trove (01J00161, NSW/ACT), Treasure Trove (01J00161, NSW/ACT), Triforce DIMM Updater (3.17) (GDT-0011), Triforce Firmware Update For Compact Flash Box (4.01) (GDT-0022A), Triple Treat (0201692V, NSW/ACT), Triple Treat (0201692V, NSW/ACT), Trojan Horse (01J00851, NSW/ACT), Trojan Horse (01J00851, NSW/ACT), Tropical Delight (PHG0625-02, US), Unicorn Dreaming (0100791V, NSW/ACT), Wicked Winnings II - Power Pay (10214011, NSW/ACT), Wild Amazon (0200285V, NSW/ACT), Wild Amazon (0200285V, NSW/ACT), Wild Amazon (0200507V, NSW/ACT), Wild Amazon (0200507V, NSW/ACT), Wild Bill (0100297V, NSW/ACT), Wild Cougar (0100167V, NSW/ACT), Wild Cougar (0100167V, NSW/ACT), Wild Cougar (NHG0296-04, US), Wild Thing (0101158V, NSW/ACT), Wild Thing (0101158V, NSW/ACT) and Wings Over Olympus (0252529, US) - MAME . VIDEO RENDERING SYSTEM . HLSL . Added simple procedural texture for vectors with rounded line ends and beam smoothness . Added optional -vector_beam_smooth option . Removed -antialias option, antialiasing is now always applied, except for plain D3D. . Fixed scanlines if the screen output is less than twice the size of the host source. . Small shader corrections . BGFX . Fixed debug crash with BGFX screen chains (chains\hlsl.json, render\bgfx\chain.cpp) (ID 06195) . Fixed crash when using pillarbox shaders. Fixed potential crash when using pillarbox default.lay but not specifying 3 shader chains. . Vector line width is now applied by BGFX . Rearrange shaderc arguments (bgfx\shaders\ . Fixed -resolution and -switchres (modules\osdwindow.h, sdl\window.cpp and osd\windows\window.cpp). This fixed MAME can't set window size anymore (eg. -window -resolution 640x480) (ID 06196) . Fixed offset of vector lines and clipping rectangle when vector primitives are prepared to be rendered into a texture (HLSL) instead of directly on the screen (GDI, D3D) (emu\render.cpp) (ID 06222). . Removed dead D3D code: Removed not functional vector texture code. Removed unused D3DTOP_MODULATE2X/4X code. Removed unused antialiasing code for UI lines. Removed usage of vector_time_period which does not exist anymore. . Cleanup vector batch in D3D . Introduced dynamic_module (lib\osdlib.h). This is a central cross-platform facility to dynamically bind functions from shared libraries. Updated all OSD modules to use it. Removed Direct3D abstraction layer (d3d\d3d9intf.cpp and d3dintf.h). The calling convention goes inside the brackets of pointers to functions. Allows compiling with MSVC. . Improved doxygen-style comments for some defs in emu\screen.h, thumbs down for the class. . Fixed crash of D3D when sliders menu is openend and resizing the window or switching between window and full screen mode . UI . Moved menu classes into ::ui namesapce . Reduced scope of many symbols . Make ARRAY_LENGTH cause a compile error if used with a pointer/vector . Clean up text input code, move common operations to inline templates . Fixed numerous one-byte buffer overruns . Don't flat-out ignore input beyond the C1 hole . Fixed decoding of SDL text input . More slider cleanup . Changed the backing representation of OPTION_UI from being a string to an enum . Changed UI handlers to be stored as std::function(); implemented old set_handler() on top of this. . Added template implementations of mame_ui_manager::set_handler(), and changed call sites. . Fixed loading info for several software lists (ui\datfile.cpp) . Fixed issue with volume slider likely introduced with ui handler lambda changes . Changed to C++ comments (ui\sliders.cpp) . Fixed not load for some INI files in the category filter. Removed use of strcmp for menu separators. Modernized and cleaned up some part of code. . A little change to device_image_interface::call_display to better decouple UI fronted and image devices . Fixed crash in attempt to use "Configure Machine" from favorites filter . Boot time reduced by ~15% . Make filesel current path clickable . Fixed crash with icons in main list . Miscellaneous text fixes and cleanups. Changed mame_ui_manager::draw_text_box() to use ui::text_layout directly. Fixed incorrect icons refresh. Prevent NaN errors by initializing variable in ui::text_layout. . Using rgb_t::transparent constant (ui\text.h). Fixed a bug in text layout that could cause text_layout::actual_width() to return something higher than what it really was. . Changing maximum width specified in mame_ui_manager::draw_text_box() to allow for the border (ui\ui.cpp) . Added "return to origin point (0,0)" feature to Tilemap Viewer (tied with HOME key) . Fixed a problem with game list when using MS Sans Serif font . PLUGINS . Make pluginspath apply in plugins\boot.lua. This fixed pluginspath option not fully recognized (ID 06221). . Hiscore: Fixed segaxbd.cpp games and improved error. Fixed remaining hiscore parse error. Fixed renamed/duplicated sets. Removed remaining invalid sets. Sort by source file in an effort to make it somewhat maintainable, mark entries not in mame.lst, and add script to do the sorting and comparing. . Cheat: Added share accessors to LUA engine. Search share regions (plugins\cheatfind\init.lua). Don't turn off cheat.script unless on. . MULTI-LANGUAGE . Updated French/Belgian language files . Small update of Italian translation . MEMORY SYSTEM . 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 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. Some drivers, hopefully not many, will fail the gate-guarding bureaucrat trials. Should be easy to fix actually, I worked on the error messages. A full regression test would be welcome. . Handlers on different subunits of the same address with different address masks are now supported (emu\emumem.cpp) . Added tagged_list to unordered_map in emumem. Removed simple_list from emumem. . Use unshifted addrmask (not bytemask) in check_optimize_foo (emu\emumem.cpp) . Fixed some issues in emumem. Note: It's actually a very old bug that was uncovered. Direct access update mistaked the per-handler mask and the global mask. As it happened the per-handler mask was often the global mask, but I made the frontend *way* more agressive w.r.t masks now. So the bug became way more visible. . CHEAT ENGINE . Using std::vector> instead of simple_list in Cheat engine (mame\cheat.cpp) . Fixed most sets in neodriv.hxx crashes if cheats are enabled (ID 06241) . Fixed Mortal Kombat and Mortal Kombat II doesn't start if cheats are enabled (ID 06225) . STATE SAVING . 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. . SOFTWARE LIST . No need for custom allocators (emu\hashfile.cpp and softlist.cpp) . Added PugiXML and used it for hashfile (3rdparty\pugixml\... and emu\hashfile.cpp) . Fixed a mismatched new[]/delete error in util\corealloc.h . Added template/macro for delaring array with equivalent dimensions (osd\osdcomm.h) . Ensure XAudio2 doesn't crash when no sound card present (sound\xaudio2_sound.cpp). Added XAudio2 init time logging. . Fixed network output to include all data (output\network.cpp) . Placed back old output system as module "-output windows" need more things cleaned (modules\output\win32_output.cpp/h and windows\ledutil.cpp) . Fixed handling VIDEO_NONE on windows . Added ROMX_FILL, passing a ROM_SKIP(param_value) will fill and skip just like a ROM_LOAD16_BYTE macro (emu\romload.cpp). . Fixed debugging code in font_dwrite.cpp . Added WINAPI to other needed functions for stdcall calling convention on 32-bit (font\font_dwrite.cpp, input\input_xinput.h, d3d\d3dhlsl.h, drawd3d.cpp and sound\xaudio2_sound.cpp) . Fixed regression in astrocde.cpp (gorf), atari_s1.cpp, galaxian.cpp (amidar and turtles), mcr.cpp, mcr3.cpp, pacman.cpp (8bpm, drivfrcp and porky) and system1.cpp . Validity checking for AM_MASK/AM_MIRROR/AM_SELECT in 8080bw.cpp, unkhorse.cpp and many others . Supply modified time for files in archives (lib\util\un7z.cpp). Introduced util\timeconv.cpp, moved code from un7z.cpp into it, and implemented win_time_point_from_filetime() in terms of it. - SDLMAME . Disable pthreads under Emscripten for now, they aren't actually available unless you compile with experimental settings (osd\osdsync.cpp). . Fixed video mode opengl duplicated in SDL build (modules\lib\osdobj_common.cpp, sdl\sdlmain.cpp and windows\winmain.cpp) . Fixed SDL version of (MESS) ZEXALL . POSIX implementation for new directory read features, cleanup of Windows implementation, return directory handle as smart pointer, fix full build. - Android . Fixed build (_ prefixed names; netlist\nl_setup.h) . Allow full build on Android . Renamed si_status to si_status_val in n64 as si_status is a preprocessor macro on Android . Renamed PAGE_MASK to page_mask in samcoupe to avoid clash with macro (it's a local anyway) . Abuse namespaces to get around the conflict between our x86emit::REG_Rn and Android's ::REG_Rn in DRC . Changed array assignment to double brackets for C++11 and Android compatibility (machine\iteagle_fpga.cpp) . Fixed Android target libSDL2 circular ref. Also rename ANDROID_NDK_ROOT -> ANDROID_NDK_LLVM to point directly to prebuilt host compiler (removes windows only restriction). . 64bit strip, platform version support. Cleanup make targets and configuration rules. Fixed android_ndk_root env test. - MAC OS X: Fixed mouse behavior on OSX - MESS . Floppy . Added logging to formats\fsd_dsk.cpp . Suppress index pulse irq when busy (machine\wd_fdc.cpp). Did bunch of testing, found no regressions but nothing that even enables the index pulse irq other than the (MESS) Rainbow. . Terminal: Fixed color configuration (machine\terminal.cpp) . WD7600 PC chipset: Fixed memory fatalerrors (machine\wd7600.cpp). Restore keyboard/portb subunits handlers. Fixes POST errors - Compiling . 3rdparty . Updated BGFX, BX and GENie . Removed not used libraries (http-parser and lsqlite3) and commented portaudio that will be used but no need for now. . Added PugiXML and used it for hashfile . travis.yml: Moved to QT5. Updated for OSX. . drone.yml . Created .drone.yml (Build configure for (fork of Drone CI with Msys2 support)) . Added file for Windows/Docker CI for MSYS2/MingW64 . Updated settings. 32-bit due to Cygwin 64-bit bug that bites occasionally. Added -validate with output on success. For the secrets, need to update the YAML to enable, the generate the secrets file, containing the hash of this YAML file once tea-ci is updated to support this. . Added irc bot notification for tea-ci. Encrypted file contains secrets generated from interface. . Fixed channel for irc notifications - no # + example for pacman, should we never need to bring in non-default deps. . Emscripten tweaks (src\main.lua; configuration=asmjs) . Support msbuild from POSIX shell . Preliminary fastbuild support (experimental in GENie) . Added initial ninja support to use add MAKETYPE=ninja to compile command line. Custom build tasks are not yet working. . Fixed 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. . Move window_list to osd_common_t . Fixed double hyphen in -pipe (scripts\genie.lua) . Fixed GCC 6.1.1 warnings . Changed simple_list to std::vector (emu\disound.cpp, screen.cpp and sound.cpp) . osd_printf_verbose . Changed error printing to verbose on probe() and error on init() (input\input_winhybrid.cpp and input_xinput.cpp) . Changed two dynamic bind messages to verbose (netdev\pcap.cpp and d3d\d3dhlsl.cpp) . Use osd_printf_verbose instead of popmessage (sound\ay8910.cpp) . m_formatlist is now vector (imagedev\chd_cd.cpp, flopdrv.cpp, floppy.cpp, harddriv.cpp, emu\diimage.cpp) . Improved workaround for missing cbegin/cend in glibstdc++ (util\strformat.h and vecstream.h) - Debugger . Debugger may crash when validating expression with non-existent memory space name (debug\debugcpu.cpp) (ID 6225) (ID 6226) (ID 6227) . ImGui based debugger . Removed scrollbar from memory windows, and let the view itself control what is displays. Use cursors/pageup/pagedown to control the memory window when the view cursor is visible. . Pressing Enter on an empty console input box does a single step . Added auto select-all flag to disassembly and memory expression inputs . Actually map cursor keys so that they can be used in input text widgets . Use ImGui functions to handle view inputs, allows key repeating to work in the debugger views. . Fixed exception when un-collapsing a single window . Adjust key repeat rate a bit . Made debugger keys also use ImGui keypress functions . Make new window shortcut keypresses not repeat . Send character inputs to the debugger view with focus, allows editing in memory views. . Draw a light rectangle around a view if it has focus, gives a visual cue as which view accepts input. . Use IM_COL32 macro . If console window is active, then give console input widget focus. Note that this means that the disassmbly view in the console cannot get focus at all (but separate disasm windows still can). . Added history functionality to debugger console, fixed issue with main views being re-allocated when no extra windows have been created. . When using history, set the cursor position to the end of the text. Don't add command to history if it's the same as the previous one. . Allow debugger console and log window scrollbars to stay at their maximum value if already there . Added 'comlist comment' and 'commit command' to debugger . Major refactoring of debugger core: Eliminate globals/file statics. Removed lots of stuff from global scope. Use std::function for custom command registration. Eliminate some trampolines. Fixed -nodebug crash (emu\video.cpp). . Fixed keyboard shortcus 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). . Added tagged_list to unordered_map for debugger . Removed all usages of tagmap (scripts\src\lib.lua, machine\netlist.h, emu\dislot.cpp, emucore.h, ioport.cpp, machine.cpp, frontend\mame\clifront.cpp, util\tagmap.h, tools\chdman.cpp and unidasm.cpp) . Suppress 'no matching space' debugger error when disassembling CPUs without decrypted opcodes (debug\debugcmd.cpp) . Eliminate some unnecessary pass-through methods from debugcpu


0.178: Updated to MAME 0.178 ( Added Source/Listinfo changes. Newest Bugs (27th Sep). Added/Fixed 'Recommended Games'. Fixed Mameinfo.dat infos.
0.177: Updated to MAME 0.177 ( Added Source/Listinfo changes. Newest Bugs (30th Aug). Added/Fixed 'Recommended Games'. Fixed Mameinfo.dat infos.
0.176: Updated to MAME 0.176 ( Added Source/Listinfo changes. Newest Bugs (27th Jul). Added/Fixed 'Recommended Games'. Fixed Mameinfo.dat infos
0.175: Updated to MAME 0.175 ( Added Source/Listinfo changes. Newest Bugs (29th Jun). Added FB Alpha v0.2.97.38 Emulator infos. Added/Fixed 'Recommended Games'. Fixed Mameinfo.dat infos.


MAMEINFO.DAT 0.178  (2.57 MB)

MAMEINFO.DAT 0.177  (2.56 MB)

MAMEINFO.DAT 0.176  (2.53 MB)

MAMEINFO.DAT 0.175  (2.52 MB)

   MASH's Driver WIP

   News Submission Board
   MAME Testers
   MAME Download
   MAME Frequently Asked Questions