MAME 0.177 Raspberry Pi

A new version of MAME is available and I have updated the Raspberry Pi build. Get it from my MAME page here.

MAME for Raspberry Pi

Note: This month is the first month that the code modernization effort being undertaken by MAMEDEV has stopped MAME from compiling cleanly on a stock Raspberry Pi. MAME now requires GCC5 as a minimum to compile and three updated libraries to run the compiled code. I will be reworking the tutorial for building/installing MAME in the next few days to cover how to do this.

As a stop gap I have left last months MAME version available for download for those not happy to mess around with their Raspberry Pi build environments.

For those who are happy to mess about, here’s a clue… Debian stretch includes gcc-6 and g++-6 stable as standard, installing those will include the required libraries as well.

As an incentive to potential fiddlers; this months MAME appears to run between 5% and 10% faster than last months. I guess that’s down to the newer compiler!

The whatsnew.txt is reprinted below.

0.177
-------


MAMETesters Bugs Fixed
----------------------
- 00550: [Graphics] (atarisy2.c) apb: There is a graphics problem with
  your police car at the point you drive away from your starting
  square. (crazyc)
- 01455: [DIP/Input] (segas18.c) lghost: Problem with crosshair (Pitou)
- 05584: [Gameplay] (konamigx.c) rungun2, slamdnk2: during run mame
  produces several messages about unknown protection command (Tafoid)
- 05823: [Core] (coco12.c) -ramsize does nothing for emulation although
  it does change the .ini file (Nathan Woods)
- 06185: [DIP/Input] LIGHTGUNS: Aimtrak Dual Lightguns no longer
  properly detect (Pitou)
- 06269: [Debugger] DEBUGGER: Unable to use any valid cheats while
  using debug (Ryan Holtz)
- 06292: [Crash/Freeze] (victor9k.c) victor9k [cpm86]: Freeze with
  'cpm86' disk (Curt Coder)
- 06314: [Crash/Freeze] Fatal error - All sets using '-centronics p72'
  slot/option (Ryan Holtz)
- 06315: [Crash/Freeze] Fatal error - All sets using c4023, c1526,
  mps802 devices (Ryan Holtz)
- 06316: [Crash/Freeze] (pc1512.c) pc1512, pc1512dd, pc1512hd10: Use of
  'ibm_mfc' slot option causes Fatal error (Ryan Holtz)
- 06317: [Crash/Freeze] (pc1512.c) pc1512, pc1512dd, pc1512hd10: Use of
  '3c503' slot option causes Fatal error (Ryan Holtz)
- 06326: [Crash/Freeze] (megadriv.c) megadriv, 32x and clones, some
  segac2.c sets: Selecting machine and game via softlist though
  internal menu results exception/crash (Osso)
- 06328: [Crash/Freeze] Various ISA using machines: Crash/Exception at
  Initialization (crazyc)
- 06330: [Crash/Freeze] (altos5.c) altos5: Crash/.Exception on
  start (crazyc)
- 06331: [Crash/Freeze] (apollo.c) dn3500_19i, dsp3000, dsp3500,
  dsp5500: Crash/Exception on start (Osso)
- 06332: [Graphics] (galaga.c) digdug and clones: Graphics from
  Tilemap 0 are missing (Osso)
- 06335: [Interface] UI:: Input (general) selection menus do not
  display correctly or at all (Vas Crabb)
- 06342: [Crash/Freeze] pc (pccga): System crashing while
  loading (crazyc)
- 06343: [DIP/Input] (taito_l.c) plottingu: Coinage dipswitches are
  labeled incorrectly. (Tafoid)
- 06349: [Gameplay] brapboys: MAME crashed when exiting
  game (O. Galibert)
- 06352: [Crash/Freeze] (cps1.c) mbombrd, mbombrdj: Crash in
  demonstration mode (Osso)


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

-maygay1b: [David Haywood]
 * Fixed second set of lamps
 * Partially investigated MCU hookup

-apple2gs.cpp: Redumped 341-0748 FE-FF ROM for the ROM03 Apple IIGS,
 confirming that 341-0748 and 341-0749 ROMs are identical.
 [Brian Troha]

-mpu4.cpp: Added all known expansions as fragments for DRIVER_INIT.
 This will permit 'per set' configuration to make the games
 playable. [James Wallace]

-naomi.cpp: Added all known Sega DIMM board firmware dumps. [TylerDurden67]

-amstrad.cpp: Added pause button to GX4000. [Barry Rodewald]

-debugimgui: Added images menu, with crude file select dialog, added
 very crude create image dialog. [Barry Rodewald]

-ALTOS5: Fixed banking, all disks can boot. [Robbbert]

-Renamed the arcade "sun" project to avoid conflict with the mess "sun"
 project [Robbbert]

-Playmatic Pinball: All MPU-1 games working, plus other WIP. [Robbbert]

-MK14: [Robbbert]
 * Fixed a memory bug.
 * Added paste facility, cassette, sound, and notes.

-Pro-80: Added devices. [Robbbert]

-Separated the LDP-1450 laserdisc player into its own device
 [James Wallace]

-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. [James Wallace]

-Dumped Ferrari F355 Japan BIOS. [ShouTime]

-Fixed TNZS ROM locations/labels [Brian A. Troha, Lord Nightmare]

-hiscore.dat: updates [Leezer]

-Various netlist fixes: [couriersud]
 * Minor include cleanup
 * Fixed a memory hole caused by assign operators
 * More C++
 * Use noexcept in netlist code where appropriate

-abc80x: Fixed ABC-838 disk image cell size. [Curt Coder]

-c64: Optimized the 1541 bit read/write function slightly without
 noticable effect on driver speed, since the 2 CIA's are the current
 bottlenecks. [Curt Coder]

-compis improvements: [Curt Coder]
 * Created a bus for the graphics card slot
 * Fixed keyboard
 * Promoted driver to working
 * Fixed RTC to use 24 hour mode

-victor9k improvements: [Curt Coder]
 * Set floppy RPM after track step
 * Implemented hires graphics
 * Implemented display brightness control
 * Fixed keyboard line Y12
 * Implemented SCP communications
 * Boots to CP/M and MS-DOS now - promoted driver to working

-pofo improvements: [Curt Coder]
 * Implemented the A: credit card memory
 * Fixed the RTC
 * Added memory card slot interface and ROM/RAM cards

-im6402: Reset receive/transmit registers after data frame is changed
 [Curt Coder]

-wangpc improvements: [Curt Coder]
 * Fixed interrupt handling - boots to DOS now
 * Fixed keyboard error on POST

-Fixed missing region report when DEVICE_SELF is used. [O. Galibert]

-dirom: device_rom_interface for sound chips with rom/memory map
 alternative [O. Galibert]
 * Make robust for oversize ROMs

-dirom,okim6295: Added/fixed banking support. [O. Galibert]

-Preliminary VGM player (vgmplay) [O. Galibert]

-kaneko_calc3: Stop trashing memory. [O. Galibert]

-Fairlight CMI IIx driver: [Ryan Holtz]
 * Modernization of Phil's CMI IIx driver
 * Hooked up serial callbacks, alphanumeric keyboard now works
 * Fixed FDC DMA, QDOS now boots
 * Fixed MSM5832 RTC hookup
 * Hook up second floppy

-vgmplay.cpp enhancement: [Ryan Holtz]
 * Added HuC6280, NES APU, Gameboy DMG, YM2203, YM3812, YM3526,
   AY-3-8910, Namco C352, Sega MultiPCM, Konami K053260, Atari POKEY
   and Oki M6295 support.
 * Added support for looping.
 * Added dual-chip support for AY-3-8910, YM2203, MultiPCM, and
    POKEY.

-tv990/995: Added save state support and LPT port. [R. Belmont]

-tv950: New redumps, fleshed out the skeleton, needs a CRTC expert to
 draw anything. [R. Belmont, Al Kossow]

-ti99 improvements: [Michael Zapf]
 * Fixed stuck INT line in TMS9902
 * Improved logging
 * Fixed missed CTS signal, outgoing RTS, incoming DTR
 * Fixed RS232 line mapping
 * Fixed debugger access to cartridge
 * Use proper RAM devices instead of ROM_REGIONS
 * Fix a problem with formatted disk images that do not match the
    expected file size
 * Fixed another issue with double stepping

-ti99_dsk: Fixed issue with deleted data marks in FM. [Michael Zapf]

-hdc92x4: Added 9224 emulation. [Michael Zapf]

-Added PC-AT mode (still untested), some preparations for 9224
 emulation. [Michael Zapf]

-floppy: Improved floppy sound emulation with new sound samples.
 [Michael Zapf]

-Funworld driver: Added technical notes to Inter Games poker.
 [Roberto Fresca]

-Jolly Card (Austrian, set 2):
 * Added specs [Roberto Fresca, Team Europe]
 * Added GAL16V8S dump [Team Europe, caius]

-Jolly Joker (Apple Time): Added technical notes. [Roberto Fresca]

-Amatic multigames: Corrected technical notes. [Roberto Fresca]

-alto2 improvements: [Juergen Buchmueller]:
 * Added speaker sound
 * Further cleanup and removed cruft
 * Get rid of the fake status display. Refactor mouse positioning code.
 * Removed extra screen buffer
 * Save copying odd/even frame scanlines by immediately updating bitmap
 * Fixed I/O memory read
 * Reduced frame rate (really 30 frames/60 fields per second)
 * Replaced decoded MIR bit fields
 * Removed member function pointers
 * Refactored videotiming, use attoseconds_t

-apricot improvements: [Dirk Best]
 * Moved expansion bus to its own directory
 * Created bus interface for the keyboard interface
 * Made HLE keyboard emulation a bus device
 * Use device_buffered_serial_interface and
    device_matrix_keyboard_interface for the HLE keyboard emulation to
    reduce duplication and implement a FIFO
 * Added rtc support to keyboard

-Keyboard/terminal improvements: [Vas Crabb]
 * Added base classes for HLE matrix keyboard and buffered RS232 device
 * Made generic keyboard/terminal more usable: configurable typematic
    delay/rate, selectable JIS/ANSI layout, handle simultaneous
    keypresses more intuitively, use meta to set high bit, configurable
    auto LF on CR, auto CR on LF and local echo, audible bell
 * Untangled Olivetti M20 keyboard from generic_keyboard, add notes, use
    physical layout
 * Untangled RM Nimbus keyboard from generic_keyboard aand fix -natural
 * Untangled x68k keyboard from generic_keyboard, improve key names,
    default mapping and typematic behaviour
 * Untangled QX-10 keyboard from generic_keyboard
 * Kept NGEN keyboard barely working

