MAME v0.177 is released. MAME stands for Multiple Arcade Machine Emulator. When used in conjunction with images of the original arcade game's ROM and disk data, MAME attempts to reproduce that game as faithfully as possible on a more modern general-purpose computer. MAME can currently emulate several thousand different classic arcade video games from the late 1970s through the modern era.

-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]

-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

-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

-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

-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

-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

-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

-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

-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]

-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

-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