-Rewrote srcclean to be cool with UTF-8, C++14 and Lua. [Vas Crabb]

-Fixed UTF-16 encode, pass UTF-16 to Windows character drawing. [Vas Crabb]

-Made path_iterator copy search path to fix use-after-free [Vas Crabb]

-devfind improvements: [Vas Crabb]
 * Made object finders behave like pointers (not pointer/reference/
    vector) hybrids
 * Removed some default argument values and dangerous accessors
 * Use single uniform class for object array finders, using real arrays
    to avoid double indirection
 * Use a format string to allow more flexible tag names in object array
    finders
 * Use template using typedefs to greatly reduce bolerplate code
 * Consolidated template instantiations speeding up the build
 * Added Doxygen comments to many key classes

-Fixed cosmic.cpp and mpu4.cpp games that had too few tags passed to
 I/O port array finder [Vas Crabb]

-dooyong.cpp: Video improvements: [Vas Crabb]
 * Mix two 4bpp tilemaps for the 8bpp layer in popbingo
 * Made ROM tilemap generator into a device, moving a whole lot of stuff
    from video start to machine config and removing trampolines
 * Changed tile/sprite ROM regions to be 16-bit to better match hardware
 * Represent 16-bit text layer block on Z80 games as a device
 * Split up state classes some more and use derived machine configs

-Fixed regression: using IPT_START in sms makes mame think joypad 1 is
 occupied and inserts joypad 2&3 instead of joypad 1&2 [hap]

-dotrikun improvements: [hap]
 * Much better video timing, but still shows glitches in ccovell's ROM
 * eat_cycles clamps to 0, adjust_icount does do what I intended
 * Try another method for video timing

-gx4000: Don't use IPT_KEYBOARD for console pause button. [hap]

-al520ex: Use correct key name for tvordiy znak. [hap]

-hh_tms1k: Gamelist notes update. [hap]

-hh_hmcs40: Added sag internal artwork (external artwork still
 recommended). [hap]

-tlcs90: Fixed a nonsense check. [hap]

-chessmst: Added reset and halt buttons. [hap]

-champbasjb: Fixed MAME complaining about missing MCU device, correct
 romlabels. [hap]

-lghost: Allow gun offset correction to be disabled. [hap]

-tiamc1: Tilemap bit layers disable control. [MetalliC]

-i8080: Fixed status callbacks during stack and IO access [MetalliC]

-vector06: Improvements: [MetalliC]
  * RAM expansion emulated, MicroDOS and software works now
  * Fixed ROM cartridge address decoding, boots now
  * Changed to use KR1818VG93 FDC
  * Added "Sound Tracker" and "R-Sound" AY8910 sound
  * Added pit8253 sound
  * Fixed vblank interrupt generation

-cv1k.cpp: Found and corrected bad bits in Pink Sweets U2 graphics ROMs
 based on comparison 4 dumped versions. [MetalliC, rtw]

-aica: Added ADPCM diff value clamp based on encoder research.
 [kode54, MetalliC]

-hp9845: Added correct character generator ROMs. [fulivi, A.Kueckes]

-Use emumem.h defines whenever possible. [Giuseppe Gorgoglione]

-gba: Reworked and simplified code. [Giuseppe Gorgoglione]

-gba: First batch of code refactorings: [Giuseppe Gorgoglione]
  * Attempt at modernizing the code by taking advantage of C++ features

-Made hiscore path configurable by ini file, fix .hi file path
 resolution. [stengun]

-Fixed Gun#2 not working in MAME #618 [Pitou]

-Fixed read case in kaneko_calc3.cpp and made kaneko_toybox.cpp safe as
 well. [David Haywood]

-Various Seibu Refactoring: [David Haywood]
  * Air Raid, Street Fight and Dark Mist all use very similar video
     systems;this takes some steps towards allowing a common
     implementation
  * Street Fight and Cross Shooter use a common mmainboard wiht
     different Video Boards; makes video boards into devices to
     faciliate this

-Put DM01 matrix board CPU inside device for BFM Sc2/4. [David Haywood]

-Maygay M1A, MCU bones, commuication not hooked up yet. [David Haywood]

-Fixed many MPU4 set descriptions: [David Haywood]
 * Identify and mark hacks
 * Associate sets with correct games
 * Treat Casino Bar-gain and Bar-gain as different games

-Treat Sc2 DMD as screen, avoid tag lookups, add correct DMD ROM to some
 sets [David Haywood]

-Maygay M1A/B partial fix for lamp mapping: [John Parker]
  * Fix the lamp mapping for the first half of the matrix
  * Fix typo and add comment to function that is intended to handle the
     second half of the matrix

-Added layouts to Maygay driver: [John Parker]
 * These are generated, and will be updated as I MFME2MAME converter is
    improved, reels are transcribed, etc.
 * m1albsqp, m1apollo2, m1bargnc, m1bghou, m1bigdel, m1calypsa,
    m1casclb, m1casroy1, m1chain, m1cik51o, m1clbfvr, m1cluecb1,
    m1cluedo4, m1cluessf, m1coro21n, m1dkong91n, m1dxmono51o,
    m1eastndl, m1eastqv3, m1fantfbb, m1fightb , m1frexplc, m1gladg,
    m1grescb, m1hotpoth, m1htclb, m1imclb, m1infern, m1inwinc,
    m1itjobc, m1itskob, m1jpmult, m1lucknon, m1luxorb, m1manhat,
    m1monclb, m1mongam, m1monmon, m1monou, m1nhp, m1nudbnke, m1omega,
    m1onbusa, m1przeeb, m1retpp, m1search, m1sptlgtc, m1startr,
    m1taknot, m1thatlfc, m1topstr, m1triviax, m1trtr, m1ttcash,
    m1wldzner, m1wotwa

-Added new Scorpion 1 layouts: [John Parker]
  * sc1barcd, sc1bartk, sc1cl65, sc1clbtma, sc1cwcl, sc1dblch, sc1pwrl,
     sc1sirb, sc1spct, sc1str4

-Scorpion 2: Added 12 internal layouts: [John Parker]
  * sc2ptytm1, sc2cpe, sc2casr2, sc2majes, sc2eggs1, sc2prom, sc2cpg,
     sc2copcl7, sc2town2, sc2suprz1, sc2heypr, sc2prem2

-Scorpion 4: Added 35x Layouts. [John Parker]

-Scorpion 4: Added 73 Layouts. [John Parker]
  * sc4jack, sc4kalei, sc4knokb, sc4lirb, sc4lined, sc4lockb, sc4lkbcl,
     sc4mmmg, sc4mgr, sc4mtbb, sc4mtbclb, sc4monoba, sc4mondxe,
     sc4mr2rc, sc4motor, sc4mou, sc4nmtj, sc4nudita, sc4pacqpa,
     sc4paccl, sc4pstata, sc4pgold, sc4po8, sc4ppclb, sc4pipe, sc4plumb,
     sc4polic, sc4pony, sc4potsha, sc4pwrbq, sc4pwrsg, sc4pen1c,
     sc4qmodo, sc4quidrb, sc4rhxcsa, sc4rhxcl, sc4redsq, sc4rotc,
     sc4revod, sc4richl, sc4rttt, sc4roksc, sc4rogds, sc4rmo, sc4rtc,
     sc4srrca, sc4smk7, sc4slci, sc4solgl, sc4slihd, sc4sparkd,
     sc4sbust, sc4starpk, sc4strk, sc4sahed, sc4susk, sc4suscl, sc4s6cd,
     sc4taekw, sc4takcl, sc4tempt, sc4lions, sc4tic2, sc4tbana,
     sc4tload, sc4tpshta, sc4trail, sc4ttomb, sc4tridn, sc4tfclb,
     sc4vrgclb, sc4wldjkc, sc4xmarka

-JPM IMPACT: Added 58 layouts. [John Parker]
  * j6aceclb, j6acehi, j6amdrm, j6arcadee, j6big50, j6bigbukc,
     j6bigtopa, j6bnkrcl, j6bnza, j6btbwd, j6camelt, j6casclaf,
     j6cascze, j6colcsh, j6cpal, j6crack, j6drdogh, j6euphor, j6ewn,
     j6fastfr, j6ffce, j6frtpot, j6gidogh, j6gldclb, j6gogold,
     j6goldgla, j6guabc, j6guabcl, j6hapyhrb, j6impulsc, j6indyi, j6kfc,
     j6kungfud, j6megbck, j6mono60, j6monst, j6montlkb, j6oxobin,
     j6quick, j6ra, j6redarwf, j6reelmn, j6rh6cld, j6rhchil, j6rico,
     j6rollerd, j6slagng, j6snakes, j6stards, j6swpdrp, j6tombc,
     j6topflg, j6twst, j6untch, j6vindal, j6vivark, j6wizardd, j6wldkng

-MPU3: Added 39 layouts. [John Parker]
  * m3acech, m3autort, m3biggam, m3bigsht, m3blkhle, m3cabreta, m3chase,
     m3circle, m3cskill, m3cunlim, m3fortun, m3gcrown, m3gmine,
     m3lineup, m3loony, m3nnice, m3oddson, m3online, m3oxo, m3ratrce,
     m3razdaza, m3replay, m3rockpl, m3rollem, m3rxchng, m3sexcu,
     m3slight, m3snaphp, m3spoof, m3supadr, m3supnud, m3supspo,
     m3supwin, m3sweep, m3tfair, m3toplin, m3winagnb, m3winstr, m3xchngg

-Scorpion 4: Mostly fixed 7-segment displays. [John Parker]

-Maygay: Fixed input strobe order bug [John Parker]

-Updated regenerated Maygay layouts; all now initialise OK.
  [John Parker]
  * Updated due to Converter bugfixes.

-Maygay: Added/updated layouts: [John Parker]
  * Layouts have the 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

-JPM MPS: Added 89 Layouts: [John Parker]
  * j2adnote, j2always, j2bankch, j2bigbnk, j2bigbox, j2blustr,
     j2cashbn, j2cashrl, j2cashro, j2cashrv, j2cashtk, j2coinsh,
     j2coppot, j2cprndx, j2criscr, j2crown, j2cshalm, j2cshcrd,
     j2cshfil, j2cshnud, j2cshsmh, j2cvault, j2droplt, j2ewn, j2ews,
     j2exec, j2fasttk, j2fiveal, j2fiveln, j2fqueen, j2frucnx,
     j2fullhs, j2fws, j2ghostb, j2gldchy, j2goldbr, j2hilocl, j2hinote,
     j2hiroll, j2hitmon, j2hotpot, j2hotsht, j2hypnot, j2jackbr,
     j2kingcl, j2litean, j2litnot, j2lovshd, j2lovsht, j2luckar,
     j2lucky2, j2maxima, j2missis, j2monblt, j2mongam, j2montrp,
     j2nolimt, j2notesh, j2nudbnz, j2nudfev, j2nudmon, j2nudshf,
     j2paypkt, j2penny, j2plsmnd, j2plsnud, j2pndrsh, j2rdclb,
     j2reelbn, j2reelbo, j2reelcz, j2reelmc, j2reelmo, j2silvcl,
     j2silvsh, j2sldgld, j2slvrgh, j2spcrsv, j2sstrea, j2stahed,
     j2supfrc, j2suprsh, j2supsft, j2supstp, j2suptrk, j2swbank,
     j2take2, j2trail, j2tstplt

-JPM SYSTEM5: Added 21 layouts: [John Parker]
  * j5ar80cla, j5cira, j5fairp, j5firebl, j5hollyc, j5hotdoga,
     j5indsum, j5intr, j5movie, j5nite, j5palma, j5popeye, j5sizl,
     j5supbara, j5suphi, j5swop, j5term, j5topshp, j5trail, j5ujb,
     j5wsc

-BFM DMD: Adjusted to more accurately match the colour of the real
 machines [John Parker]

-Techno Drive improvements [superctr]
  * Fix H8 ADC inputs
  * Sub CPU seems to expect certain H8 SCI behavior, otherwise it locks
     up after a few minutes making controls unresponsive.
  * Bypassed 'COIN ERROR' at bootup by patching the sub CPU program
  * Swapped 'th1fl3l.12' and 'th1fl3u.13' and placed them at proper
     memory location (0x1800000) so game no longer crashes at Namco logo

-namconb1: fix sound timing for some games [superctr]
  * fixes the sound tempo in nebulray, gslugrsj, gslgr94u and clones,
     and vshoot.

-Byteswapped timecris sample ROM, remove MACHINE_IMPERFECT_SOUND flags
 for C352 games. [superctr]

-Namco C352 improvements: [superctr]
  * Replaced C352 core with new one used in VGMPlay (fixes noise
     generation and sample interpolation)
  * Change clock frequencies for sub CPU and sound chip for
     System 12/23 drivers based on my research on the sound drivers,
     including a comparison between the ND-1 and System 12 drivers
  * Removed rear channels for systems that lack a second Sanyo
     LC78815M stereo DAC

-kim1: RS & ST keys, input ports update: [Dagarman]
  * Hooked up the ST key and updated RS key function
  * Updated INPUT_PORTS to add numpad keys and better support pasting
  * Moved type definitions to kim1.h
  * Simplified kim1.lay coordinates

-Documented 3 diagnostic menu bugs in the Vii's BIOS.
 [PressStartandSelect]

-Fixed action on debugger 'trace'/'traceover' commands: [Nathan Woods]
  * 'trace'/'traceover' commands were registered as having three
     arguments, this fixes it so there are four arguments

-Fixed some MC6847 low resolution video modes: [Nathan Woods]
  * Fixed a bug from where video data was sampled that could cause too
     many samples to be loaded in low resolution video modes
  * On the CoCo, this fixes some low resolution video modes used by
     Project Nebula and some other games

-CoCo 1/2: Fixed configurable RAM sizes: [Nathan Woods]
  * Changes the 6883 SAM implementation to assume memory bank lengths
     smaller than available space are not mirrored

-Made rom_entry a class that keeps copies of strings: [Nathan Woods]
  * Also introduce a POD tiny_rom_entry for static ROM definitions
  * C++-fiied code that iterates over rom_entry arrays

-diimage refactoring: [Nathan Woods]
  * Changed device_image_interface::load() so that it doesn't load both
     images and softlist items
  * Remove vestigial has_been_created() API
  * Consolidated error code translation
  * Use std::string rather than C strings in more cases
  * Better encapsulation of format list
  * Better encapsulation of filename extension extraction

-software list refactoring: [Nathan Woods]
  * Separation of software list data structure from runtime device
  * Use std::string rather than C strings in many cases
  * Standardized terminology for various concepts

-Converted many NUL-terminated strings to std::string: [Nathan Woods]
  * Parameters to zippath and emufile
  * menu_software_list::m_filename_buffer

-Check return value of CassetteLegacyWaveFiller.chunk_sample_calc()
 (this is just better error checking). [Nathan Woods]

-Changed device_image_interface::determine_open_plan() to not create an
 image unless device_image_interface::create() is used.  This fixes odd
 behavior where zero byte images could be created. [Nathan Woods]

-Report Win32 ERROR_INVALID_NAME as osd_file::error::NOT_FOUND
 [Nathan Woods]

-Fixed menu lag. [dankan1890]

-Use required_ioport_array for multiple keyboards. [shattered]

-ec1841: Adapted to new memory system. [shattered]

-mc1502: Made serial test in BIOS work. [shattered]

-poisk1, mc1502: Minor fixes. [shattered]

-vt240: Fixed host comms when flow control is enabled. [shattered]

-dvk_ksm: Fixed host comms, added PORT_CHARs to its keyboard.
 [shattered]

-dvk_ksm: Dropped dvk_ksm01 variant and merged ROM sets; enabled tx to
 its keyboard. [shattered]

-ms7004: Enabled serial rx and add PORT_CHARs. [shattered]

-keyboard: Added F16..F20 keys (present on DEC terminals). [shattered]

-isa_hdc: Implemented READSBUFF command (used by ec1841 diagnostics).
 [shattered]

-Remapped "P1 Mahjong Score" to / key for OS X. [AJR]

-New core input type: "Memory Reset": [AJR]
  * Resets settings/bookkeeping to system-provided default
  * The default key binding F1

-Designated more memory reset inputs in mahjong games. [AJR]

-dynax.cpp: Regularized service inputs. [AJR]

-Attempted to fix distortion with -refreshspeed and -audio xaudio2.
 [Calamity]

-New stretching options (as suggested by Jezze): [Calamity]
  * New option -unevenstretchy (complementary to -unevenstretchx)
  * New option -autostretchxy, to automatically apply -unevenstretchx
     or -unevenstretchy based on source native orientation.

-Warp mode for relative mouse on OSX SDL 2.0.4 (fixes Github issue
 #1232). [bradhugh]

-sengokmj: Inputs refined based on examination of program code: [AJR]
  *  All service inputs are momentary switches, not DIP toggles
  *  Added unused SW2 DIPs as displayed in service mode
  *  Added a couple of obscure inputs not shown in service mode

-pwrkick, othldrby: Various improvements: [AJR]
  * 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 reconfigured coin inputs in Power Kick, 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)

-skylncr.cpp: Improvements to almost all games: [AJR]
  * Use standard input mappings in all games except Sonik Fighter
  * Added working hopper outputs and payout buttons
  * Promoted mbutrfly to WORKING after solving the protection (the code
     wasn't encrypted) and add the button lamps internally associated
     with it
  * Decrypted bdream97, which is almost working now with obvious
     graphical glitches and some apparent input problems

-kurukuru, ppj: Input/output improvements: [AJR]
  * Ticket dispenser now works
  * Corrected "Payout Mode" DIP settings
  * Corrected DSW1 settings in Pyon Pyon Jump
  * Renamed coin inputs and coin-related DIP switches and order by
      increasing denomination
  * Removed "Unknown" inputs that aren't actually used
  * Full character names only for Kuru Kuru Pyon Pyon
  * Reset button now mapped as "Memory Reset"
  * Random notes based on program code

-Show color values in palette viewer: [AJR]
  * Move the mouse over a color rectangle to show index and RGB values
  * For indirect pens, index of the corresponding color is also shown
  * For colors in normal RAM-based palettes, the raw value in memory is
     also shown (does not currently work with most buffered palettes,
     and is incompatible with PROM-based or RAMDAC-based palettes)

-Validity checking improvements: [AJR]
  * Always print the name of each driver with -validate -verbose before
     check to help detect crashes
  * Softlists get validated the first time, not every time but the
     first
  * Make address maps complain when entry bounds lie outside the global
      mask

-Midway V-Unit imrprovements: [Risugami]
 * Added layouts for Cruis'n USA, Cruis'n World, and Off Road Challenge
 * Added wheel force feedback reference and made notes on other outputs
 * Finished implementing the Galil command communication
 * Finished implementing motion controller

-Decrypted River Patrol (Japan), game now working. [MASH]

-Fixed PROMs in Dribbling (dumped a Dribbling PCB with different
 PROMs). [f205v, MASH]

-Added missing PAL dump to Green Beret (bootleg). [MASH]
  * Same PAL dump also in suprmriobl, drhl and ddragon6809a

-Added video proms to Turkey Shoot and Mystic Marathon. [MASH]

-Fixed arcade only build (cshooter.cpp changed to airraid.cpp). [MASH]

-Added proper SMT Flash dumps to deluxe4u. [system11]

-dynax.cpp: dumped color PROMs for Intergirl [f205v]

-arkanoid.cpp: Cleaned up comments; updated notes about which MCUs are
 used. [Lord Nightmare]

-Synchronise with PinMAME and add many new pinball sets [Osso]


New machines added or promoted from NOT_WORKING status
------------------------------------------------------
Alto-II [Juergen Buchmueller]
TeleNova Compis [Curt Coder]
Atari Portfolio [Curt Coder]
Victor 9000 [Curt Coder]
Wang Professional Computer [Curt Coder]
Vector 06c [MetalliC]
Intergirl [f205v]
Magical Butterfly (version U350C, protected) [AJR]
River Patrol (Japan) [MASH]
Techno Drive (Japan, TD/VER.B) [superctr]
Select-A-Game: Baseball 4 [hap, Kevin Horton]
Select-A-Game: Pinball [hap, Kevin Horton]


New clones added or promoted from NOT_WORKING status
----------------------------------------------------
Compis II [Curt Coder]
The NewZealand Story (US, old version) (older PCB)
  [CoolMod, The Dumping Union]
Metamorphic Force (ver AAA) [Abelardo Vidal]
Virtua Cop 3 (Rev B) [ShouTime, rtw]
Air Gallet (older) [Artemio Urbina]
Super Hang-On (Hang-On conversion, Japan, FD1094 317-0039)
  [Charles MacDonald, ShouTime]
Deluxe 4 U (ver. 0107, 07/01/2000) [caius]
Dealer's Choice (E4A1) [Brian Troha, The Dumping Union]
Terminator 2 - Judgment Day (rev LG1 11/04/91) [Bicycle Repairman]
OutRun 2 Special Tours (Japan) (Rev A) (GDX-0011A) [ShouTime, rtw]
Casino Five (3315-02, U5-2B) [Brian Troha, The Dumping Union]
Wangan Midnight Maximum Tune 2 (Japan) (Rev A) [ShouTime, rtw]
Jolly Card (Austrian, set 2) [Roberto Fresca, Team Europe]
Golden Tee '98 Tournament (v3.02) [Brian Troha, The Dumping Union]
Gals Panic S - Extra Edition (Europe, set 2)
  [Hammy, The Dumping Union]
Teenage Mutant Ninja Turtles (US 4 Players, version H) [The Iron Goat]
Gulf Storm (Korea) [system11]
Champion Base Ball (Japan set 3) [Siftware, MASH]
Escape from Mars (bootleg of Lunar Rescue) [Siftware, MASH]
New Zero Team (V33 SYSTEM TYPE_B hardware) [caius]


New machines marked as NOT_WORKING
----------------------------------
CMI IIx [Ryan Holtz]
Quest of D [f205v]
Mobile Suit Gundam 0079 Card Builder
  [any, f205v, ShouTime, soyandroid, rtw]
Mobile Suit Gundam 0079 Card Builder Ver.2.02
  [any, f205v, ShouTime, soyandroid, rtw]
Mobile Suit Gundam 0083 Card Builder [f205v, soyandroid]
Mobile Suit Gundam 0083 Card Builder Check Disk
  [any, f205v, ShouTime, rtw]
Mobile Suit Gundam 0083 Card Builder Ver.2.10
  [any, f205v, ShouTime, soyandroid, rtw]
Ring & Ball (?) [Hammy]
The Key Of Avalon 2.5 - War of the Key (server) (Rev B)
  [ShouTime, rtw]
The Key Of Avalon 2.5 - War of the Key (client) (Rev B)
  [ShouTime, rtw]
Tandy/Memorex Video Information System MD-2500 [Carl, Sly DC]
Select-A-Game: Space Invader 2 [hap, Kevin Horton]
Unknown Inter Games poker [Roberto Fresca, Team Europe]
Unknown Funworld A7-11 game 1 [Roberto Fresca, Team Europe]
Unknown Funworld A0-1 game [Roberto Fresca, Team Europe]
Multi Game I (unknown V2.4) [Roberto Fresca, Team Europe]


New clones marked as NOT_WORKING
--------------------------------
Jolly Joker (Apple Time) [Roberto Fresca, Team Europe]
Jungler (Subelectro, bootleg on Scramble hardware)
  [Andrew Welburn]
Unknown Funworld A7-11 game 2 [Roberto Fresca, Team Europe]
Wangan Midnight Maximum Tune (Japan) (Rev B) [ShouTime, rtw]


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


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


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

MAME 0.177 macOS

A new version of MAME is available and I have updated the macOS build. Get it from my MAME page here.

MAME for macOS

The whatsnew.txt is reprinted below.

0.177
-------


MAMETesters Bugs Fixed
----------------------
- 00550: [Graphics] (atarisy2.c) apb: There is a graphics problem with
  your police car at the point you drive away from your starting
  square. (crazyc)
- 01455: [DIP/Input] (segas18.c) lghost: Problem with crosshair (Pitou)
- 05584: [Gameplay] (konamigx.c) rungun2, slamdnk2: during run mame
  produces several messages about unknown protection command (Tafoid)
- 05823: [Core] (coco12.c) -ramsize does nothing for emulation although
  it does change the .ini file (Nathan Woods)
- 06185: [DIP/Input] LIGHTGUNS: Aimtrak Dual Lightguns no longer
  properly detect (Pitou)
- 06269: [Debugger] DEBUGGER: Unable to use any valid cheats while
  using debug (Ryan Holtz)
- 06292: [Crash/Freeze] (victor9k.c) victor9k [cpm86]: Freeze with
  'cpm86' disk (Curt Coder)
- 06314: [Crash/Freeze] Fatal error - All sets using '-centronics p72'
  slot/option (Ryan Holtz)
- 06315: [Crash/Freeze] Fatal error - All sets using c4023, c1526,
  mps802 devices (Ryan Holtz)
- 06316: [Crash/Freeze] (pc1512.c) pc1512, pc1512dd, pc1512hd10: Use of
  'ibm_mfc' slot option causes Fatal error (Ryan Holtz)
- 06317: [Crash/Freeze] (pc1512.c) pc1512, pc1512dd, pc1512hd10: Use of
  '3c503' slot option causes Fatal error (Ryan Holtz)
- 06326: [Crash/Freeze] (megadriv.c) megadriv, 32x and clones, some
  segac2.c sets: Selecting machine and game via softlist though
  internal menu results exception/crash (Osso)
- 06328: [Crash/Freeze] Various ISA using machines: Crash/Exception at
  Initialization (crazyc)
- 06330: [Crash/Freeze] (altos5.c) altos5: Crash/.Exception on
  start (crazyc)
- 06331: [Crash/Freeze] (apollo.c) dn3500_19i, dsp3000, dsp3500,
  dsp5500: Crash/Exception on start (Osso)
- 06332: [Graphics] (galaga.c) digdug and clones: Graphics from
  Tilemap 0 are missing (Osso)
- 06335: [Interface] UI:: Input (general) selection menus do not
  display correctly or at all (Vas Crabb)
- 06342: [Crash/Freeze] pc (pccga): System crashing while
  loading (crazyc)
- 06343: [DIP/Input] (taito_l.c) plottingu: Coinage dipswitches are
  labeled incorrectly. (Tafoid)
- 06349: [Gameplay] brapboys: MAME crashed when exiting
  game (O. Galibert)
- 06352: [Crash/Freeze] (cps1.c) mbombrd, mbombrdj: Crash in
  demonstration mode (Osso)


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

-maygay1b: [David Haywood]
 * Fixed second set of lamps
 * Partially investigated MCU hookup

-apple2gs.cpp: Redumped 341-0748 FE-FF ROM for the ROM03 Apple IIGS,
 confirming that 341-0748 and 341-0749 ROMs are identical.
 [Brian Troha]

-mpu4.cpp: Added all known expansions as fragments for DRIVER_INIT.
 This will permit 'per set' configuration to make the games
 playable. [James Wallace]

-naomi.cpp: Added all known Sega DIMM board firmware dumps. [TylerDurden67]

-amstrad.cpp: Added pause button to GX4000. [Barry Rodewald]

-debugimgui: Added images menu, with crude file select dialog, added
 very crude create image dialog. [Barry Rodewald]

-ALTOS5: Fixed banking, all disks can boot. [Robbbert]

-Renamed the arcade "sun" project to avoid conflict with the mess "sun"
 project [Robbbert]

-Playmatic Pinball: All MPU-1 games working, plus other WIP. [Robbbert]

-MK14: [Robbbert]
 * Fixed a memory bug.
 * Added paste facility, cassette, sound, and notes.

-Pro-80: Added devices. [Robbbert]

-Separated the LDP-1450 laserdisc player into its own device
 [James Wallace]

-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. [James Wallace]

-Dumped Ferrari F355 Japan BIOS. [ShouTime]

-Fixed TNZS ROM locations/labels [Brian A. Troha, Lord Nightmare]

-hiscore.dat: updates [Leezer]

-Various netlist fixes: [couriersud]
 * Minor include cleanup
 * Fixed a memory hole caused by assign operators
 * More C++
 * Use noexcept in netlist code where appropriate

-abc80x: Fixed ABC-838 disk image cell size. [Curt Coder]

-c64: Optimized the 1541 bit read/write function slightly without
 noticable effect on driver speed, since the 2 CIA's are the current
 bottlenecks. [Curt Coder]

-compis improvements: [Curt Coder]
 * Created a bus for the graphics card slot
 * Fixed keyboard
 * Promoted driver to working
 * Fixed RTC to use 24 hour mode

-victor9k improvements: [Curt Coder]
 * Set floppy RPM after track step
 * Implemented hires graphics
 * Implemented display brightness control
 * Fixed keyboard line Y12
 * Implemented SCP communications
 * Boots to CP/M and MS-DOS now - promoted driver to working

-pofo improvements: [Curt Coder]
 * Implemented the A: credit card memory
 * Fixed the RTC
 * Added memory card slot interface and ROM/RAM cards

-im6402: Reset receive/transmit registers after data frame is changed
 [Curt Coder]

-wangpc improvements: [Curt Coder]
 * Fixed interrupt handling - boots to DOS now
 * Fixed keyboard error on POST

-Fixed missing region report when DEVICE_SELF is used. [O. Galibert]

-dirom: device_rom_interface for sound chips with rom/memory map
 alternative [O. Galibert]
 * Make robust for oversize ROMs

-dirom,okim6295: Added/fixed banking support. [O. Galibert]

-Preliminary VGM player (vgmplay) [O. Galibert]

-kaneko_calc3: Stop trashing memory. [O. Galibert]

-Fairlight CMI IIx driver: [Ryan Holtz]
 * Modernization of Phil's CMI IIx driver
 * Hooked up serial callbacks, alphanumeric keyboard now works
 * Fixed FDC DMA, QDOS now boots
 * Fixed MSM5832 RTC hookup
 * Hook up second floppy

-vgmplay.cpp enhancement: [Ryan Holtz]
 * Added HuC6280, NES APU, Gameboy DMG, YM2203, YM3812, YM3526,
   AY-3-8910, Namco C352, Sega MultiPCM, Konami K053260, Atari POKEY
   and Oki M6295 support.
 * Added support for looping.
 * Added dual-chip support for AY-3-8910, YM2203, MultiPCM, and
    POKEY.

-tv990/995: Added save state support and LPT port. [R. Belmont]

-tv950: New redumps, fleshed out the skeleton, needs a CRTC expert to
 draw anything. [R. Belmont, Al Kossow]

-ti99 improvements: [Michael Zapf]
 * Fixed stuck INT line in TMS9902
 * Improved logging
 * Fixed missed CTS signal, outgoing RTS, incoming DTR
 * Fixed RS232 line mapping
 * Fixed debugger access to cartridge
 * Use proper RAM devices instead of ROM_REGIONS
 * Fix a problem with formatted disk images that do not match the
    expected file size
 * Fixed another issue with double stepping

-ti99_dsk: Fixed issue with deleted data marks in FM. [Michael Zapf]

-hdc92x4: Added 9224 emulation. [Michael Zapf]

-Added PC-AT mode (still untested), some preparations for 9224
 emulation. [Michael Zapf]

-floppy: Improved floppy sound emulation with new sound samples.
 [Michael Zapf]

-Funworld driver: Added technical notes to Inter Games poker.
 [Roberto Fresca]

-Jolly Card (Austrian, set 2):
 * Added specs [Roberto Fresca, Team Europe]
 * Added GAL16V8S dump [Team Europe, caius]

-Jolly Joker (Apple Time): Added technical notes. [Roberto Fresca]

-Amatic multigames: Corrected technical notes. [Roberto Fresca]

-alto2 improvements: [Juergen Buchmueller]:
 * Added speaker sound
 * Further cleanup and removed cruft
 * Get rid of the fake status display. Refactor mouse positioning code.
 * Removed extra screen buffer
 * Save copying odd/even frame scanlines by immediately updating bitmap
 * Fixed I/O memory read
 * Reduced frame rate (really 30 frames/60 fields per second)
 * Replaced decoded MIR bit fields
 * Removed member function pointers
 * Refactored videotiming, use attoseconds_t

-apricot improvements: [Dirk Best]
 * Moved expansion bus to its own directory
 * Created bus interface for the keyboard interface
 * Made HLE keyboard emulation a bus device
 * Use device_buffered_serial_interface and
    device_matrix_keyboard_interface for the HLE keyboard emulation to
    reduce duplication and implement a FIFO
 * Added rtc support to keyboard

-Keyboard/terminal improvements: [Vas Crabb]
 * Added base classes for HLE matrix keyboard and buffered RS232 device
 * Made generic keyboard/terminal more usable: configurable typematic
    delay/rate, selectable JIS/ANSI layout, handle simultaneous
    keypresses more intuitively, use meta to set high bit, configurable
    auto LF on CR, auto CR on LF and local echo, audible bell
 * Untangled Olivetti M20 keyboard from generic_keyboard, add notes, use
    physical layout
 * Untangled RM Nimbus keyboard from generic_keyboard aand fix -natural
 * Untangled x68k keyboard from generic_keyboard, improve key names,
    default mapping and typematic behaviour
 * Untangled QX-10 keyboard from generic_keyboard
 * Kept NGEN keyboard barely working

-Rewrote srcclean to be cool with UTF-8, C++14 and Lua. [Vas Crabb]

-Fixed UTF-16 encode, pass UTF-16 to Windows character drawing. [Vas Crabb]

-Made path_iterator copy search path to fix use-after-free [Vas Crabb]

-devfind improvements: [Vas Crabb]
 * Made object finders behave like pointers (not pointer/reference/
    vector) hybrids
 * Removed some default argument values and dangerous accessors
 * Use single uniform class for object array finders, using real arrays
    to avoid double indirection
 * Use a format string to allow more flexible tag names in object array
    finders
 * Use template using typedefs to greatly reduce bolerplate code
 * Consolidated template instantiations speeding up the build
 * Added Doxygen comments to many key classes

-Fixed cosmic.cpp and mpu4.cpp games that had too few tags passed to
 I/O port array finder [Vas Crabb]

-dooyong.cpp: Video improvements: [Vas Crabb]
 * Mix two 4bpp tilemaps for the 8bpp layer in popbingo
 * Made ROM tilemap generator into a device, moving a whole lot of stuff
    from video start to machine config and removing trampolines
 * Changed tile/sprite ROM regions to be 16-bit to better match hardware
 * Represent 16-bit text layer block on Z80 games as a device
 * Split up state classes some more and use derived machine configs

-Fixed regression: using IPT_START in sms makes mame think joypad 1 is
 occupied and inserts joypad 2&3 instead of joypad 1&2 [hap]

-dotrikun improvements: [hap]
 * Much better video timing, but still shows glitches in ccovell's ROM
 * eat_cycles clamps to 0, adjust_icount does do what I intended
 * Try another method for video timing

-gx4000: Don't use IPT_KEYBOARD for console pause button. [hap]

-al520ex: Use correct key name for tvordiy znak. [hap]

-hh_tms1k: Gamelist notes update. [hap]

-hh_hmcs40: Added sag internal artwork (external artwork still
 recommended). [hap]

-tlcs90: Fixed a nonsense check. [hap]

-chessmst: Added reset and halt buttons. [hap]

-champbasjb: Fixed MAME complaining about missing MCU device, correct
 romlabels. [hap]

-lghost: Allow gun offset correction to be disabled. [hap]

-tiamc1: Tilemap bit layers disable control. [MetalliC]

-i8080: Fixed status callbacks during stack and IO access [MetalliC]

-vector06: Improvements: [MetalliC]
  * RAM expansion emulated, MicroDOS and software works now
  * Fixed ROM cartridge address decoding, boots now
  * Changed to use KR1818VG93 FDC
  * Added "Sound Tracker" and "R-Sound" AY8910 sound
  * Added pit8253 sound
  * Fixed vblank interrupt generation

-cv1k.cpp: Found and corrected bad bits in Pink Sweets U2 graphics ROMs
 based on comparison 4 dumped versions. [MetalliC, rtw]

-aica: Added ADPCM diff value clamp based on encoder research.
 [kode54, MetalliC]

-hp9845: Added correct character generator ROMs. [fulivi, A.Kueckes]

-Use emumem.h defines whenever possible. [Giuseppe Gorgoglione]

-gba: Reworked and simplified code. [Giuseppe Gorgoglione]

-gba: First batch of code refactorings: [Giuseppe Gorgoglione]
  * Attempt at modernizing the code by taking advantage of C++ features

-Made hiscore path configurable by ini file, fix .hi file path
 resolution. [stengun]

-Fixed Gun#2 not working in MAME #618 [Pitou]

-Fixed read case in kaneko_calc3.cpp and made kaneko_toybox.cpp safe as
 well. [David Haywood]

-Various Seibu Refactoring: [David Haywood]
  * Air Raid, Street Fight and Dark Mist all use very similar video
     systems;this takes some steps towards allowing a common
     implementation
  * Street Fight and Cross Shooter use a common mmainboard wiht
     different Video Boards; makes video boards into devices to
     faciliate this

-Put DM01 matrix board CPU inside device for BFM Sc2/4. [David Haywood]

-Maygay M1A, MCU bones, commuication not hooked up yet. [David Haywood]

-Fixed many MPU4 set descriptions: [David Haywood]
 * Identify and mark hacks
 * Associate sets with correct games
 * Treat Casino Bar-gain and Bar-gain as different games

-Treat Sc2 DMD as screen, avoid tag lookups, add correct DMD ROM to some
 sets [David Haywood]

-Maygay M1A/B partial fix for lamp mapping: [John Parker]
  * Fix the lamp mapping for the first half of the matrix
  * Fix typo and add comment to function that is intended to handle the
     second half of the matrix

-Added layouts to Maygay driver: [John Parker]
 * These are generated, and will be updated as I MFME2MAME converter is
    improved, reels are transcribed, etc.
 * m1albsqp, m1apollo2, m1bargnc, m1bghou, m1bigdel, m1calypsa,
    m1casclb, m1casroy1, m1chain, m1cik51o, m1clbfvr, m1cluecb1,
    m1cluedo4, m1cluessf, m1coro21n, m1dkong91n, m1dxmono51o,
    m1eastndl, m1eastqv3, m1fantfbb, m1fightb , m1frexplc, m1gladg,
    m1grescb, m1hotpoth, m1htclb, m1imclb, m1infern, m1inwinc,
    m1itjobc, m1itskob, m1jpmult, m1lucknon, m1luxorb, m1manhat,
    m1monclb, m1mongam, m1monmon, m1monou, m1nhp, m1nudbnke, m1omega,
    m1onbusa, m1przeeb, m1retpp, m1search, m1sptlgtc, m1startr,
    m1taknot, m1thatlfc, m1topstr, m1triviax, m1trtr, m1ttcash,
    m1wldzner, m1wotwa

-Added new Scorpion 1 layouts: [John Parker]
  * sc1barcd, sc1bartk, sc1cl65, sc1clbtma, sc1cwcl, sc1dblch, sc1pwrl,
     sc1sirb, sc1spct, sc1str4

-Scorpion 2: Added 12 internal layouts: [John Parker]
  * sc2ptytm1, sc2cpe, sc2casr2, sc2majes, sc2eggs1, sc2prom, sc2cpg,
     sc2copcl7, sc2town2, sc2suprz1, sc2heypr, sc2prem2

-Scorpion 4: Added 35x Layouts. [John Parker]

-Scorpion 4: Added 73 Layouts. [John Parker]
  * sc4jack, sc4kalei, sc4knokb, sc4lirb, sc4lined, sc4lockb, sc4lkbcl,
     sc4mmmg, sc4mgr, sc4mtbb, sc4mtbclb, sc4monoba, sc4mondxe,
     sc4mr2rc, sc4motor, sc4mou, sc4nmtj, sc4nudita, sc4pacqpa,
     sc4paccl, sc4pstata, sc4pgold, sc4po8, sc4ppclb, sc4pipe, sc4plumb,
     sc4polic, sc4pony, sc4potsha, sc4pwrbq, sc4pwrsg, sc4pen1c,
     sc4qmodo, sc4quidrb, sc4rhxcsa, sc4rhxcl, sc4redsq, sc4rotc,
     sc4revod, sc4richl, sc4rttt, sc4roksc, sc4rogds, sc4rmo, sc4rtc,
     sc4srrca, sc4smk7, sc4slci, sc4solgl, sc4slihd, sc4sparkd,
     sc4sbust, sc4starpk, sc4strk, sc4sahed, sc4susk, sc4suscl, sc4s6cd,
     sc4taekw, sc4takcl, sc4tempt, sc4lions, sc4tic2, sc4tbana,
     sc4tload, sc4tpshta, sc4trail, sc4ttomb, sc4tridn, sc4tfclb,
     sc4vrgclb, sc4wldjkc, sc4xmarka

-JPM IMPACT: Added 58 layouts. [John Parker]
  * j6aceclb, j6acehi, j6amdrm, j6arcadee, j6big50, j6bigbukc,
     j6bigtopa, j6bnkrcl, j6bnza, j6btbwd, j6camelt, j6casclaf,
     j6cascze, j6colcsh, j6cpal, j6crack, j6drdogh, j6euphor, j6ewn,
     j6fastfr, j6ffce, j6frtpot, j6gidogh, j6gldclb, j6gogold,
     j6goldgla, j6guabc, j6guabcl, j6hapyhrb, j6impulsc, j6indyi, j6kfc,
     j6kungfud, j6megbck, j6mono60, j6monst, j6montlkb, j6oxobin,
     j6quick, j6ra, j6redarwf, j6reelmn, j6rh6cld, j6rhchil, j6rico,
     j6rollerd, j6slagng, j6snakes, j6stards, j6swpdrp, j6tombc,
     j6topflg, j6twst, j6untch, j6vindal, j6vivark, j6wizardd, j6wldkng

-MPU3: Added 39 layouts. [John Parker]
  * m3acech, m3autort, m3biggam, m3bigsht, m3blkhle, m3cabreta, m3chase,
     m3circle, m3cskill, m3cunlim, m3fortun, m3gcrown, m3gmine,
     m3lineup, m3loony, m3nnice, m3oddson, m3online, m3oxo, m3ratrce,
     m3razdaza, m3replay, m3rockpl, m3rollem, m3rxchng, m3sexcu,
     m3slight, m3snaphp, m3spoof, m3supadr, m3supnud, m3supspo,
     m3supwin, m3sweep, m3tfair, m3toplin, m3winagnb, m3winstr, m3xchngg

-Scorpion 4: Mostly fixed 7-segment displays. [John Parker]

-Maygay: Fixed input strobe order bug [John Parker]

-Updated regenerated Maygay layouts; all now initialise OK.
  [John Parker]
  * Updated due to Converter bugfixes.

-Maygay: Added/updated layouts: [John Parker]
  * Layouts have the 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

-JPM MPS: Added 89 Layouts: [John Parker]
  * j2adnote, j2always, j2bankch, j2bigbnk, j2bigbox, j2blustr,
     j2cashbn, j2cashrl, j2cashro, j2cashrv, j2cashtk, j2coinsh,
     j2coppot, j2cprndx, j2criscr, j2crown, j2cshalm, j2cshcrd,
     j2cshfil, j2cshnud, j2cshsmh, j2cvault, j2droplt, j2ewn, j2ews,
     j2exec, j2fasttk, j2fiveal, j2fiveln, j2fqueen, j2frucnx,
     j2fullhs, j2fws, j2ghostb, j2gldchy, j2goldbr, j2hilocl, j2hinote,
     j2hiroll, j2hitmon, j2hotpot, j2hotsht, j2hypnot, j2jackbr,
     j2kingcl, j2litean, j2litnot, j2lovshd, j2lovsht, j2luckar,
     j2lucky2, j2maxima, j2missis, j2monblt, j2mongam, j2montrp,
     j2nolimt, j2notesh, j2nudbnz, j2nudfev, j2nudmon, j2nudshf,
     j2paypkt, j2penny, j2plsmnd, j2plsnud, j2pndrsh, j2rdclb,
     j2reelbn, j2reelbo, j2reelcz, j2reelmc, j2reelmo, j2silvcl,
     j2silvsh, j2sldgld, j2slvrgh, j2spcrsv, j2sstrea, j2stahed,
     j2supfrc, j2suprsh, j2supsft, j2supstp, j2suptrk, j2swbank,
     j2take2, j2trail, j2tstplt

-JPM SYSTEM5: Added 21 layouts: [John Parker]
  * j5ar80cla, j5cira, j5fairp, j5firebl, j5hollyc, j5hotdoga,
     j5indsum, j5intr, j5movie, j5nite, j5palma, j5popeye, j5sizl,
     j5supbara, j5suphi, j5swop, j5term, j5topshp, j5trail, j5ujb,
     j5wsc

-BFM DMD: Adjusted to more accurately match the colour of the real
 machines [John Parker]

-Techno Drive improvements [superctr]
  * Fix H8 ADC inputs
  * Sub CPU seems to expect certain H8 SCI behavior, otherwise it locks
     up after a few minutes making controls unresponsive.
  * Bypassed 'COIN ERROR' at bootup by patching the sub CPU program
  * Swapped 'th1fl3l.12' and 'th1fl3u.13' and placed them at proper
     memory location (0x1800000) so game no longer crashes at Namco logo

-namconb1: fix sound timing for some games [superctr]
  * fixes the sound tempo in nebulray, gslugrsj, gslgr94u and clones,
     and vshoot.

-Byteswapped timecris sample ROM, remove MACHINE_IMPERFECT_SOUND flags
 for C352 games. [superctr]

-Namco C352 improvements: [superctr]
  * Replaced C352 core with new one used in VGMPlay (fixes noise
     generation and sample interpolation)
  * Change clock frequencies for sub CPU and sound chip for
     System 12/23 drivers based on my research on the sound drivers,
     including a comparison between the ND-1 and System 12 drivers
  * Removed rear channels for systems that lack a second Sanyo
     LC78815M stereo DAC

-kim1: RS & ST keys, input ports update: [Dagarman]
  * Hooked up the ST key and updated RS key function
  * Updated INPUT_PORTS to add numpad keys and better support pasting
  * Moved type definitions to kim1.h
  * Simplified kim1.lay coordinates

-Documented 3 diagnostic menu bugs in the Vii's BIOS.
 [PressStartandSelect]

-Fixed action on debugger 'trace'/'traceover' commands: [Nathan Woods]
  * 'trace'/'traceover' commands were registered as having three
     arguments, this fixes it so there are four arguments

-Fixed some MC6847 low resolution video modes: [Nathan Woods]
  * Fixed a bug from where video data was sampled that could cause too
     many samples to be loaded in low resolution video modes
  * On the CoCo, this fixes some low resolution video modes used by
     Project Nebula and some other games

-CoCo 1/2: Fixed configurable RAM sizes: [Nathan Woods]
  * Changes the 6883 SAM implementation to assume memory bank lengths
     smaller than available space are not mirrored

-Made rom_entry a class that keeps copies of strings: [Nathan Woods]
  * Also introduce a POD tiny_rom_entry for static ROM definitions
  * C++-fiied code that iterates over rom_entry arrays

-diimage refactoring: [Nathan Woods]
  * Changed device_image_interface::load() so that it doesn't load both
     images and softlist items
  * Remove vestigial has_been_created() API
  * Consolidated error code translation
  * Use std::string rather than C strings in more cases
  * Better encapsulation of format list
  * Better encapsulation of filename extension extraction

-software list refactoring: [Nathan Woods]
  * Separation of software list data structure from runtime device
  * Use std::string rather than C strings in many cases
  * Standardized terminology for various concepts

-Converted many NUL-terminated strings to std::string: [Nathan Woods]
  * Parameters to zippath and emufile
  * menu_software_list::m_filename_buffer

-Check return value of CassetteLegacyWaveFiller.chunk_sample_calc()
 (this is just better error checking). [Nathan Woods]

-Changed device_image_interface::determine_open_plan() to not create an
 image unless device_image_interface::create() is used.  This fixes odd
 behavior where zero byte images could be created. [Nathan Woods]

-Report Win32 ERROR_INVALID_NAME as osd_file::error::NOT_FOUND
 [Nathan Woods]

-Fixed menu lag. [dankan1890]

-Use required_ioport_array for multiple keyboards. [shattered]

-ec1841: Adapted to new memory system. [shattered]

-mc1502: Made serial test in BIOS work. [shattered]

-poisk1, mc1502: Minor fixes. [shattered]

-vt240: Fixed host comms when flow control is enabled. [shattered]

-dvk_ksm: Fixed host comms, added PORT_CHARs to its keyboard.
 [shattered]

-dvk_ksm: Dropped dvk_ksm01 variant and merged ROM sets; enabled tx to
 its keyboard. [shattered]

-ms7004: Enabled serial rx and add PORT_CHARs. [shattered]

-keyboard: Added F16..F20 keys (present on DEC terminals). [shattered]

-isa_hdc: Implemented READSBUFF command (used by ec1841 diagnostics).
 [shattered]

-Remapped "P1 Mahjong Score" to / key for OS X. [AJR]

-New core input type: "Memory Reset": [AJR]
  * Resets settings/bookkeeping to system-provided default
  * The default key binding F1

-Designated more memory reset inputs in mahjong games. [AJR]

-dynax.cpp: Regularized service inputs. [AJR]

-Attempted to fix distortion with -refreshspeed and -audio xaudio2.
 [Calamity]

-New stretching options (as suggested by Jezze): [Calamity]
  * New option -unevenstretchy (complementary to -unevenstretchx)
  * New option -autostretchxy, to automatically apply -unevenstretchx
     or -unevenstretchy based on source native orientation.

-Warp mode for relative mouse on OSX SDL 2.0.4 (fixes Github issue
 #1232). [bradhugh]

-sengokmj: Inputs refined based on examination of program code: [AJR]
  *  All service inputs are momentary switches, not DIP toggles
  *  Added unused SW2 DIPs as displayed in service mode
  *  Added a couple of obscure inputs not shown in service mode

-pwrkick, othldrby: Various improvements: [AJR]
  * 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 reconfigured coin inputs in Power Kick, 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)

-skylncr.cpp: Improvements to almost all games: [AJR]
  * Use standard input mappings in all games except Sonik Fighter
  * Added working hopper outputs and payout buttons
  * Promoted mbutrfly to WORKING after solving the protection (the code
     wasn't encrypted) and add the button lamps internally associated
     with it
  * Decrypted bdream97, which is almost working now with obvious
     graphical glitches and some apparent input problems

-kurukuru, ppj: Input/output improvements: [AJR]
  * Ticket dispenser now works
  * Corrected "Payout Mode" DIP settings
  * Corrected DSW1 settings in Pyon Pyon Jump
  * Renamed coin inputs and coin-related DIP switches and order by
      increasing denomination
  * Removed "Unknown" inputs that aren't actually used
  * Full character names only for Kuru Kuru Pyon Pyon
  * Reset button now mapped as "Memory Reset"
  * Random notes based on program code

-Show color values in palette viewer: [AJR]
  * Move the mouse over a color rectangle to show index and RGB values
  * For indirect pens, index of the corresponding color is also shown
  * For colors in normal RAM-based palettes, the raw value in memory is
     also shown (does not currently work with most buffered palettes,
     and is incompatible with PROM-based or RAMDAC-based palettes)

-Validity checking improvements: [AJR]
  * Always print the name of each driver with -validate -verbose before
     check to help detect crashes
  * Softlists get validated the first time, not every time but the
     first
  * Make address maps complain when entry bounds lie outside the global
      mask

-Midway V-Unit imrprovements: [Risugami]
 * Added layouts for Cruis'n USA, Cruis'n World, and Off Road Challenge
 * Added wheel force feedback reference and made notes on other outputs
 * Finished implementing the Galil command communication
 * Finished implementing motion controller

-Decrypted River Patrol (Japan), game now working. [MASH]

-Fixed PROMs in Dribbling (dumped a Dribbling PCB with different
 PROMs). [f205v, MASH]

-Added missing PAL dump to Green Beret (bootleg). [MASH]
  * Same PAL dump also in suprmriobl, drhl and ddragon6809a

-Added video proms to Turkey Shoot and Mystic Marathon. [MASH]

-Fixed arcade only build (cshooter.cpp changed to airraid.cpp). [MASH]

-Added proper SMT Flash dumps to deluxe4u. [system11]

-dynax.cpp: dumped color PROMs for Intergirl [f205v]

-arkanoid.cpp: Cleaned up comments; updated notes about which MCUs are
 used. [Lord Nightmare]

-Synchronise with PinMAME and add many new pinball sets [Osso]


New machines added or promoted from NOT_WORKING status
------------------------------------------------------
Alto-II [Juergen Buchmueller]
TeleNova Compis [Curt Coder]
Atari Portfolio [Curt Coder]
Victor 9000 [Curt Coder]
Wang Professional Computer [Curt Coder]
Vector 06c [MetalliC]
Intergirl [f205v]
Magical Butterfly (version U350C, protected) [AJR]
River Patrol (Japan) [MASH]
Techno Drive (Japan, TD/VER.B) [superctr]
Select-A-Game: Baseball 4 [hap, Kevin Horton]
Select-A-Game: Pinball [hap, Kevin Horton]


New clones added or promoted from NOT_WORKING status
----------------------------------------------------
Compis II [Curt Coder]
The NewZealand Story (US, old version) (older PCB)
  [CoolMod, The Dumping Union]
Metamorphic Force (ver AAA) [Abelardo Vidal]
Virtua Cop 3 (Rev B) [ShouTime, rtw]
Air Gallet (older) [Artemio Urbina]
Super Hang-On (Hang-On conversion, Japan, FD1094 317-0039)
  [Charles MacDonald, ShouTime]
Deluxe 4 U (ver. 0107, 07/01/2000) [caius]
Dealer's Choice (E4A1) [Brian Troha, The Dumping Union]
Terminator 2 - Judgment Day (rev LG1 11/04/91) [Bicycle Repairman]
OutRun 2 Special Tours (Japan) (Rev A) (GDX-0011A) [ShouTime, rtw]
Casino Five (3315-02, U5-2B) [Brian Troha, The Dumping Union]
Wangan Midnight Maximum Tune 2 (Japan) (Rev A) [ShouTime, rtw]
Jolly Card (Austrian, set 2) [Roberto Fresca, Team Europe]
Golden Tee '98 Tournament (v3.02) [Brian Troha, The Dumping Union]
Gals Panic S - Extra Edition (Europe, set 2)
  [Hammy, The Dumping Union]
Teenage Mutant Ninja Turtles (US 4 Players, version H) [The Iron Goat]
Gulf Storm (Korea) [system11]
Champion Base Ball (Japan set 3) [Siftware, MASH]
Escape from Mars (bootleg of Lunar Rescue) [Siftware, MASH]
New Zero Team (V33 SYSTEM TYPE_B hardware) [caius]


New machines marked as NOT_WORKING
----------------------------------
CMI IIx [Ryan Holtz]
Quest of D [f205v]
Mobile Suit Gundam 0079 Card Builder
  [any, f205v, ShouTime, soyandroid, rtw]
Mobile Suit Gundam 0079 Card Builder Ver.2.02
  [any, f205v, ShouTime, soyandroid, rtw]
Mobile Suit Gundam 0083 Card Builder [f205v, soyandroid]
Mobile Suit Gundam 0083 Card Builder Check Disk
  [any, f205v, ShouTime, rtw]
Mobile Suit Gundam 0083 Card Builder Ver.2.10
  [any, f205v, ShouTime, soyandroid, rtw]
Ring & Ball (?) [Hammy]
The Key Of Avalon 2.5 - War of the Key (server) (Rev B)
  [ShouTime, rtw]
The Key Of Avalon 2.5 - War of the Key (client) (Rev B)
  [ShouTime, rtw]
Tandy/Memorex Video Information System MD-2500 [Carl, Sly DC]
Select-A-Game: Space Invader 2 [hap, Kevin Horton]
Unknown Inter Games poker [Roberto Fresca, Team Europe]
Unknown Funworld A7-11 game 1 [Roberto Fresca, Team Europe]
Unknown Funworld A0-1 game [Roberto Fresca, Team Europe]
Multi Game I (unknown V2.4) [Roberto Fresca, Team Europe]


New clones marked as NOT_WORKING
--------------------------------
Jolly Joker (Apple Time) [Roberto Fresca, Team Europe]
Jungler (Subelectro, bootleg on Scramble hardware)
  [Andrew Welburn]
Unknown Funworld A7-11 game 2 [Roberto Fresca, Team Europe]
Wangan Midnight Maximum Tune (Japan) (Rev B) [ShouTime, rtw]


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


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


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

[ARTICLE] MAME Benchmarks on Raspberry Pi 1/2/3

I’ve run benchmarks on a set of 150 games in MAME. I tried to pick a fair sampling of the classics and the more modern games, I even included a couple of obviously impossible ones. I do seem to have ended up with far too many CPS2 games though!

The benchmarks have been run on the Raspberry Pi Model B, The Raspberry Pi 2 and the Raspberry Pi 3. I ran them Normally and Overclocked.

Check out the results here.

Benchmarks for MAME on Raspberry Pi

MAME 0.176 for Raspberry Pi and macOS

MAME 0.176 is out, the changelog is reprinted below, you can get the Raspberry Pi and Apple macOS versions from HERE

MAMETesters Bugs Fixed
----------------------
- 06288: [Interface] UI:: Selecting "Category" after listing "Favorites" 
 causes exception (Vas Crabb)
- 06291: [Interface] (carpolo.c) carpolo: Unable to view recorded video made 
 with -video bgfx/-window (Jezze)
- 06286: [Misc.] (segaorun.c) shangon: Captured AVI video from this game shows 
 only sound, no image (Angelo Salese)
- 06263: [Interface] UI: Choosing any filter which has no data makes the UI 
 unrecoverable (Maurizio Petrarota)
- 06280: [Interface] PLUGINS: The plugin.ini file is created in the current folder 
 when it should be created in the "ini" path. (crazyc)
- 06279: [Interface] PLUGINS: pluginspath does not resolve $HOME (crazyc)
- 06285: [Gameplay] (vendetta.c) esckids, esckidsj: Slowdowns in gameplay (Osso)
- 06284: [Interface] Watchdog dialog is not able to be captured (cuavas)
- 06246: [Graphics] (legionna.c) cupsocsb, cupsocsb2: Black screen (Angelo Salese)
- 06268: [Crash/Freeze] MAME can crash when switching languages (Vas Crabb)
- 06266: [DIP/Input] (seta.c) metafox: Bonus_Life DIPSETTING values and labels are incorrect (Tafoid)
- 06262: [Crash/Freeze] All sets using SHARC drc: Crash when running DRC (Linux only?) (Ville Linde)
- 06305: [Crash/Freeze] (atpci.c) at586, at586x3, ficvt503: Use of -kbd slot options 
 3270pc or pcat causes crash (crazyc)
- 06304: [Crash/Freeze] (mac.c) macse30: Crash when attempting to use any slot option for -pds030 (Osso)
- 06309: [Crash/Freeze] (mac.c) macsefd: Crash on Exit using -pds slot (Osso)
- 05534: [Crash/Freeze] (pc8001.c) All sets in pc8001.c: Crash after OK (Robbbert)
- 06324: [Crash/Freeze] (funkball.c) funkball: Fatal Error at Start (Osso)
- 06323: [Debugger] (psikyosh.c) gunbird2, s1945iii: Crash when attempting to use -cheat (AJR)
- 06313: [Crash/Freeze] (victor9k.c) Crash when using -fdc:5d:0 and -fdc:5d:1 slot with '525ssqd' option (Pernod)
- 06312: [Crash/Freeze] (osborne1.c) Crash when using -mb8877:0 and -mb8877:1 slot with '525sssd' option (Pernod)
- 06311: [Crash/Freeze] (myb3k.c) Crash when using -fdc:0 and -fdc:1 slot with '525sssd' option (Pernod)
- 06281: [Crash/Freeze] astrocde [280zzap]: 280Zzzap/Dodgem Cartridge Resets (Duke)

Source Changes
--------------
-Scorpion4 7segment displays mostly fixed [John Parker]

-Fixed coinage in Touchmaster 2000-8000 [MASH]

-z80scc: fix dropped character problem for sun4_75, and fix edge cases
 where datasheet recommendations are ignored allowing sun3/sun4 to
 recognise keyboard and hk68v10 to work with correct SCC clock
 [Joakim Larsson Edstrom]

-pc9801: fixed mouse buttons [rzero9]

-coco3 improvements: [milliluk]
 * improve palettes and support alternate composite mode
 * GIME fix for scanlines in legacy graphic modes

-m6809: Improve debugging support for 6809/6309 cpus [milliluk]

-GNU/kFreeBSD support [stevenc99]

-Add arch defines for Linux alpha and mips64el. [Jordi Mallach]

-Take pkg-config path from env if defined [Bernhard Frauendienst]

-Name Neo-Geo AES, NeoGeo CD and FM Towns Marty buttons [Shideravan]

-Updated *nix man pages. [Cesare Falco]

-poisk1: unbreak after "Memory fun", add B623 sound card (skeleton) [shattered]

-r9751: Add save state support, document progress and clean up, add PROM
 version 4.2 [Brandon Munger]

-ym2151, ym2413: Isolate, objectify, integrate [O. Galibert]

-add Net-DIMM 3.03 firmware [letoram, gamerfan, Mark F., Smitdogg, The Dumping Union]

-Netlist improvements: [Couriersud]
 * 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
 * Fix dynamic timestepping. This will work with breakout using real
 capacitor modelling instead of delay devices. Really slow, but
 very useful to calibrate timings.
 * Fix an awful bug in timing for delay devices.
 * Switched to clang 3.8 and made code compile with aggressive warnings.
 This exposed serious issues with implicit constructors.
 * 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 unordered map in parser.
 * 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.

-Forte Card: Switched the ver 110 (spanish) to parent set since it's a
 newer version. Also cleaned up the driver. [Roberto Fresca]

-Render module improvements: [Giuseppe Gorgoglione]
 * Direct3D HLSL: use aviwrite to record AVI movies
 * Cleanup patches for Direct3D renderer
 * BGFX: fix crash when bgfx effect folder is not present

-Fixed priority issues in Legionnaire, Heated Barrel, Denjin Makai and
 Godzilla [Angelo Salese]

-opwolf.cpp: fix all the gameplay problems by improving the c-chip
 protection simulation [Bryan McPhail]

-Miscellaneous modernisation: [Nathan Woods]
 * File create and format refactoring, better name/path validation
 (with POSIX implementation from Vas Crabb)
 * Use string objects in in core_file static functions, menu items,
 strconv functions, image device extensions and softlist classes
 * Consolide default implementation of create_option_guide()
 * Filesel cleanup
 * Migrate softlist code from simple_list to std::list

-Added crt-geom and crt-geom-deluxe shaders for bgfx including several
 aperture grille/shadow mask patterns (designed for RGB subpixel order)
 [Jeremy Green]

-Added option hide ROMless machines from the availables list.
 [Maurizio Petrarota]

-sun4 updates:
 * Added SPARCStation 1+, 4/110, and 4/4x0 ROMs [Al Kossow]
 * SPARC CPU core fixes [Ryan Holtz, Vas Crabb]
 * Preliminary counter/timer support [R. Belmont]
 * Separated sun4 and sun4c, started implementing unique original sun4
 features. [R. Belmont]
 * Support both 8 and 16 context variants of sun4c arch [R. Belmont]
 * Improved original sun4 architecture support [R. Belmont]
 * Initial FDC hookup [Ryan Holtz]
 * Improved timers, logging - sun4_40 runs FORTH programs at ok
 prompt [Ryan Holtz]

-Add high-level emulation of Sun type 3/4/5/6 keyboards [Vas Crabb]
 * U.S.A, Great Britain, Sweden and Japan layouts for Type 5
 * Layout selection settings for Type 4 and Type 5
 * Identification selection for type 4
 * Adaptor for connecting to RS-232 port representing level translator
 * Hook up to sun3, sun4 and sun4c

-zeroteam: improve sprite/sprite priorities [AJR]

-feversoc.cpp: Hook up EEPROM; remap buttons, hook up lamps and serial RTC [AJR]

-denjinmk: hack sound comms to work without ROM patch [AJR]

-vt100.cpp: Add the older vt102/vt131 romset to the vt131 driver as
 another bios set [Lord Nightmare, Al Kossow]

-Corrected many Mahjong dip switches and settings [system11]
 * Fixes for: Mahjong Focus, Nozokimeguri Mahjong Peep Show,
 Mahjong Fantasic Love & Ojousan
 * Various Video System Mahjong dip switches

-Final enhancements to HP TACO driver [fulivi]

-Further IRQ passthrough cleanup [AJR]
 * Remove irq_line methods from M6502, M6800, M6809, S2600 and replace
 uses with DEVCB_INPUTLINE
 * Remove a few IRQ passthroughs from spiders.cpp
 * Add several aliases for M6800_IRQ_LINE

-Increase uismall.bdf coverage: [Vas Crabb]
 * Complete coverage of Latin Extended-A, most of Latin Extended-B
 * Monotonic Greek
 * Full ISO-8859-5 Cyrillic, many other Cyrillic characters
 * Half-width katakana
 * Some IPA Extensions

-UI refactoring: [Vas Crabb]
 * Move most main launch menu stuff out of the base menu class
 * Move some common code from selgame and selsoft into selmenu
 * Eliminate the troublesome static members in ui::menu
 * Eliminate some function statics
 * Move palette menu drawing code out of base into palette menu class
 * Use std::bind, references where nullptr is unacceptable, and const
 where appropriate
 * Improve encapsulation of class members
 * Reduce repeated string allocation in audit code
 * Don't play so fast and loose with integer types
 * Eliminate some expensive deep copies of vectors/maps
 * .h -> .ipp for things that aren't really headers
 * Remove members that have lifecycle associated with operation

-DPS1: system boots up, working [Robbbert]

-bankdev: pass through the debugger flag from the incoming space
 argument [R. Belmont]

-Apollo changes: [Hans Ostermeyer]
 * Keyboard mapping adjusted to fit current MAME
 * Fixed screen raw parameters
 * Fixed disp.dex Test 20 (Video SYNC Gen. Add. Test) for color
 displays

-3c505: The Ethernet frame check sequence is now appended to transmit
 data [Hans Ostermeyer]

-input_common: fixed 0.172 regression for non-US keyboards
 [Hans Ostermeyer]

-fix item hilighting in debugger state view when scrolling [Vas Crabb]

-Introduce validity checks for RGB utilities and fix bugs uncovered [Vas Crabb]
 * Fix rgbvmx on Linux ppc64 and ppc64le targets with GCC 5
 * 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 type 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

-null_modem: rtscts flow control + relevant fix to i8251 [shattered]

-Updated driver with new information related to ID and gamelist for
 tourvis.cpp [system11, Tafoid]

-Fix archimedes disk format [O. Galibert]

-apple2: don't allow debugger to trigger slot switching [Peter Ferrie]

-tiamc1: Kot-Rybolov implemented sound, documentation updates [MetalliC]

-Tia-MC1 driver: Added support for KR580VV55A parallel peripheral
 interface (clone of i8255), added technical notes about some odd
 behaviour with some ports, listed the specs of Kot-Rybolov hardware,
 and added all clocks via #define. [Roberto Fresca]

-amstrad: fix undocumented mode 3. [Barry Rodewald]

-bbc: added monitor configuration (Colour, B&W, Green, Amber) and
 preliminary slots for expansion [Nigel Barnes]

-Flaming 7's, original custom hardware improvement: [Roberto Fresca]
 * Reverse-engineer protection to bypass the requested serial number.
 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.

-Flaming 7's, Taiwanese hardware: Reverse-engineer protection to bypass
 the requested serial number. The iButton device still needs to be
 hooked. Promoted the game to working with its correspondent flags.
 Added technical notes. [Roberto Fresca]

-hiscore.dat: Updates [Leezer]

-alto2: Hunting the jiggly cursor bug [Juergen Buchmueller]

-chihiro: added 837-13551 jvs input device, completed the communication
 with jvs devices through usb [Samuele Zannoli]

-chihiro: game crtaxihr "Crazy Taxi High Roller (Rev B)" boots too [Samuele Zannoli]

Translations added or modified
------------------------------
Chinese (simplified/traditional) [YuiFAN]
Greek [BraiNKilleRGR]
Japanese [Vas Crabb]
Portuguese (Brazil) [Ashura-X]

New machines added or promoted from NOT_WORKING status
------------------------------------------------------
Swing Gal [BET] [system11]
Player's Choice (M4C1) [Blair Quinney, The Dumping Union]
Gorodki [shiru8bit, IgorR76, '15kop' arcade museum]
Kot Rybolov [MetalliC, shiru8bit, IgorR76, '15kop' arcade museum]
Flaming 7 (Custom Hardware, Main, 50 Bonus) [Roberto Fresca]
Flaming 7 (Custom Hardware, Main, 500 Bonus) [Roberto Fresca]
Flaming 7 (Custom Hardware, Main, 2000 Bonus) [Roberto Fresca]
Flaming 7 (Custom Hardware, Egyptian Gold, 2000 Bonus) [Roberto Fresca]
Flaming 7 (Taiwanese Hardware, unknown version) [Roberto Fresca]
TeleVideo 990 [R. Belmont, Al Kossow, Carl]
TeleVideo 995-65 [R. Belmont, Al Kossow, Carl]
Rainbow-100B [Bavarese]
MBC200 [Robbbert]

New clones added or promoted from NOT_WORKING status
----------------------------------------------------
Beastie Feastie (Epos Tristar 9000 hardware) [The Iron Goat]
Raiden Fighters 2 - Operation Hell Dive (Japan set 3) [IronGiant]
LTM Portable (B+) [Nigel Barnes]
LTM Portable (Master) [Nigel Barnes]
Bubble Trouble (World, Rev B) [Alex Cmaylo, The Dumping Union]
Sensory Chess Challenger 9 (set 2) [anonymous]
Operation Thunderbolt (World, rev 1) [Muddymusic, The Dumping Union]
Digital Equipment Corporation VT240 [Carl]
Elektronika MC7105 [Shattered]
Intergirl [f205v]

New machines marked as NOT_WORKING
----------------------------------
Tomy Prin-C [TeamEurope]
Datamax 8000 [Robbbert]


New clones marked as NOT_WORKING
--------------------------------
BT Merlin M2105 [Nigel Barnes]


New WORKING software list additions
-----------------------------------
pc98_cd.xml: Final batch of additions [rzero9]
pce_tourvision.xml: Added a number of new dumps (15) [system11, Tafoid]
poisk1_flop.xml: Added basic softlist [shattered]

New NOT_WORKING software list additions
---------------------------------------
gamate.xml: Volcano Panic [Juan Felix Mateos and Mr. Postman]
gamate.xml: Hot Hero; Baseball [Peter Wilhelmsen]
gba_ereader.xml: Starting work doing the GBA e-reader software-list [Shideravan]

MAME 0.175 for macOS & Raspberry Pi

MAME 0.175 is out. I’ve updated the macOS build. The Pi3 build is compiling now. There were a few patches that didn’t quite make it to the release that kept the linux version from compiling correctly, these needed applying before I could build.

EDIT: The Raspberry Pi3 version is now updated to 0.175 too. Compiling with processor specific optimizations has broken MAME, it compiles clean but some games will crash the Pi when run. I ran some benchmarks and the optimizations made almost no difference to the speed at all. Almost all the gains are to be had just from using SDL2-2.0.4 over the default SDL2-2.0.2 so I have uploaded the good compile without the processor optimizations.

Get it HERE

Raspberry MAME 0.174 – Pi2 & Pi3

I’ve compiled optimized versions of MAME 0.174 for Pi3 and Pi2. Sadly it appears to have become a little slower since I did this for 0.171. A little slower has a large impact on a board as low powered as the Pi’s.

I’m now busily compiling versions 173, 172, 171 and 170 for each board and will be running some benchmarks to see just how much slowdown there is and when it started.

For now you can get the 0.174 version from my Raspberry MAME download page.

MAME 0.172 for Raspberry Pi 2

MAME 0.172 is out and again this time there are some big and awesome changes to the core app. After taking the time to set up some permanent swap space on my Pi coding box and the slow compile time a version for the Raspberry Pi is ready.

The new GUI has had a lot of bug fixes, BGFX now had shader support from the guy behind GroovyMAME, HLSL speed has been improved, High score saving!.

For full details about what else has changed see the changelog here. You can grab the Raspberry Pi version or an Arcade game only version from my MAME download page.

[ARTICLE] Demystifying MAME ROMS

A lot of people get confused about MAME ROMs, they seem so complicated and fragile.

“I upgraded my version of MAME and now none of my games work”
“I got <gamename> ROM from <website> and it wont work”
“Why is this so much more complicated than NES or SNES ROMs?”

I hear these kind of things a lot on various forums around the web and it’s true, MAME ROMs are more complicated than console ROMs, but not hugely so. There are just a few concepts you need to understand and some simple terminology and it all makes sense.

Here is my guide to MAME ROMs and their associated terminology.