Mameinfo.dat v0.184
Updated - 29th March 2017

Homepage -
E-Mail -



What's New

*NEW* Mameinfo 0.184 (2.64Mb)

*NEW* MAMEUI 0.184 Category-, Version and Alltime inifiles (663 kB)

*NEW* MAME NEWS from 0.37b1 - 0.184 (3.84 MB)

PCB-infos 0.153 (2.11 MB)

MAME listinfos from 0.25 to 0.170 (153 MB)

New in MAME:    
0.185GIT - New games: Galaxy Games StarPak 4 (prototype) - New Non-Working games: 'Unknown Poker Game' - New clones: Martial Masters (ver. 103, 102, 101CN) and Rastan (World, Earlier code base) - New drivers: clpoker.cpp - Sound Blaster 16: Added save DSP state. Fixed incessant popping before first use. - YMF262 sound: Added save state support to YMF262, slot pointer checks - chihiro.cpp: Let's pretend there is a drive board connected, so OutRun 2 can run with usb enabled and no patches. - galgames.cpp: Fixed OKI6295 CPU1 clock speed - vp101.cpp: Improved support for reduced-cost VP050 version - Disco Boy: Kill trampoline, removed unneeded prefixes and use bankdev for the first ram bank. - Mahjong CLUB 90's: Removed DSW B from the driver as it does not exist on the real PCB (ID 06526) - Mahjong Sisters: Substitute timer_set with timer_alloc(timer) and timer->adjust() - PinMAME: Adjust Meg-Aaton clocks to conform with schematics - Debugger . More robust memory access operator parsing (debug\express.cpp) . Fixed writes to decrypted opcode memory (debug\debugcpu.cpp). Fixes problem in the debugger and the cheat engine as currently the writes to opcode memory are not handled correctly, so separated EXPSPACE_RAMWRITE and EXPSPACE_OPCODE case statements to allow opcode writes to access the correct memory. Example: In flicky this will now disable cat collisions with the main sprite: maincpu.ob@3ac6=c3. This is the simplest way of updating this, EXPSPACE_OPCODE is now a copy of EXPSPACE_RAMWRITE except it uses AS_DECRYPTED_OPCODES instead of AS_PROGRAM. This method means I've got a lot of work updating a lot of cheat file warnings ...but this is the correct way of doing this. 0.184 - New games: Shiny Golds and 'Soreike! Anpanman Popcorn Factory (Rev B)' - New Non-Working games: Zoofari - New clones: 2 On 2 Open Ice Challenge (rev 1.2A), Dynablaster / Bomber Man (bootleg, set 3), Flashgal (set 1, Kyugo logo), Gals Panic (MCU Protected, set 2), Griffon (Olympia bootleg of Phoenix), Karnov (Japan, bootleg with NEC D8748HD), NBA Play By Play (ver AAB), OutRun 2 Special Tours (GDX-0014), Penguin Brothers (Japan, bootleg), Phoenix (IDI bootleg), Pot O' Gold (U.S. Games, v580F), Radical Radial (Japan), Raiden II (Germany), San Francisco Rush (boot rom L 1.06A), San Francisco Rush: The Rock (Wavenet, boot rom L 1.38, GUTS Aug 6 1997 / MAIN Aug 5 1997), San Francisco Rush: The Rock (Wavenet, boot rom L 1.38, GUTS Aug 19 1997 / MAIN Aug 19 1997), Shanghai III (US, prototype), Skins Game Tournament Edition, Street Fighter II: The World Warrior (World 910129), Super Crowns Golf (World), Time Traveler (set 2) and Wangan Midnight Maximum Tune 2 (Export) (GDX-0016) - New AGEMAME games: Alchemist (01J02046, Venezuela), Bachelorette Party (BHG1248, US), Boot Scootin' (GHG1008-03, US), Cash Cat (0100557V, NSW/ACT), Cash Cat (0100676V, NSW/ACT), Desert Bloom (0300111V, NSW/ACT), Dolphin Treasure - Cash Express (AHG1519, US), Dolphin Treasure - Cash Express (AHG1607, US), Dream Weaver (0200586V, NSW/ACT), Fast Fortune (0100651V, NSW/ACT), Jumpin' Joey (0100383V, NSW/ACT), King Galah (0100536V, NSW/ACT), Loco Loot (0100473V, NSW/ACT), Lucky Clover (0300109V, NSW/ACT), Magic Mask (AHG1549, US), Magic Touch (0300455V, NSW/ACT), Mammoth Money (0100425V, NSW/ACT), Mine, Mine, Mine (0400115V, NSW/ACT), Money Mouse (0300469V, NSW/ACT), Mountain Money (0100289V, NSW/ACT), Orchid Mist (0100849V, NSW/ACT), Oscar (0100348V, NSW/ACT), Penguin Pays - Penguin Pucks (EHG1257, US), Penguin Pays (0100113V, NSW/ACT), Penguin Pirate (0100674V, NSW/ACT), Penguin Pirate (0200578V, NSW/ACT), Queen of the Nile - Cash Express (AHG1525, US), Queen of the Nile - Cash Express (AHG1609, US), Queen of the Nile (0101139V, NSW/ACT), Queen of the Nile (0101707V, Brazil), Queen of the Nile (04J00784, Venezuela), Reel Power (0100400V, NSW/ACT), Rushin Rooster (0100534V, NSW/ACT), Silver Wolf (0100673V, NSW/ACT), Snow Cat (0100405V, NSW/ACT), Super Bucks III (0100711V, NSW/ACT), Sweethearts II (0200465V, NSW/ACT), Thor (0200319V, NSW/ACT), Thunder Heart (0200333V, NSW/ACT), Thunder Heart (0200334V, NSW/ACT), Tropical Delight (0100269V, NSW/ACT), Unicorn Dreaming (0100813V, NSW/ACT), Wicked Winnings (0100553V, NSW/ACT), Wild Angels (0100337V, NSW/ACT) and Yukon Gold (03J00191, NSW/ACT) - New PinMAME games: Arizona, Cowboy Eight Ball, Disco Dancing, Force, Harley Davidson (L-2), Haunted Hotel, Hustler, King Kong, Space Ship (Pinball), Time Machine (LTD, 2 players), Time Machine (LTD, 4 players), Trick Shooter, Viking King, White Force and Zephy (alternate set) - New drivers: stargame.cpp - New devices: ad557, ie15_cpu, ie15_device, ie15_keyboard, ie15_terminal, sega32_pcb_upd7725 and tms1025 - ARM7 CPU: Repair broken ARM (arm7\arm7ops.cpp) - I386 CPU . Fixed enum range check (cpu\i386\i386ops.hxx and pentops.hxx) . Save additional CPU flags (cpu\i386\i386.cpp) - Dynamic Re-Compiling . Fixed MAME crashed running scud with -bench 90 (cpu\drccache.cpp) (ID 06492) . Fixed regression on OS X - MIPS CPUs . Retry fixing FPU register aliasing (mips\mips3.cpp and mips3drc.cpp) . Make sure branch delay slot instruction is not virtual instruction before trying to generate code to add it to the block checksum (mips\mips3drc.cpp). . Initial support for VR5500 and TX4925 CPUs - T11 CPU . Emulated MFPT instruction . MOV, CLR and SXT read memory before writing to it (Page B-8 of User's Manual) - TMS32031 CPU: Removed direct update handler - Z180 CPU . Correct DMA MMOD bit . Count of 0 means 0x10000, as with other DMA controllers. . Fixed scheduling so burst mode DMA is always serviced immediately with no CPU ops interleaved. - AY-3-8910 sound . Added a write handler for the case of bc1=a0 and bc2=a1. Added guide to bus control signals. . Overrided device method to support changing clock frequencies in the AY8910. Added virtual keyword to declaration. - TMS5110 sound: Updated some comments - uPD7725 sound . Fixed disassembly . Added preliminary IRQ support. Handle the LSB-first load from SI properly, for when SI gets hooked up in the future. . Added siack and soack registers and their requisite jumps, not used yet. Fixed missing si register and flags registers savestate registration. . Fixed an off-by-one error when loading uPD96050 roms for SNES games (bus\snes\upd.cpp) . Fixed LSB-first bit ordering for SO reg, not used yet. Use accessors to access the SR p0 and p1 bits, rather than masking. . Corrected which registers are actually reset by /RESET and fixed/updated IRQ system, should behave more properly now. - 6821 PIA: Incremental C++-ification of 6821pia.cpp.1: Changed some 'int' ==> 'bool' where appropriate. 2. Changed the various control byte macros to static functions [Nathan Woods]. - Discrete Netlist . Slightly improved event timing if state changes. Also introduce a push_force call to reschedule already pending events if the state will not change. . Clean up net_t interface and increase readability . Improved readability. Added more C++11 noexcept and swap semantics. Also fixed Clang-5 warnings and VS2015 compile. . Added a heap priority queue to the netlist source. This is currently not used since performance drops by about 40%. The typical use case would be circuits a lot more complex than those we currently emulate where the 2*log(n) advantage really applies. . Fixed netlist stats collection. Code refactoring: Small improvement for 7493. Converted 9316 from subdevice to delegate. Converted 74107 from subdevice style to delegate. Also refactored inconsistencies in other parts of the code. . Netlist refactoring: Align timed_queue closer to std::priority_queue. Use uint8_t in extended clock for better memory usage. Minor changes to nl_breakout.cpp. . Fixed some Cppcheck and Clang warnings. Fixed -Winconsistent-missing-destructor-override warnings. Made some constructors of template classes and classes with virtual .. = 0 methods protected. . Fixed openmp compile (solver\nld_solver.cpp) - Floppy . Added tag command names in debug messages (machine\wd_fdc.cpp) . Inform disk image of step operation so it can cache information (floppy_stp_w) . Added missing operator* to multiply an attotime by a double (machine\fdc_pll.cpp) - MC6845 CRT: Generate blink state in a way more likely to represent hardware and removed kludged-in MC6845 accessor. - Nintendo Custom . Improved PAL clone timings (video\ppu2c0x.cpp) . Refactored clock definitions (includes other drivers using the N2A03) (cpu\m6502\n2a03.h) - ROC10937 video: Fixed CID: 138793 "Logically dead code" - SAA5050 video: Fixed romsize - VGA video: Save expanded attribute registers (video\pc_vga.cpp). Updated CRTC usage comments. Added palette configuration to save state. Fixed broken port reads on state load. VGA card now saves vga.dac to the state, as the MAME palette is clobbered periodically with data from here. Changed the type of vga.dac.colour to a flat uint8_t array seeing as save_item isn't struct-friendly. Fixes Liero. Saved more VGA flags, including vga.miscellaneous_output, which despite the vague name is needed for reading from the ports. - Z80 SIO . Added I8274 type macros and derived class + logging . Changed (MESS) isbc.cpp to use z80sio.cpp i8274 device driver instead of z80dart.cpp . Variant support for i8274/upd7201 and a refactored interrupt support and cleanup Z80-SIO - aerofgt.cpp, f1gp.cpp, fromance.cpp, ojankohs.cpp, pipedrm.cpp, rpunch.cpp, tail2nos.cpp, welltris.cpp: Added skeleton device for Video System C7-01 GGA - ambush.cpp: Driver state cleanups - amusco.cpp: Generate blink state in a way more likely to represent hardware and removed kludged-in MC6845 accessor - aleck64.cpp . Added short delay between RDP full sync and DP interrupt (machine\n64.cpp and video\n64.cpp). Since the RDP is not currently scheduled for its own timeslices, this will allow the RSP interrupt from graphics tasks to arrive at the main CPU first. In some instances, the RSP timeslice would end after the RDP had been sent the full sync command, but before the RSP could finish its task. No issues were manifest if both RSP and RDP interrupts arrive at the same time, but it is still expected that the RSP interrupt should arrive first. . Let debugger disassembly windows track RSP PC . Flush RSP drc cache when SP DMA changes IMEM (machine\n64.cpp) . Make element selection in vector load/store DRC C functions consistent with other implementations (cpu\rsp\rspcp2d.cpp). . Fixed a minor issue with RDP disassembly listing for Load Block (video\n64.cpp). - atlantis.cpp and iteagle.cpp: Perform IDE reset during PCI device reset (machine\pci-ide.cpp) - atlantis.cpp and midzeus.cpp: Better texture lookup (video\zeus2.cpp) - atlantis.cpp, midzeus.cpp, seattle.cpp and vegas.cpp: Added serial input (machine\midwayic.cpp) - bagman.cpp: Use 4-way joysticks in all games except Squash (Itisa) - blockade.cpp: Rewrote driver - chihiro.cpp . Redumped Ollie King (GDX-0007) . Some information on usb commands for AN2131SC. AN2131SC is used as a USB to serial converter, one of the 2 serial ports can be setup as MIDI. - ddenlovr.cpp and dynax.cpp: Device type corrections - deco32.cpp: Comment out popmessage - dkong.cpp: Major latch8 and discrete device cleanup: Eliminate the AM_LATCH8_XXX address map macros. The normal DEVREAD/DEVWRITE ought to be good enough. Eliminate the "offset" specifications from latch8_device. This was used mostly to funnel outputs to discrete_device, which now has a templated write_line handler. (Inputs can use MCFG_DEVCB_RSHIFT instead.). Organize latch8_device's callbacks as arrays of devcb_readline/devcb_writeline, helping simplifying code greatly. Change latch8_device::bit[0-7]_(q_)?r to be proper line read handlers. This requires two extra READ8 handlers in audio/dkong.cpp, but memory-mapping for the MCS-48 T0 and T1 lines is totally artificial anyway. Comment out an assert that now tends to fail due to buggy AM_MIRROR behavior. - docastle.cpp: Read inputs through TMS1025. Added input callbacks and read handler to TMS1024/TMS1025. Clean up code a little. Added MS pin to TMS1024, added write to port 0. - dooyong.cpp: Fixed regression (spriteram8 -> spriteram16) - galaxian.cpp . Cleaned up clock definitions (KONAMI_SOUND_CLOCK -> 14.31818 MHz) . Moved clone Lady Bug (bootleg on Galaxian hardware) from galaxold.cpp to galaxian.cpp drivers - homedata.cpp . Various updates. Changed 4-way joysticks to correct 8-way to Reikai Doushi and Battlecry according to manual. Added button descriptions. . Added DSW layouts to Reikai Doushi and Battlecry & a note about their numbering according to the manual. - marineb.cpp: Corrected the main crystal to 12MHz as seen in PCB photos - merit.cpp: PSG type is AY-3-8912 - model1.cpp . Added documentation for differing Model 1 coprocessor chips . Added roms 315-5571.bin and 315-5572.bin to the Model 1 CPU Board . Added dumped internal TGP rom 315-5573.bin to Virtua Racing and clone Virtua Formula - model1.cpp and model2.cpp: Massive MB86233 disassembler overhaul - naomi.cpp . Dumped and documented 837-14438 hopper controller board, used in Kick '4' Cash and few other SWP games. Added to prev FPGA config PROM dump as well. . Redumped Noukone Puzzle Takoron (Japan) (GDL-0042) and clone Virtua Fighter 4 (Rev B) (GDS-0012B) . Dumped 'Ferrari F355 Challenge (deluxe, no link)' Export and Japan BIOS . Dumped 'House of the Dead 2' Japan BIOS . Measured NAOMI's MIE MCU speed - peplus.cpp: Fixed CID: 138606 "Logical vs. bitwise operator" - polyplay.cpp: Hook up the SIO - raiden2.cpp: Added tile_scroll_w safety fence - rpunch.cpp: Fixed a bug where AM_SELECT applied to narrow-width handlers with a submaximal number of subunits would select the wrong address bits or none at all (This allows rpunch_gga_w to be WRITE8 as intended). Added more stringent appropriateness checking of unit masks for narrow-width handlers. - seicross.cpp: Added XTAL - sg1000a.cpp: PSG is SN76489AN, just like the console. - vp101.cpp: Added framebuffer, some inputs, ATA, NVRAM and protection cheat. Implemented ATA DMA. - wildpkr.cpp: Work out several device hookups. The use of a DS2401 "ID" in tabpkr is inferred from the code. The data supplied for it is totally artificial and the chip may have been stripped from the PCB pictured on Much still needs to be learned about the hardware of these games. The emulation doesn't display even error codes yet. - AGEMAME: New aristmk5.cpp sets, layouts and documentation - Air Rescue: Added Air Rescue's uPD7725 DSP and load its roms. Disabled for now, since the uPD7725 CPU core will need some features added before this can work. - Alpha One: Adjusted screen size - Area 51: Site 4: Documented an earlier BIOS version. Doesn't seem compatible with the HDs available. - Assault, Bouncing Balls, Dangerous Dungeons, Dark Tower, Kid no Hore Hore Daisakusen, Klax, Mad Donna, Pushman, Super Duck, Super Toffy, Toffy and Trog: Use 4-way joysticks. No manual or flyer showing controls for Super Duck is available, but gameplay does not seem to accept diagonal input at any time. Dangerous Dungeons, despite being a conversion of Double Dragon, has a manual that notes that 4-way joysticks should be used. It seems reasonable to assume that the other non-Technos games should do the same, with the exception of Thunder Strike. - Code One Dispatch: Added timekeeper dump for clone (ver B) - Continental Circus: Fixed subtle color pen bug in Mexico GP stage - Fever Soccer: Added coin hopper output (prize hopper doesn't quite work) - Got-cha Mini Game Festival: Hooked up lamp outputs and added clickable artwork - Hanaroku: Added NVRAM and hopper - Hyperdrive: Fixed FPU register aliasing (mips\mips3.cpp and mips3drc.cpp). This fixed 3D graphic objects in Hyperdrive (ID 06512). - Rushing Heroes: Redumped sound rom - Last Bank: Added coin counters - Mario Kart Arcade GP and Mario Kart Arcade GP 2: Added security PIC dumps and fixed rom load - N-Sub: Simulate the gradient in N-Sub. Figured out how the starfield and gradient get enabled on VIC Dual hardware. Don't exactly know how they work yet, so I added a simulation of the gradient for N-Sub. - Pasha Pasha 2: Hook up lamp outputs and clickable artwork - Phoenix . Dumped/redumped the PROM for some of the bootlegs. Also started documenting the differences. . Added MACHINE_IMPERFECT_SOUND to the games known to substitute the melody generator with a piggyback PCB. There might be more. - PinMAME: Added program ROMs and corrected title for Volley. Redumped Columbia. - Poizone: Fixed 'Setting 2' dipswitch - Popper . Get some meat back onto the bones: Decode color PROMs. Full memory map for main and audio CPU derived from schematics. Added both dipswitches. Hook up interrupt generation logic. Decode character and sprite layout and draw character tilemap. Raw screen parameters (to be verified). Hook up inputs, renamed audio cpu to sub cpu and hook up flip screen. . Added a AY-3-8910 write handler for the case of bc1=a0 and bc2=a1. Fixed audio hookup in Popper (BC1 is hooked up to A0 on the host and BC2 is hooked up to A1). - Rock Climber: Fixed MACHINE_CONFIG (rockclim base off mooncrst) - Sea Bass Fishing: Fixed game shows only black screen (video\stvvdp2.cpp) (ID 04454). Note: Sea Bass explicitly wants a monitor mode bit to be 0 when screen is disabled from bios to game transition. - Space Warp: Added Hunchback (Galaxian hardware) color prom - Teenage Mutant Ninja Turtles - Turtles in Time: Fixed missing 3Player & 4P inputs in clone (4 Players ver EAA) - Time Attacker: Update notes - Tsukande Toru Chicchi: Added clock XTAL definition for the Z80 CPU, divisor is guessed. - Trog: Use different inputs for clone Trog (prototype, rev 4.00 07/27/90) - Ultimate Mortal Kombat 3: Redumped UMK3 U2-U5 sound ROMs, all match current dumps. Removed BAD_DUMP tag and raised MACHINE_IMPERFECT_SOUND for umk3 sets, see MT00751. - Input port: Some reports of garbage in console with DInput controllers. Changed to snprintf with assert since apparently snprintf fixes the reported problem. - Dipswitch fixes in ertictac.cpp - Fixed rom names in blockade.cpp, itech8.cpp, konamigx.cpp, neopcb.cpp and suprgolf.cpp - Description changes of CoMOTION, Dynablaster / Bomber Man (bootleg, set 1), Dynablaster / Bomber Man (bootleg, set 2), Dyno Bop (V1.1), Gals Panic (MCU Protected, set 1), Griffon (Videotron bootleg of Phoenix), Moon Base Zeta (set 1), Moon Base Zeta (set 2), NBA Play By Play (ver JAA), Radical Radial (US), San Francisco Rush (boot rom L 1.0), San Francisco Rush: The Rock (boot rom L 1.0, GUTS Oct 6 1997 / MAIN Oct 16 1997), Scramble (Karateco, French bootleg), Sweethearts II (01J01986, Venezuela), Time Traveler (set 1) and Volley - Renamed (cashcat) to (cashcatnz), (chariotc) to (chariotcv), (chariotca) to (chariotc), (cowboy) to (cowboy2), (dolphntrce) to (dolphntrcea), (dstbloom) to (dstblooma), (kgbirdmk5) to (kgbirda5), (locoloot) to (locoloota), (magimask) to (magimaskb), (magtcha5) to (magtcha5a), (minemine) to (minemineu), (qnile) to (qnileb), (qnilea) to (qnilec), (qnileb) to (qnilea), (qnilec) to (qnile), (raiden2g) to (raiden2eg), (retrsama) to (retrsamb), (retrsamb) to (retrsama), (suprgolf) to (suprgolfj), (swhr2) to (swhr2a) amd (trpdlght) to (trpdlghtu) - MAME . SOFTWARE LIST . Very minor cleanups; accessing options.software_name() once and better std::string usage (clifront.cpp and mameopts.cpp) . Eliminates the need for emu_options::update_cached_options() by providing a hook for when option values change. This is a preliminary fix to the issue identified in PR#2065 ( . More softlist related refactoring: We now only parse the command line (with core_options::parse_command_line()) once. Options that are set up during slot and image setup go through a 'value_specifier' function. Eliminated the command line postprocessing. . Fixed image mounting from command-line in systems with a software list and an ini file, but there's plenty of time for testing (ID 06107). . Fixed regression when loading multipart softlists. Pernod found a regression introduced in the 0.183 softlist refactoring whereby multi-part softlist items would not distribute to multiple slots. The problem was that the old code was relying on the image slots being loaded into the core. This is not the way the new system works, so I've added a hook into software_list_device::find_mountable_image() that allows the new approach to work. . DEVICE . Fixed an issue where device options (e.g. -cart) were reported as unknown when they actually worked. This change also changes around how command line arguments are passed around; specifically I changed argc/argv to be std::vector. Note this is not passed around 'const', the reason being that the command line processing will now "eat" the vector. . Fixed regression pertaining to specification of empty strings as slot names e.g. - 'next -scsibus:1 "" -listdevices' . Cleanup of slot code. Added device_slot_interface::has_selectable_options() to calculate whether a particular slot has selectable options. . device_image_interface cleanups: Replaced comparisons of software_entry() or part_entry() with nullptr with loaded_through_softlist() predicate. Eliminated the superfluous m_software_info_ptr member. The software_entry() accessor is still provided, but now rarely used. Eliminated two of the three arguments to load_software_part. Removed some unnecessary auto-typing in ui/inifile.cpp. . Self-registering devices . Make device_creator a variable template and get rid of the ampersands . Removed screen.h and speaker.h from emu.h and added where necessary . Centralised instantiations of screen and speaker finder templates . Added/standardised #include guards in many hearers . Removed many redundant #includes . Order #includesr to help catch headers that can't be #included alone . Note: This changes #include order to be prefix, unit header if applicable then other stuff roughly in order from most dependent to least dependent library. This helps catch headers that don't #include things that they use. . MAME now walks all devices when generating -lx output irrespective of whether they're actually instantiated anywhere or not. . -lx is at least 30% faster than previous implementation. . Note: Only possible drawback is that filtering drivers no longer filters devices. Fix for libc++ build (emu\device.h). Fixed Clang build by supplying constructor for device_registrar (emu\device.h). . Image instance name refactoring and bug fixing: update_names no longer takes arguments; the device type can be obtained easily, and the custom instance names are now overrides. Devices might not need to explicitly call update_names in the future. Fixed the frontend crash/assert failure resulting from instance names not being generated properly. . Filter devices when a driver pattern is supplied to -listxml . Make device_image_interface::update_names a private method called automatically at config_complete time . Cleaning up duplicate device shortnames. Added basic device validation. Fixed uninitialised members in some devices using constructor delegation. . 3rdparty . Updated GLM to tip of stable branch ( pre-release), fixes build with MacPorts Clang. . Refactored HTTP handling to be easier to extend and use . Added emu_file::write, enables the use of sockets and pipes from LUA without needing a third party library (mame\luaengine.cpp). . Cheat engine: Added load_cheatfiles to frontend\mame\mame.cpp/h, emu/main.h and emu\machine.cpp . Fixed crash on excessive command-line options, clean up some tabulation and removed long-dead option. . Possibly uninitialized class member fix (ui\datmenu.cpp and ui.cpp) . Added a new addrmap.cpp validation intended to catch AM_REGION declarations not tied to anything meaningful . AUDIT . Fixed null pointer bug when -verifyroms is used without a driver spec . Substantially speed up -verifyroms, hack other verbs temporarily while device data is being refactored. . Greatly improved performance of -romident on multiple files (mame\clifront.cpp and media_ident.cpp). This hashes all the files upfront, then does the expensive driver/software scan only once. It also walks all devices so it can identify ROMs for slot devices that aren't inserted by default. . Include devices in -listxml with * or no argument . Preliminary attempt to fix regression caused by poor understanding of get_default_card_software() (mame\mameopts.cpp) . Converted screen_device VBLANK callback to devcb_write_line: WRITE_LINE callback has same functionality, except that screen is not an argument. Renamed screen_eof_xxx to screen_vblank_xxx in many drivers. No changes to externally registered vblank delegates or screen update methods. . PLUGINS: Updated hiscore.dat . Uncovered what might be a core bug: AM_SELECT does not work properly with masked handlers. . Memory unit masking and address mirroring fixes: Fixed a bug which effectively treated AM_MIRROR as AM_SELECT when applied to a single-address range mirrored into a contiguous block. The automatic expansion of zero address masks now only applies to those stemming from (default) configuration, not from optimization (This allows the assertion in latch8_device to be reinstated). Fixed a bug where AM_SELECT applied to narrow-width handlers with a submaximal number of subunits would select the wrong address bits or none at all (This allows rpunch_gga_w to be WRITE8 as intended). Added more stringent appropriateness checking of unit masks for narrow-width handlers. - SDLMAME: Fixed SDL build on Win32 and ZEXALL build - Compiling . Removed tag() argument from logerror() calls (cpu\i86\i86.cpp, i186.cpp, i286.cpp, Z80 and imagedev\floppy.cpp) . Fixed Clang 5.0 warning in util\palette.cpp. Maximum of unsigned X and 0 is always X. . Fixed GCC warning in sound\samples.h and GCC link error in emu/driver.h . Fixed MSVC build (include "screen.h" and "emu.h") . Changed 'const char *' ==> 'const std::string &' - Debugger . Refactor debugger_access . Fixed debug build by removing vestiges of -dummywrite (emu\video.cpp) . C++-ification of debugger code (misc std::string/std::vector adoption mainly) . Fixed debug commands in drivers and devices . Print octal addresses in the trace if CPU is octal (debug\debugcpu.cpp) . Added missing disable_side_effect in find_pc_backwards (debug\dvdisasm.cpp) 0.183 - New games: Dodge Man, Flash Boy (DECO Cassette), Galaxy Games StarPak 3, Omega and Sega Sonic Cosmo Fighter - New Working games: Donkey Kong 3 (bootleg on Ambush hardware) and Gallop Racer 2 - New Non-Working games: The King of Fighters XII (v1.00), KOF Sky Stage (v1.00J), Mega Card (Ver.0210, encrypted), Star Horse 2001 (satellite, Rev B) and Tsukande Toru Chicchi - New clones: Dungeons & Dragons: Shadow over Mystara (Japan 960223), Gals Panic S2 (Europe), Gamshara (World, 10021 Ver.A), Head Panic (ver. 0702, 02/07/1999), The King of Fighters '99 - Millennium Battle (Korean release), Missile Attack, Momoko 120% (bootleg), Mouse Trap (version 2), The Pit Boss (2214-07, U5-0A), Puzznic (US), Red Hawk (Greece), Speak & Help, Street Fighter EX2 (USA 980312), T.T. Defender, Virtua Bowling (Hong Kong, V101HJS), Virtual On 2: Oratorio Tangram (Revision A), VS Block Breaker (Europe) and Zen Nippon Pro-Wrestling Featuring Virtua (T 971123 V1.000) - New AGEMAME games: Dolphin Treasure - Cash Express (AHG1606, US), Dragon's Eye (0100521V, NSW/ACT), Golden Pyramids (0100878V, Victoria), K.G. Bird (0200024V, NSW/ACT), Margarita Magic (EHG1558, US), Panther Magic (0100716V, NSW/ACT), Penguin Pirate II (0100869V, Victoria), Pet Shop (0100731V, NSW/ACT), Phantom Pays (0500005V, NSW/ACT), Q.T. Bird (0500009V, NSW/ACT), Toucan Tango (0100782V, NSW/ACT), Winning Post (RHG0418-04, US) and Wizard Ways (0200396V, NSW/ACT) - New PinMAME games: Amazon Hunt III (rev. 1, French), Arena (French), Arena (German), Bad Girls (French), Bad Girls (German), Big House (French), Big House (German), Bone Busters Inc. (German), Bounty Hunter (German), Diamond Lady (French), Diamond Lady (German), Excalibur, Excalibur (German), Genesis (French), Genesis (German), Gold Wings (French), Gold Wings (German), Hollywood Heat (French), Hollywood Heat (German), Hot Shots (French), Hot Shots (German), Mars - God of War (Prototype), Monte Carlo (Pinball, French), Monte Carlo (Pinball, German), Monte Carlo (Pinball, rev. 2), Raven (German), Robo-War (French), Rock (German), Rock Encore (German), Rollergames (AD-2) Prototype, Rollergames (LF-2) French, Rollergames (LF-3) French, Spring Break (French), Spring Break (German), Tag-Team Wrestling (German), TX-Sector (French), TX-Sector (German), Victory (Pinball, French) and Victory (Pinball, German) - New drivers: galgames.cpp and konmedal.cpp - New devices: cesblit, dac08, dac0832, galgames_slot, pic16c56, starpak_cart, tmp87ph40an and ymz284 - ARM7 CPU . ARMv5 addition. Added support for the second BLX form for ARMv5, and fix behavior of second BLX form in THUMB. . Further fixes for ARM - Dynamic Re-Compiling: Fixed long-standing copy/paste error (cpu\drcbec.cpp) - M6805 CPU . Added skeleton M6805 CMOS devices . Added M146805 and M68HC05 to unidasm . Made opcode tables configurable in m6805_base_device, provided tables for HMOS, CMOS and HC families. . Implemented MUL instruction, made unimplemented STOP and WAIT raise fatal error. . Added skeleton MC68HC05C4 with RAM and ROM in correct locations in memory map . Fixed disassembly of BIT opcodes. Don't burn cycles on disabled interrupts. Added partially implemented MC68HC05C8 and MC68HC705C8A. Implemented 'HC05 digital I/O, timer/capture/compare and COP watchdogs. Probably still some bugs in 'HC05 peripherals. . Implemented M68HC05 edge-sensitive external interrupts in MC68HC05 . Clean up bih/bil handling - M68705 CPU . Dumped MC68705R3 for clone Bouncing Balls (Adult). Hook up protection MCU in clone Bouncing Balls (Adult), added to parent set as BAD_DUMP. Note: Uses a similar scheme to Pushman, but doesn't use port D on the MCU, and uses the same endianness for MCU reads/writes (Pushman swaps the bytes on writes). As an aside, Bouncing Balls has at least partial nudity in it as seen in attract mode, although less than clone Bouncing Balls (Adult). . Confirmed MC68705R3 bootstrap program matches Bouncing Balls (Adult) M68705R3 . Fixed problem with edge case in 68705 timer overflow interrupt. This fixed the missing enemies in the second stage of Xain'd Sleena (ID 06499). - PIC16C5x CPU . Fixes for writes with the status register as destination: Write all bits except TO and PD, thus enabling e.g. bcf, bsf or clrf to change the flags. rlf and rrf must update the flags after the store to work correctly on this register. . Small update, correct savestates. . Added PIC1650 and PIC1655 devices. Removed unused MCFG_PIC16C5x_T0_CB callbacks. . Added RTCC pin (not called T0, plus it was implemented in reverse). Made RTCC (aka T0CKI) pin an inputline handler. Added alias for RTCC pin (Note: In the mid-90s RTCC was renamed to T0CKI). . Fixed RTCC clocking in sleep mode and potentially clocking it too fast . Added basic support for the old GI PIC1650 and PIC1655 - SH-4 CPU: Fixed FMOV* opcodes. Note: Half of FPU was not correct. Fixed formatting. - T11 CPU: HALT opcode jumps to fixed restart address with PSW=0340 - uPD7807/7810 CPUs: Replaced fake I/O space with callbacks - C352 sound . Implemented volume ramping behavior and confirmed with recording of real hardware (Tekken 3) . Rewroted mulaw algorithm. This is not quite perfect yet but is closer to recordings and sounds a bit clearer (example: Time Crisis). . Use word swap macro for C352 sound rom in Armadillo Racing and Prime Goal EX. Reverted Time Crisis byteswapped C352 rom in 0.177. - ES8712 sound . Working sound and music in Last Bank . Added busy status read and notes on device . Added a reset line callback for the ES-8712. This will be used to reset the MSM5205/MSM6585 when the implementation is rewritten to use those devices. For now, it's used for IRQ generation in vmetal, whose program seems to use a separate gate to prevent unwanted IRQs when the device is reset (gcpinbal appears to do the same with a rather subtle difference). Removed the probably bogus and already unused auto-repeat feature from the ES-8712 device. All known games that loop samples do so by status polling or IRQs. - SAA1099 sound: Use the correct LFSR polynomial for the SAA1099 noise generation and added some notes about an unemulated undocumented feature of the noise clock. - ATAPI/SCSI: Added Play Audio MSF (0x47) command, used by Another CD Player and Astrocounter of Crescents (machine\t10mmc.cpp) - 6522 VIA . Updated LOG messages to latest cut and added some new . Fixed 50/50 duty cycle for T2 and O2 driven CB1 shift IN & OUT on CB2 . Added stop of device_timer when going from internaly to externaly clocked shift modes. Fixed so shift out and in flank is not controlled by pcr in accordance with datasheet. Added missing final and leading flanks when shifting out and in respectivelly. - Discrete Netlist . Added infix notation parsing to the function parser . Netlist refactoring . Refactored netlist pmf code . Small optimization for diode calculations . Minor refactoring across the board . Removed virtual from some destructors and make them protected . Various cleanups . Small performance improvement . Fixed some inconsistencies . More C++ refactoring. Fixed netlist code generation. Fixed compile on some unknown compiler(netlist\plib\pstring.cpp) and Visual Studio (plib\pfunction.cpp). Cleanup of includes. . Fixed warning about non existing memory space when netlist is used as an additional cpu. . Fixed bug which caused (MESS) Hazeltine 1500 to crash . Reduced overhead to load data (roms) in netlist significantly. The previous solution involved a significant amount of redundant replication of information and objects. Now, a rom name specified as SOMEROM(x21, "romlabel") will automatically be loaded from region "netlisttag:romlabel". Examples are (MESS) Hazeltine 1500 and Stunt Cycle [TTL]. . Fixed a hidden bug in the GMRES solver and more optimization . Logging enhancement: For netlist device debugging one can now use #define LOG(...) log().info(__VA_ARGS__) to use debugging and the known #define LOG(...) do {} while (0) do disable debugging on device level. To avoid bitrot one could as well use #define LOG(...) log().info.log(__VA_ARGS__) and #define LOG(...) log().info.log(__VA_ARGS__). The later disables debugging. If the compiler can assume that there are no side effects from e.g. using foo(a/b), 'LOG("abc {1:04x}", foo(a/b));' should be completely optimized away. Log channels available are info, verbose, warning, error and fatal. Don't use debug, it is enabled only on specific debug builds. Use would be e.g. LOG("abc {1:04x}", 2); The format specifier in the string are enclosed in "{}". "{2}" is the second parameter after the format string. Types are determined automatically. "{3:04x}" would format a number as a hexadecimal with 4 leading zeros. . Rewroted mat_cr_t to include data as well. Fixed some bitrot in other parts. Simplified solver creation. . Separated include file usage for netlist. Device implementations (all cpp files in netlist/devices) now should only include nl_base.h. Netlist implementation sources should only include "net_lib.h". Refactored netlist.h and netlist.cpp to avoid namespace congestion in netlist.h. Fixed VC2015 build. . Fixed crashes on terminals without nets (i.e. connected to a rail). Reviewed "FIXMEs" and corrected some minor ones. Made m_cur_analog protected. Fixed pmf delegates to work with MSVC. More optimizations to the solver code. Started work on a better signal pipeline in nlwav. Only generate documentation for entities which are documented. . Some documentation work. Set default models for devices missing them. Fixed standalone makefile to work in mingw environment. Doxygen work. Added constexpr and noexcept. Fixed 9322. . It is now possible to have multiple handlers per device for updates. This will make device implementation more flexible and faster. A nice side-effect is that there was some minor (<5%) performance increase already. Each input is now assigned a notification handler. Currently this is update, but going forward this may be a custom handler. In addition: Fixed MEMPOOL on OSX. Removed dead code. Avoid bit-rot. Added delegate support for emscripten and arm processors. Added delegate support for VS 2015 x64. . Explicitly #include C++ headers for features use . Make sure netlist includes are not found directly on include path. Instead, they have to be prefixed by "netlist/". Removed unneeded link librariers for nltool and nlwav along the way. . Make windows builds of nltool and nlwav understand unicode. nltool and nlwav now use wmain, i.e. UNICODE main on windows. Reorder include order to comply with best practices. . Added state saving and loading to nltool. Save states are needed for regression tests going forward. . Added standalone VC2015 build file in lib\netlist\build. This was the last platform without standalone compile. Sure needs more attention, grateful for any help. . Moved inline constructors from header to cpp. Moved from cstring to std::copy and friends. . Optimized 7493 device. Gives some 5 to 10% improvement to Pong. 7493 also is an example on how to use multiple handlers on a device makes design easier. . Reworked Netlist truthtables: Moved 9312 and 74279 to TTL macro library. Renamed TTL_9312_* to DM9312. This is more appropriate. Fixed a number of warnings from latest Ubuntu Clang-5.0. . Added 74164 (8bit parallel output serial shift register). Added BCD display netlist for (MESS) Prodigy chess computer. - Floppy: Propagate CRC error flags (CRC_ERROR_IN_ID_FIELD and CRC_ERROR_IN_DATA_FIELD; formats\dsk_dsk.cpp) - HuC626x video . Fixed YUV colors, added palette offset and HuC6261-A mixing, fixes (MESS) NEC PC-FX boot screen graphics & colors. . HuC6272 "King" clean-ups and identify SCSI registers . Added stub HuC6271 device for (MESS) Rainbow . Added full pad inputs, some register hookups in HuC6272 "King" and fixed few bit mistakes. Added SCSI interface to "King" device. - MC6845 CRT . Scroll fix for (MESS) Osborne-1 (Nuevo Video) . Fixed scanout. The device should not try to scan-out more lines than has been programmed into the 'visible' register. - MC8123 encryption: Make code a bit more readable - Namco Custom: Register internal Namco C148 stuff to save state - TMS9927 video: Modded TMS9927 to allow for driver-specific overscan areas. Aligned (MESS) STIC video and TMS9927 graphics properly. Changed (MESS) intvkbd to use generic TMS9927 support. - 5clown.cpp, bzone.cpp, gekisou and qix.cpp: Correctly assign service buttons (ID 06470) - aerofgt.cpp: Cleaned up audiocpu rom loading, avoided some tag lookups, thus minor speed up. - aleck64.cpp . Added PIN64 logger class (video\pin64.cpp). Treat commands as blocks, 50% file size savings for PIN64 captures. . Make N64 RDP use uint64_t types for commands - ambush.cpp . Rewrote driver. Use tilemap system to draw background/foreground characters and use generic gfx_8x8x2_planar layout. . Added mario and dkong3 bootlegs running on extended hardware (color PROMs for those haven't been dumped, using the PROMs from the original currently) . Updated and correct dipswitches. Documented tile attribute RAM and sprite RAM layout bits. . Use screen raw parameters. Added connector layout. Updated TODO list and ROM filenames. - aristmk5.cpp . Moved the GAME definitions for the known bad dumps to their own section for easier reference if somebody wants to track those specific versions down for redumping. Tidy comments. Added region info. . Rearranged controls to be more playable and added PORT_NAMEs - asteroid.cpp, bwidow.cpp, firetrk.cpp, starwars.cpp, tempest.cpp and Gekisou: De-hardcode "Diagnostic Step" input - capbowl.cpp: Identified DAC type - cubo.cpp: Make Akiko independent from driver state - dec0.cpp . Added I8751 MCU rom dump to Bad Dudes vs. Dragonninja . Replaced MCU simulation for clone Dragonninja (Japan) with hacked version of baddudes dump. Added note about likely bit error in new MCU dump. . Latch cleanup. 'LS374 senses positive edge, others are educted guesses. . New and improved PCB README for the DEC0 based games - freekick.cpp . Added Omega (Nihon System 1986). Note: Omega code/gfx looks to be based on Gigas Mark II, given the "MarkII" graphic in the gfx roms and Gigas Mark II style continue numbers etc. PCB is marked "K.K NS6102-A" and seems to be somewhere between Gigas hardware and Free Kick hardware (3x dipswitch arrays). Supposedly an extremely limited release with ~10 PCBs produced. . Added comments about Gigas Mark II. Note: Gigas Mark II is a romswap/upgrade to Gigas and uses the same MC8123 (317-5002). The original, MC8123-protected version of Gigas Mark II is undumped, we only have the bootleg. - galgames.cpp . More complete Galaxy Games emulation . Created devices for the Galaxy Games carts (EEPROM + Flash + PIC) and the slot(s) . Removed code patches and emulated the PIC communication and bank switching . Converted the blitter to a device (cesblit.cpp) . Moved the Galaxy Games from tmaster.cpp to their own driver galgames.cpp . Provided the PIC code for all four StarPak cartridges - gcpinbal.cpp . Added HCT157 for ADPCM interface . Added interface for 93C46 EEPROM . Modernization and sound improvements: Break up the bogus IOC structure and use 8-bit handlers where appropriate. This fixes a music playback glitch due to the old handler's failure to take byte mirroring into account. Improved OKI M6295 sounds by using correct bit for banking. . Load more music by sending interrupt when ES-8712 finishes playing sample. Updated machine flags to better reflect current emulation status. - hng64.cpp: Added preliminary TLCS-870 disassembler - konamim2.cpp: Added terminal. Some fixes allowing M2 console version to show "Please Wait". - marineb.cpp . Fixed sprite colors in Battle Cruiser M-12 . Changed PSGs to AY8912 in Battle Cruiser M-12 and Wanted. Added note on PCB. - namcond1.cpp: Enabled preliminary ROZ effects in YGV608 core. Needs testing and references, they are certainly off for e.g. Galaga Arrange Challenge stages. - namcos22.cpp . Added per-game speaker configurations. Source: Game manuals and sound test messages. . Added 'bodysonic' speaker to Air Combat 22. The name comes from test mode, manual scan is not clear enough to show the name of this speaker. - naomi.cpp . Minor NAOMI 2 specifics . Redumped Crackin' DJ Part 2 . NAOMI docs update: Added 2 Naomi cartridge S/N-s, document Atomiswave game exe Build time stamps shown in Test Mode, correct few game years and sort game list as per build dates. - nbmj9195.cpp: Fixed dipswitches for jituroku (ID 05559), mjanbari (ID 05577) and pachiten - pgm2.cpp: Improvements. Fixed address map and added some notes. - polyplay.cpp: Added light organ and optional layout. Traced the lines on the board to figure out how the lightorgan worked. A zero cross detector triggers NMI on the cpu, which then operates the light organ. - pong.cpp: Clean up #includes - segas16b.cpp: Improved inputs for Excite League and Super League - Amiga . Converted the Amiga keyboards to a bus interface with slot devices . Moved audio related registers into Paula device. The device is now independent from the Amiga state class. . Make Akiko independent from driver state - Aquarium . Correct OKI M6295 clock with actual resonator . Replaced PCB layout with with a more informational version. List out major chips on the PCB including customs. - Arkanoid: Added detailed memory map and proper mirroring of various memory mapped areas. Documented and mapped the joystick ports which, while present and fully functional on the pcb, are unused by the game code. - Arrow Bingo . Fixed clocks to be more accurate, hooked principal inputs to make the game playable, added technical notes and cleaned-up a bit the driver. . Added a new input requested by the code. Added more technical notes about the program. - Bouncing Balls . Dumped MC68705U3 for clone Bouncing Balls (Adult) . Hook up protection MCU in clone Bouncing Balls (Adult), added MCU to parent set as BAD_DUMP. Note: Uses a similar scheme to Pushman, but doesn't use port D on the MCU, and uses the same endianness for MCU reads/writes (Pushman swaps the bytes on writes). As an aside, Bouncing Balls has at least partial nudity in it as seen in attract mode, although less than clone Bouncing Balls (Adult). Also Bouncing Balls is the most criminal under-utilisation of a MC68705R3 ever. It uses none of the features the R family has over the P family (second interrupt, port D, ADC, wider port C), and it barely has any program code in it at all. It's barely a "protection" program either, as it has no hidden state variables, and no internal tables. It really does just produce a 16-bit response by doing a trivial manipulation on a 16-bit input. ElSemi's simulation was almost perfect. - Canvas Croquis: Added flip screen - Combat School: Mark Combat School trackball and Boot Camp clones as MACHINE_NOT_WORKING - Double Crown: Simplify code by adding 8255 PPI and PSG type is YMZ284 - Funky Ball: Added basic inputs - Galaxian: Fixed 'Bonus Life' settings in clone Galaxian (Midway set 2) (ID 06503) - Gallop Racer 2: Redumped bankedroms - Game now playable - Hoops '96: Work around for Dunk Dream '95 sound routing issue - Kung-Fu Taikun: Added MACHINE_NODEVICE_MICROPHONE - Kyuukyoku no Othello: Added DIP SW2 and identify dipswitches and locations - Last Bank . Added working sound and music. Allow sound CPU to reset the ES-8712 and M6295. . Filled in dipswitches. Added NVRAM, remaped/renameed inputs and added RTC notes. - Mephisto: Adding devices based on schematics - Missile Command: Made clones Missile Combat (Videotron bootleg, set 1), Missile Combat (Videotron bootleg, set 2) and Missile Combat (Sidam bootleg) boot. They still need inputs and sound (AY8912). - PinMAME: Fixed year info in Ator (ID 06485) - Pole Position II . Corrected DIP switches and locations for clones Gran Premio F1 (Italian bootleg of Pole Position II) and Gran Premio F1 (Spanish bootleg of Pole Position II) . Use modern DEVCB features to make extra 4-bit input ports unnecessary - Power Card: Dumped the CY7C291A from inside of the custom CPU. Added technical notes. - Puzznic: Confirmed all sets uses same MCU, correct MCU clock as per PCB photo - Space Cruiser: Added "P1/2 Continue" button. Note: The game has a dedicated button to continue the game if all lives are lost. The player has to enter a coin and press the "Continue" button. - Super Real Mahjong Part 3: Added dipswitch settings for clone Real Mahjong Gold Yumehai / Super Real Mahjong GOLD part.2 [BET] (Japan) (ID 05599) - Thayer's Quest: Fixed keyboard scanning and keyboard - Varia Metal and Witch . Added busy status read to ES8712 sound and notes on device. Misc. ES-related code cleanups. . Added a reset line callback for the ES8712. This will be used to reset the MSM5205/MSM6585 when the implementation is rewritten to use those devices. For now, it's used for IRQ generation in vmetal, whose program seems to use a separate gate to prevent unwanted IRQs when the device is reset (gcpinbal appears to do the same with a rather subtle difference). Removed the probably bogus and already unused auto-repeat feature from the ES8712 device. All known games that loop samples do so by status polling or IRQs. . Varia Metal sound improvements: Implemented IRQ used to loop ES8712 music (much like gcpinbal). All extant samples should be playable now. Reduced unreasonably high OKIM6295 volume. Removed MACHINE_IMPERFECT_SOUND flag. - Xain'd Sleena: Fixed problem with edge case in 68705 timer overflow interrupt. This fixed the missing enemies in the second stage of Xain'd Sleena (ID 06499). - Yam! Yam!?: Use own program map, added note about undumped PROM and removed unneeded variable - Zig Zag: Install handlers and banks using address map rather than hacking them in with DRIVER_INIT - Dipswitch fixes in aristmk5.cpp, avt.cpp, funkball.cpp, lastbank.cpp, nbmj9195.cpp, polepos.cpp, shanghai.cpp and srmp2.cpp - Fixed rom names in aquarium.cpp, asuka.cpp, freekick.cpp, galgames.cpp, midwunit.cpp and suprnova.cpp - Description changes of The Chariot Challenge (04J00714, Venezuela), Excalibur (French), Gallop Racer 2 (Export), Gamshara (Japan, 10021 Ver.A), The King of Fighters '98 - The Slugfest / King of Fighters '98 - Dream Match Never Ends (Korean board, set 1), The King of Fighters '98 - The Slugfest / King of Fighters '98 - Dream Match Never Ends (Korean board, set 2), The King of Fighters '99 - Millennium Battle (Korean release, non-encrypted program), Omega (bootleg?) and Print Club 2 2000 Summer (J 000509 V1.000) - Renamed (excalibr) to (excalibrf), (galpans2) to (galpans2j), (gamshara) to (gamsharaj), (kof99k) to (kof99ka), (omega) to (omegab), (petshop) to (petshopa), (pitboss) to (pitboss04), (pitbossa) to (pitboss03), (pitbossa1) to (pitboss03a), (pitbossb) to (pitbossps), (pitbossc) to (pitbossm4), (vblokbrk) to (vblokbrka), (wamazon) to (wamazona) and (wamazona) to (wamazon) - MAME . 3rdparty . Updated BGFX, BX, Catch, GENie, GLM, libjpeg, LUA, Sol2 and zlib. BX is now static library. . PortAudio: Fixed issues on 32-bit builds and clamp latency. Minimal const-correctness. . Use std::sort instead of qsort in listdevices (mame\clifront.cpp) . Make devcb objects more consistently available for further configuration . Arcade build restructuring: Created EFO, Promat, Terminal and Wing projects to help reduce the weight of libmisc. Eliminated Veltmeijer Automaten project (only two games by this company are in MAME, and one actually on Excellent System hardware). . Cheat engine: Fixed crash on loading invalid cheats, MAME now logs an error and continues (ID 06477). . Hashing util: Fixed Hashing helper classes (util\hashing.h) . PLUGINS . hiscore.dat: Use videoram share for Missile Command scores so madsel isn't disturbed. Don't permit hiscore parse scripts to modify the shared environment or save any persistent data. Print_verbose unimplemented stuff. . Fixed unable to load DAT file using multiple paths (plugins\data\load_dat.lua) (ID 06500) . Sync with upstream (util/client_http.hpp) . Make object finder arrays meet more Container/Sequence requirements (allows range-based for and many algorithms to work) (emu\devfind.h) . Added RGB unit testing (video\rgbutil.cpp). . LIST command format changes: Changes to output produced to better deal with maximum limits of certain items. Fixed issue with -LISTROMS output not displaying hapyfsh2 rom sizes correctly. . SOFTWARE LIST . Allow softlist software parts to use different interfaces: imgcntrl: Don't assume first software part, find part with correct interface. swlist: Check all software parts for matching interface when populating list of software lists. softlist_dev: Check all software parts when finding approx matches. . Revert 'Make "requirement" field in softlists actually work (MAME 0.182; MT 6464)' - Compiling . Fixed building using system utf8proc . Fixed CHD build . Converted m_p_chargen into a required_region and associated cleanups. . Removed device_config_complete from numerous devices that don't really need it . Make emu\emucore.h a bit more readable . Removed emu.h from headers. Per Vas' request. If the compile fails for you (i'm thinking OSX and Windows native debuggers here in particular), add '#include "emu.h"' as first include of the cpp files that fail. Due to our use of precompilation and forced inclusion, emu.h must be included as the very first non-comment thing we do if we want to be sure MSVC compiles are identical to GCC/Clang ones. Doing it directly instead of through an include increases the correctness probability by a magnitude. . Removed #undef min/max, we already have NOMINMAX now in scripts. . Cleanup headers of not used friend classes . Use size_t for sizes and algorithm for algorithms. Fixed up some files that were getting linked into multiple libraries. Add missing virtual method to sh2 peripheral class. Put shortname in driver struct for locality. Made LRU cache use shared pointers for safety. - Debugger: Make debugger fall back from binary to default base on 0b prefix. This makes expressions like 0B12 parse as hex in hex memory spaces. Where there's ambiguity (e.g 0B01) binary takes precedence. 0.182 - New games: Enma Daio (Japan), Hangzo (Japan, prototype) and Poly-Play (ZRE-PP) - New Working games: Future Flash, Laser Base and Sky Robo/Tatakae! Big Fighter - New Non-Working games: Happy Fish (V2 PCB, 302-in-1) and Mega Bonus Star II (Euro, Millennium Edition) - New clones: Dynamite Duke (Japan, 25JUL89), Fighting Fantasy (Japan revision ?), King of the Monsters 2 - The Next Thing (older), Poly-Play (ZRE-PP - Czech), Robo Army (NGM-032 ~ NGH-032), Saulabi Spirits / Jin Saulabi Tu Hon (Korean release of Samurai Shodown II, set 2), Skull Fang (Asia), Star Fighter (bootleg of Astro Fighter), Star Horse Progress (backup data), Star Horse Progress (live, Rev A), Star Horse Progress (main screens, Rev B), Star Horse Progress (sound & backup, Rev A) and World Kicks (Japan, WK1 Ver.A) - New PinMAME games: Ator, Bloody Roller, Cobra (Playbar), Eight Ball Champ (Spain, Z-Pinball hardware), MotorDome (German) and Slalom Code 0.3 - New drivers: hapyfish.cpp - New devices: ad7224, arkanoid68705p3, arkanoid68705p5, efo_zsu1, m68705p3, m68705r3, namco_c139, namco_c148, namcoio_gearbox, netlist_logic_output, netlist_rom_region, pps4_2, taito68705, taito68705tiger, z80sio, z80sio_channel and zn429e - New mame.ini options: HTTP SERVER OPTIONS: http, http_port and http_root. PORTAUDIO OPTIONS: pa_api, pa_device and pa_latency. - COP400 CPU . Fixed disassembly of jump instructions and used decimal for LDD/XAD . Fixed instruction timing and time-base counter . Fixed debugger behavior on skip . Removed non-working, incomplete COP440 code. Fixed COP444 disassembly. Properly separated COP444L from COP444C. . Fixed debugger register/flags view - i386 CPU: Logerror for invalid rep rather than fatal error (cpu\i386\i386ops.hxx) - M6805 CPU . Fixed state of input lines being lost on reset . Reduced massive amounts of redundancy by templating opcode handlers . Replaced the epic switch statement with a dispatch table . Fixed timings for a few instructions . Turn a lot of macros into inline methods so they can be scoped down . Correct affected flags in comments on opcode handlers (actual code was correct) . Removed unnecessary flag calculation tables . Added a table with CMOS instruction timings - M68705 CPU . Taito 68705 refactoring (40love.cpp, bigevglf.cpp, bking.cpp, bublbobl.cpp, buggychl.cpp, flstory.cpp, lkage.cpp, lsasquad.cpp, msisaac.cpp, nycaptor.cpp and slapfght.cpp). . Improvements to I/O emulation in new MC68705 device . All internal memory handlers are now private members . DDRs zeroed when device reset (as per datasheet) . Port writes no longer transmit bits not set in DDR . DDR updates may cause port bits to be written out (this is important) . Added external read/write handlers for ports . Moved 68705 timer logic out of Arkanoid driver and into 68705 core . Refactoring and improvements . Moved 68705 devices into their own file . Made P3, P5 and U3 variants and made them load bootstrap ROMs . Implemented EPROM control (write is stubbed out with a logerror) . Implemented differences for open drain I/O ports . Base device with peripherals should really derive from the 6805 device directly, not the 68705 devices, as I/O ports are present on mask devices (e.g. 6805P2). All drivers and devices that were using M68705_NEW have been changed to M68705P5 - someone who knows the drivers better should fix them up. . Fixed pushed input ports, implement EPROM write (not saved yet). Save EPROM contents using NVRAM mechanism. . Disassemble memory addresses symbolically . Re-implement timer/counter . Support MOR-controlled mode . Correct count direction . Correct startup and reset states . Exposed more more internal registers through the state interface . Shows contents of registers that can't be read by program code . Completely eliminate the concrete 68705-without-peripherals class . Added logmacro.h inspired by Edstrom's log macros (emu\logmacro.h). Added lots of logging to help trace issues. . Taito 68705 interface improvements . Moved stuff arkanoid/puzznic have in common with other games to new abstract base class . Got rid of the unnecessary hacks for Big Event Golf, it doesn't need anything special . Moved Xain'd Sleena M68705 stuff to the common interface class. Fixed regressions in tokio and daikaiju. . Started instantiating common device finders with the devices to marginally improve build/link time . Use common Taito 68705 interface device in Mania Challenge and clone . Removed non-obvious mcu_status_r and semaphore_r members and move to drivers (varies by system) . Slap Fight M68705 functionality can be safely folded into base class so do so . Removed leftover crud from driver state classes . ddragon.cpp, maxaflex.cpp, qix.cpp, stfight.cpp, taitosj.cpp, bub68705 and changela use new MC68705P3 core. mexico86 use new MC68705P3 core, simulate synchronous latches better. . Added MC68705R3 for Pipeline. Renegade use common Taito 68705 hookup. . quizpun and pitnrun use new MC68705P5 core, MCU now gets timer interrupts correctly. retofinv use common Taito MCU hookup. . ADC is stubbed out with logerror (pipeline doesn't use it at all) . Bootstrap ROM is believed to be identical to U3 but need to confirm . tigeroad.cpp . M68705 cleanup and modernisation . Split out bballs and pushman state classes . Use new MC68705R3 core for Pushman (this one uses port D - another test case) . Make Pushman MCU hookup believable (internal registers can't be in shared RAM). Better understanding of how CPU reads MCU data/status in Pushman. . Use derived memory maps rather than installing handlers in init members . Simplify protection MCU simulation in Bouncing Balls using pushman hookup as a guide. Bouncing Balls appears to use a simpler single-word arrangement for messages from CPU to MCU, perhaps so it can use a 28-pin MCU (pushman MCU receives the command byte on port D, which the 28-pin parts lack). - PowerPC 4xx/6xx CPUs: Clear two LSBs of the branch target address. This is what a real CPU does in order to prevent branching to an invalid address. - Z80/Z180 CPUs . Reconfigure Z80 daisy chain behavior to use the standard vector for an external IRQ, rather than a bogus one from the last device in the chain. . Enabled Z80 daisy chain on Cedar Magnet sound board (fake IRQ still necessary, though vectors are correct now). . Source note regarding IM 2 behavior contrary to Zilog datasheet (was fixed way back in 0.35b11) . Simplify daisy-chain IRQ ack routine (get rid of delegate member) - DAC sound . Replaced '8-Bit R-2R DAC' sound with MC1408 in archrivl, hiimpact, joust2, pigskin, shimpact, smashtv, trisport, trog, s3.cpp, s4.cpp, s6.cpp, s6a.cpp, s7.cpp, s8.cpp, s8a.cpp, s9.cpp, s11.cpp, s11a.cpp, s11b.cpp and s11c.cpp. . Replaced '8-Bit R-2R DAC' sound with AD7524 in jdreddp, mk, narc, nbajam, nbajamte, term2, totcarn, wpc_an.cpp, wpc_dot.cpp, wpc_flip1.cpp and wpc_flip2.cpp. . More DAC identification and Namco sound research (sound\dac.h, namco.cpp, drivers\byvid.cpp, galaxian.cpp, junofrst.cpp, mappy.cpp and namcos1.cpp) - MSM5205 sound: Use s32 instead of int32_t for consistency. Architectural cleanups. - Sound Interface . New callback for generic_latch_8/16_device . Added MCFG_GENERIC_LATCH_DATA_PENDING_CB to raise and lower a line automatically as the latch is written and read. This should make sound IRQs easier to deliver and reduce the incidence of HOLD_LINE in drivers. . Updated a few drivers to use this new callback (dec0.cpp and discoboy.cpp). . Invert logic (latch_read -> latch_written). Also fixes initial callback after start. . Soundlatch cleanups in ashnojoe.cpp, crospang.cpp, crshrace.cpp and dcheese.cpp - 6821 PIA: Updated the LOG mechanism - 68681 DUART: Preliminary support for SC28C94 QUART. Channels C and D can now transmit properly for sc28c94. - 8251 USART: Make receive more reliable, cleaned up a little - CHDMAN: Added support for hard disk templates and added some initial ones - Discrete Netlist . Added LM747, LM747A and 2N2565 . Roms now specify an identifier in the netlist. The identifier is used to load data from a source_t implementation. This allos a consistent approach in netlists independent of netlist implementation. Both sources code and parameter code needed quite some rewrite to support this. . Fixed nullptr exception and loading roms in two devices . Added "-r" option to nltool to pass path to a folder containing rom files. Multiple "-r" options may be given. Zip files are not supported, just individual files. . Fixed 74123, 74629 and some internals. Make Mario Bros. sound netlist compiling again. . Moved proxy code into separate file. Some preparation for future changes on proxies and chip families. . Analog to digital proxy rework. Properly handle connected inputs when creating a-d proxy. Aligned a-d proxy to d-a proxy class structure. . Align noexcept usage. Rename register_con to add_terminal for clearity. Changed cstr() ==> c_str(). . Simplify code. Introduced consistent approach to loading macro devices. Changed nltool "listdevices" command accordingly. Fixed some bugs which surfaced by this exercise. . Refactored factory. Use namespace "factory" instead of prefix factory_ all over the place. Fixed parsing of macro devices. Fixed pin assignment 4001. . Update to input definition file (nl_examples\congo_bongo.csv): Create congo bongo sounds with ./nltool -c run -t 10 -i nl_examples/congo_bongo.csv -f nl_examples/congo_bongo.c -l RO.1 and convert to wav with ./nlwav -i log_RO.1.log -o t.wav. Sounds played are: GORILLA, BASS_DRUM,CONGA_H, CONGA_L, RIM0 and again GORILLA. Using Solver.PARALLEL=1 significantly increases performance from 270% to 380%. However, this has to be taken with a grain of salt. Enabling this on predominantly logic netlists can severly kill performance. . Added FREQ parameter to MM5837 noise generator. Specs in datasheet range from 24000 Hz to 56000 Hz. Properly use VDD for output reference voltage. . Added SIGFPE enabling code to plib\pexception.*. Moved plib exceptions into these files as well. The code uses which is part of C++11 standard. Non-standard glib extensions are currently only used on linux and (i386 or x86_64). . Fixed some pedantic Clang warnings. Fixed Clang "-Wno-weak-vtables" warnings in netlist source. Refactored code along the way. . Make destructors virtual on base classes. intX_fast_t may depend on compiler implementation and thus is not suited for save states. . Added skeleton drivers to nl.lst (commented out) . Fixed startup when there are no timestep devices present, i.e. capacitors or inductors. . Removed parameter GS_THRESHOLD and misleading solver parameters. It is now outdated. . Make stop be called again. Fixed METHOD parameter. No need for a virtual stop which is needed only by the solver. Reduced memory footprint for parameters. . Moved netlists into macro folder. nlwav now accepts stdin and stdout: cat log_RO.1.log | ./nlwav | play - . Removed gnd() method. Fixed potential reset and initialization issues. Fixed timing issue in CD4538. Added "pow" (power) to the function model. . Added code to remove devices connected only to rail terminals. Prepare source for consistent error message usage. . Introduced a more structured approach to models. Added more documentation to diode and bjt model. . Moved analog devices into "netlist::analog" namespace. Added documentation to opamp model. . Preparation work for automatically generated include file for devices. nltool now is able to create all defines from the factory definitions. This will reduce the number of places needed to touch when adding devices and always ensure that the parser and statically compiled netlist code use the same syntax. This will enable us to delete most device include files, e.g. nld_74107.h. Netlist usage to create this header file: ./nltool -c header > src\lib\netlist\devices\nld_devinc.h. This is not yet used in production. It will be enabled after additional tests. . Keep track were registry elements are created. Register all devices using NETLIB_DEVICE_IMPL. Fixed encoding issue. . Refactored reverse polish notation evaluator into own source files . Added function parameter to current and voltage sources VS and CS. You can now use those to e.g. produce a sine wave. . Changed code to allow devices to optionally be treated as dynamic or timestepping devices . Converted warnings and fatal log messages to constants. Also refactored some code to ease the exercise. . Default argument on plib::environment now optional. Assume string literals are UTF8 in netlist code. At the same time, any char pointer has to be explicitly converted to pstring by specifying an encoding. Not yet optimal, but certainly better than what was there before. Removed unneeded methods from pstring. . Make streams provide binary access only. Use putf8_reader and putf8_writer to actually access streams. Replaced some char * parameters with pstring where appropriate. Minor code refactoring and move functionality were it belongs. - Floppy . Inhibit reading/stepping until drive has spun up; this concerns drives/controllers that do not use the READY line . Don't crash on tracks with no data (formats\imd_dsk.cpp). Accept images produced from 8" SSSD disks in TeleDisk loader (formats\td0_dsk.cpp). . Added TODO comments; revert stp_w ignore on spin-up until further evidence. . Minor floppy internals improvements (imagedev\floppy.cpp) - Imgtool . Miscellaneous cleanups and C++ modernization (CoCo/RS-DOS) . Changed to use wcout/wcerr in order to support Unicode console output . Changed charconv from an enumeration to an interface. Fixed recently introduce bug on attribute listings. . Fixed recently introduced bug in the code that emits usage text - MC68230 PIT . Don't forget all externally driven line states when the DDR changes. Return proper port values when line states are pushed instead of pulled. . Added support for the PSR register, H1-H4 sense and direct pin levels - Namco Custom . Rewrote Namco C148 device (Interrupt Controller; namcos2.cpp and namcos21.cpp) . Rewrote Namco C139 device (Serial I/F Controller (SCI); namcos2.cpp and namcos21.cpp) - TMS9927 video: Scrollup fix. Avoid reconfiguring all the CRTC parameters on any cursor shape change, which was resetting the scroll counter. Fixes scrollup for the (MESS) Otrona Attache. - TTL: Rewrote 74153. Only output state when the level changes. Use 74153 for the serial clock selector in (MESS) Apricot PC. - Z80 CTC: Fixed undocumented Z80 CTC 'on-the-fly' mode switch; internal timer didn't stop. - Z80 SCC: Improved LOG printouts. Added logmacro.h inspired by Edstrom's log macros (emu\logmacro.h). - aerofgt.cpp, expro02.cpp, ddenlovr.cpp, f1gp.cpp, feversoc.cpp, fuukifg2.cpp and gaelco.cpp: ACCESSING_BITS cleanup - aristmk5.cpp: Added SPI and hopper emulation, allowing non-US games to boot. - arkanoid.cpp . Moved 68705 timer logic out of Arkanoid driver and into 68705 core . Converted Arkanoid 68705 interface to device. Arkanoid bootlegs use P3 MCUs. . Confirm MCU reset also resets semaphore flags. Fixed watchdog to match PCB tracing and updated some comments. Non-arkanoid games lack muxed analog inputs. - armedf.cpp and tecmo.cpp . Dumped i8751 MCU for Sky Robo / Tatakae! Big Fighter and added basic hookup to make it work (Game now playable) . Clean-ups and changed sound CPU to use 24MHz/4 in all games . Fixed screen refresh rate in Tatakae! Big Fighter. Fixed service switch and updated DIPS/inputs with locations and content to match those showing on screen and observation. Added debug code for initial area. . Clocks verified for Sky Robo / Tatakae! Big Fighter . Legion and Rygar have YM3526 instead of YM3812 . Documented DACs for Legion, Terra Force and Tatakae! Big Fighter - asuka.cpp: Added 74LS157 for MSM5205 interface in Asuka & Asuka and Maze of Flott - atarittl.cpp: Split Stunt Cycle into its own netlist. Added logic probe to stuntcyc for debugging, does not seem to work, pushing so others can take a look. Fixed some NOR gates that should have been NANDs, fixes the playfield. Fixed stuntcyc/nld_7485 regression. - atlantis.cpp, iteagle.cpp, lindbergh.cpp and midzeus.cpp . Squelch logerror from interrupt control (machine\midwayic.cpp) . Added better game selector and use register values for 'Skins Game' direct rendering (video\zeus2.cpp) . Changed waveram viewer to use V key to fix conflict with game controls (video\zeus2.cpp) . Consolidate waveram1 writing and add more logging for models (video\zeus2.cpp) . Added alternative texture loading subroutines to video\zeus2.cpp . Clean up Atlantis driver and added info . Moved interrupt line and pin functions into PCI device and added variables (machine\pci.c) . Added legacy mapping based on prog i/f register (machine\pci-ide.cpp) - atvtrack.cpp . ATV Track improvements, game code running now as it should . Extract CPU initial boot from FPGA bitsream. Yep, its possible, at least for such FPGA family. . Implement NAND Flash erase and program commands, game is running now. . Hooked GPU IRQs control. Basic simulation of GPU's internal CPU for game init speedup. Documented IO-port multiplexing. - cdi.cpp: Decapped/dumped an MCU for Quizard (v1.8) and Quizard 4 Rainbow (v4.2) and clones - cedar_magnet.cpp . Conversion of the Cedar Magnet board from a base device class to a mix-in interface . Emulated EFO ZSU as main variant of the Cedar Magnet sound board. Modernize ZSU soundlatch/IRQ mechanism. More hardware notes. Various associated code cleanups. . Enabled Z80 daisy chain on Cedar Magnet sound board (fake IRQ still necessary, though vectors are correct now). - chihiro.cpp . Xbox graphic improvements . Added supported for packed float vertex color r11g11b10f . Corrected drawing of indexed vertices primitives . Added "xbox nv2a_wclipping" debug command. Small graphics adjustments. - chinagat.cpp and ddragon.cpp: IRQ cleanups - cvs.cpp: Show popmessage on unknown writes only if VERBOSE is defined - deco32.cpp: Added preliminary global volume control for Night Slashers and Fighter's History - gkigt.cpp: Hook up NVRAM and added initialized defaults for Multistar 3 and Multistar 7 2c - gladiatr.cpp . Separate Gladiator and Ping-Pong King state classes . Eliminated tagmap lookups on input read. This fixes coinage in clone Great Gurianos (Japan?). . Hook up all four MCUs in Gladiator and clones. The MCU doesn't like impulse coins, added hack to simulated sets to make them work with non-impulse coins. . Confirmed clocks with original board . Fixed coinage dipswitches have no effect in gladiatr, ogonsiro and gcastle using MCU simulation (ID 06468). Note: MCU simulation replaced with bootleg MCU programs in all affected sets. They now start with one credit due to MAME's memory initialisation, but the coinage DIPs work correctly. . Use input changed member - gsword.cpp . Identified josvolly "AA 007" chip as NECD8255A for reading input ports as shown by CAPS0ff die shot . Split out gsword and josvolly functionality from base driver class . Hooked up josvolly MCUs for communication between CPUs. Added DIP locations to josvolly based on test mode. Named unknown DIP settings after the location they control in main RAM. . Run the MCUs faster in josvolly to get it back to same state as with simulation. Identify cabinet type dipswitch. Removed now-unnecessary MCU simulation. Note: I still don't want to drop the NOT_WORKING flag as the game's clearly still not quite right, but it's as playable as it was previously now, but using original MCU code for CPU comms. The clocks are still guesses, just better guesses. - gts1.cpp: PPS-4 refinements and modernization: Split PPS-4 and PPS-4/2 device types; better explain and properly implement the difference. Use callbacks for discrete input/output ports instead of fake memory addresses. A17xx reads the address bus directly during I/O accesses. Misc. chip documentation. - harddriv.cpp . Hooked up the first serial port as an RS232 device to enable linking. This allows one to link up two Race Drivin' using null-modem and bitbanger (38400 8E1; two instances of MAME running Race Drivin' in Link mode: . Added "single screen"-layouts for clone Race Drivin' Panorama - hng64.cpp: Added a dump of one of the HNG64 TMP87PH40AN I/O chips. Note: This came from a sample OTP chip that was purchased for testing / analysis, not one of the chips actually taken from a HNG64 unit! It just ended up turning out to be the case that the sample chip had clearly been pulled from such a board at some point in the past. As a result it isn't clear if this is the driving, shooting or fighting MCU type. Contains the internal string "64Bit I/O Controller Ver 1.0 1997.06.29(C)SNK". A CPU core is needed. - jollyjgr.cpp: Updated readme and corrected clocks - midyunit.cpp: Identify DACs used in most Midway and Williams games - namcos2.cpp: Added Namco C148 device. Finest Hour accesses 0x461xxx in service mode, make the whole area in Namco System 2 driver to be mirrored. - namcos21.cpp . Added preliminary Gear Box input for Driver's Eyes. Added mechanical clutch and make it to automatically set to neutral on press, added debug for current gear. Wrote a device core for the Namco 6-speed gearbox (used by Driver's Eyes, Ridge Racer DX and Ace Driver). . Added input labels (Gun-, Missile- and Viewport Change Button) for Cyber Sled. Removed unused 4th button. . Untangle screen updates into different routines and other clean-ups. Added winrun_bitmap_draw. . Added SCREEN_RAW_PARAMS. Added Namco C148 device to Namco System 21. . Fixed misplaced controls in winrun, winrun91, winrungp and driveyes (ID 05313) . Hooked up Namco C148 to Winning Run GPU. Fixed POSIRQ line and POS interrupt generation for Winning Run, fixes map indicator in Winning Run '91. Fixed trail tachometer drawing in Winning Run. - naomi.cpp . Added 'Master CPU Clock Rate (Cheat)' configuration for main CPU unscaled clock. . Moved debug inputs into machine configuration . Added inputs for Mars TV . Made doa2m, dankuga and dariusgx parents. NAOMI flash carts rom names consistency for inunoos, sambap, shorsel and soulsurf. . Moved Atomiswave and NAOMI 2 specifics into own state machines. Research & document master/slave ROM boards feature. - polyplay.cpp . Added newer ZRE-PP based Poly-Play version/board (SIO not yet hooked up) . Documented differences in hardware. Added a check export version with the new menu. . Fixed undocumented Z80 CTC 'on-the-fly' mode switch; internal timer didn't stop. - rohga.cpp . Added dipswitch locations to all sets. Filled in missing 'Difficulty' switches for Schmeiser Robo. Filled in most switches for Hangzo. . Fixed cropped attract mode text in clone 'Wolf Fang -Kuhga 2001- (Japan)' (ID 06422) - segasp.cpp: Added missing EEPROM 93C46 device to fix -validate errors - stfight.cpp . Fixed ADPCM control . Latch ADPCM counter on the correct edge . Removed unused members, eliminate function statics and fix up save state registration. . Reduced runtime tagmap lookups - stlforce.cpp: Fixed OKI6295 speed (ID 06460) - stv.cpp . Clean up comments and BAD_DUMP flags in choroqhr and prc2ksu. NOTE: Print Club 2 2000 Summer fails IC7 check but rom read consistently, might be okay, might not be - supposedly ST-V print carts are known to have bad ROM tests(?). . Added preconfigured NVRAM to Print Club 2 2000 Summer and a new one to Choro Q Hyper Racing 5 - superqix.cpp . Bare minimum work to extricate hotsmash/pbillian from superqix_state and cleanup. Reduced tagmap lookups. . Hot Smash use M68705P5 core instead of in-driver peripherals - taito_f3.cpp: Fixed missing graphics on state load - taito_l.cpp . Split giant state class up into family tree, reduced tagmap lookups. . Re-use new Arkanoid 68705 interface device for Puzznic, eliminate Puzznic protection hacks. Removed crud from puzznic bootleg. . Clean up ROM unscrambling function for clone Plotting (World set 2, protected) . Shuffle taito_l family tree, should fix missing device errors. - tmaster.cpp: Minor doc update about the CES Galaxy Games carts - Archimedes (aristmk5.cpp and ertictac.cpp): Finally correct audio frequency setting - Aztarac: Verified and correct labels/locations and added newly dumped video board PROMS for this machine - Bagman: Fixed clone Le Bagnard (bootleg on Crazy Kong hardware) inputs and shuffle PROMs for better colors (game still tends to crash) - Battle Cross: Flipscreen problem (background scroll) - Bazooka [TTL]: Redumped clone Bazooka (Brazil) [TTL] - Biomechanical Toy: Dumped clone Biomechanical Toy (Ver. 1.0.1884) sound roms, fixes audio in this version. - Car Polo: Rewrite 74153. Only output state when the level changes. - Combat School: Fixed score line is not flipped with screen in Combat School an clones (ID 04907) - Eeekk!: Input port_name clarifications as well as further details for 'Difficulty' dipswitch settings. Fixes 2P Start Button map is missing (ID 06461). - Fever Soccer: Use 16-bit handlers for input reads; implement IRQ ACK. - Future Flash and Laser Base . Fully reverse engineered and emulated the Z1 protection IC (Games now playable) . Replaced laserbas macros with lambdas, make operation of bit selection more obvious . Fix for building with Visual Studio which doesn't support GCC extension "?:", simplify code & make spacing consistent. The Z80 is probably not running at 66mhz. - Joyful Road: IRQ cleanups. Eliminate HOLD_LINE while remaining true to schematics. Let main CPU properly acknowledge NMI. Use one VBLANK handler instead of two. Correct audio CPU clock divider (should be same as PSGs according to schematics). Misc. stylistic streamlining. - Karate Champ: All IRQs/NMIs acknowledged. Added 74LS157 for clone Karate Champ (US VS version, set 1). - Mahjong Shinkirou Deja Vu: Demoted Mahjong Shinkirou Deja Vu and clone Mahjong Shinkirou Deja Vu 2, see MT#00964 for more info. - Mario Bros. . Hook up Luigi walking sound in netlist mario sound implementation. Mario driver now uses netlist audio implementation instead of discrete implementation. The previous discrete sound emulation has not been removed yet because it still contains a lot of documentation. . Fixed compile for I8039 test code in mario sound - Midnight Resistance: Added MCU (disabled) to clone Midnight Resistance (bootleg with 68705) config - Number Crash: Added PCB readme - Out Run: Added in Speed Indicator for clone 'Out Run (sitdown/upright, Rev B) (Enhanced Edition v1.1.0)'. The Enhanced versions use DSB-4 for showing speed in km/h or MPH. This is a new additional the original sets didn't support. - PinMAME . Device hookups and memory maps in joctronic.cpp, following available schematics. . Added a ridiculously incomplete dump of the CPU ROM to Punky Willy . Tried to make some sense of the DIP settings in the service manual of Break '86. Update notes in vd.cpp source. . Hook up ZSU1 to Skill Flight (Playmatic) and Phantom Ship. Modernized ZSU soundlatch/IRQ mechanism. More hardware notes. Various associated code cleanups. . Added AY8910 reads to peyper.cpp . Identify DACs used in most Midway and Williams games . Identified EFO90503 in play_2.cpp and note usage; improve notes on EFO sound boards . Identified unknown DAC in byvid.cpp - Plump Pop: Verified that Plump Pop uses the same M-Chip as Extermination and Dr. Toppel. Added and corrected labels, locations and chip types for several ROMs/PROMs as well as updated notes, based on PCB pictures. - Pole Position II . Preliminary work on Gran Premio F1 sound system. Redumped some faulty roms for polepos2bs (the former speech ROM has bit6 fixed), plus added proper bipolar PROMs dumps. Documented the 'A', 'B' and 'C' board edge connectors for polepos2bs. . Sound improvements for bootlegs: Working Spanish/Italian voices in polepos2bi and polepos2bs. DAC for passing car sound in topracern, polepos2bi and polepos2bs. These bootlegs may still be missing explosion sounds. - Pyon Pyon Jump: Documented board 7908B pinout and bank #1/2 DIP switches - Sky Adventure: Increased buttons usable from 2 to 3 which matches port test in service mode as well as matching information in the conversion manual - Sky Army . Fixed screen flipping in cocktail mode . Re-added second AY-3-8910A that generates explosion sounds; the claim as to its absence made in 2003 was probably based on less accurate AY8910 emulation and/or a stripped PCB. . Added coin counter - Stadium Hero: Corrected tilemap colors - Super Qix: Deprotected an original Japan/World Super Qix 8751 MCU and verified that the presumptive B03 // 03 MCU dump is correct - Tang Tang: Added a preconfigured NVRAM so it won't boot with invalid settings - Thayer's Quest: Fixed COP400 divisor. Keyboard WIP. - Zwackery: Perfect quantum not needed for this driver, restores previous performance level. - Input port . Service mode DIP switch adjustments . Changed how input sequences are assigned to service mode DIP switches. The frontend now assigns them the default sequence for the non-toggle service mode/test switch (not necessarily the F2 key, the previously hardcoded default) unless the machine happens to have one of those as well (as is somewhat common with gambling games). . All DIP and configuration switches are automatically defined as toggle fields to make assigning input codes to them easier. Fixed for a potential problem if natural keyboard input gets disabled while machine is running (emu\natkeyboard.cpp). . Fixed for a potential problem if natural keyboard input gets disabled while machine is running (emu\natkeyboard.cpp) - Dipswitch fixes in armedf.cpp, aztarac.cpp, gsword.cpp, naomi.cpp, pacman.cpp, rohga.cpp, vd.cpp and vicdual.cpp - Fixed rom names in kangaroo.cpp, midwunit.cpp, ms32.cpp, pse.cpp, segae.cpp and tnzs.cpp - Description changes of The Double Dynamites (Japan, 13NOV89), The Double Dynamites (US, 13NOV89), Dynamite Duke (Europe, 03SEP89), Dynamite Duke (Europe, 25JUL89), Dynamite Duke (Japan, 03SEP89), Dynamite Duke (US, 25JUL89), F-14 Tomcat, New Double Bet Mahjong (bootleg of Royal Mahjong) [BET] (ID 05392), Poly-Play (ZRE), Print Club 2 2000 Summer (J 000509 V1.000), Saulabi Spirits / Jin Saulabi Tu Hon (Korean release of Samurai Shodown II, set 1), Smashing Drive (UK), Star Horse (live and backup), Star Horse (main screens) and Star Horse Progress (satellite, Rev A) - Renamed (starhrcl) to (shorse), (starhrct) to (shorsel), (starhrpr) to (shorsepr), (starhrse) to (shorsem), (starhrsp) to (shorsep) and (wldkicksj) to (wldkickspj) - MAME . HLSL . Changed cached texture format to floating point . Removed hacks in hlsl\phosphor.fx . Tweak presets for ini\presets\raster.ini, vector-mono.ini and vector.ini. . Changed cache texture format to floating point for precise for phosphor and ghosting shaders (render\d3d\d3dcomm.h, d3dhlsl.cpp and drawd3d.cpp) . 3rdparty . Updated zlib to 1.2.9 . Updated BGFX, BX and GENie . Added initial HTTP/HTTPS webserver/websocket server support. Added websockets as well. . PortAudio library update and backend. Fixed memory leak and log error checking (sound\pa_sound.cpp). Fixed PortAudio MinGW cross-compilation (3rdparty\portaudio\src\hostapi\wasapi/pa_win_wasapi.c). Fixed allowed latency range in PortAudio. Simplify the audio buffer and fix a wrap-around issue. . Added 'WAIT' function to LUA engine . UI . Added service mode DIP switch adjustments (emu\ioport.cpp, ui\info.cpp and ui.cpp). Removed find_dipname. . Changed ui\filesel.cpp to use wstring_from_utf8() . ROMs over 2 GB no longer reported as negative size in XML (mame\info.cpp) . PLUGINS: Updated hiscore.dat . Added handy ROM filename discrepancy spotter scripts . UWP (Universal Windows Platform): ASIO fix. Already sent pull request upstream. Fixed alt key input. . SOFTWARE LIST: Make "requirement" field in softlists actually work (ID 06464). MAME's architecture for software loading remains gruesomely overcomplicated, and this makes it even less efficient than it already was. However, I think more invasive cleanups would best be left until later. - MAC OS X . Fixed OSX build (CGFloat; osx\ . Autoscroll log window for OS X Cocoa debugger. Improved view scroll behavior. - Compiling . Move special windows.h include directives to build defines . Added JuliaLang utf8proc as a third party library with wrappers . Make DEBUG=0 and SYMBOLS=0 behave (makefile) . Fixed MSVC compile (src\3rdparty.lua) . Removing unnecessary callback (MSVC 2015 error; emu\main.cpp) - Debugger . Parse octal expressions (prefixed by '0'). Use 0o for octal prefix, added support for binary with 0b a la C++ and uppercase radix speifier (debug\express.cpp). . Added a facility to allow logerror output to reside in traces. As a consequence, the debugger 'trace' command was changed so that the third parameter is a list of '|' delimited options. . Created a new debugger command 'tracesym'. 'tracesym' is intended to be a shorthand of 'tracelog', whereby the user doesn't have to specify a format string; the default format string is used. . Added logmacro.h inspired by Edstrom's log macros (emu\logmacro.h) 0.181 - New games: Eeekk!, Miss World 2002 and Power Flipper Pinball Shooting - New Working games: Tokio / Scramble Formation - New Non-Working games: Knights of Valour 3 HD (V105), Multistar 3 and Royal Ascot II - New clones: Flicky (128k Version, 315-5051, larger roms), Golden Crown Hopper (Dutch, Game Card), Knights of Valour 3 HD (V101), Knights of Valour 3 HD (V102), Knights of Valour 3 HD (V103), Knights of Valour 3 HD (V104), Mahjong Clinic (Japan, set 2), Momoko 120% (English text), Multi Wars (bootleg of UniWar S), The NewZealand Story (World, old version) (older PCB), Raiden (Korea, bootleg), Real Bout Fatal Fury / Real Bout Garou Densetsu (Korean release), Same! Same! Same! (1P set, NEW VER! hack), Sega Rally Championship - DX, Side by Side 2 Evoluzione RR (Ver 3.1 J), Simpson Junior (bootleg of J. J. Squawkers), Space Dungeon (larger roms), Steering Champ (GQ710 VER. UAA), Super Visual Football: European Sega Cup, Top Skater (USA), Turbo Force (US) and Virtua Striker 2 '99 (Step 1.5) - New PEPlus games: Player's Edge Plus (XMP00011) 5-in-1 Wingboard (CG2298) - New PinMAME games: Back To the Future (2.8), Lost in Space (1.01 France), Monday Night Football (2.9, 50cts) and X-Files (3.03 France) - New drivers: pgm3.cpp and zwackery.cpp - New devices: 74hct157, 74ls157, bitbanger, cd40105, dac76, ef9369, input_merger_hi, m68705_new, midway_serial_pic_emu, mm5837, null_modem, printer_image, pseudo_terminal, rs232_loopback, scc85C30, serial_keyboard, serial_printer, serial_terminal, sunkbd, sunkbd_adaptor and z80scc_channel - ADSP21062 / SHARC CPU: Use standard memory maps - ARM CPU: Fixed STR! with rd == rn - COP400 CPU . Added COP400 LEI opcode (reset L pins when EN2=0) . Correct internal RAM memorymap . Added L pins tri-state callback - Dynamic Re-Compiling: Fixed XMM usage on x64 ABI, restores debugger functionality on Mac/Linux for DRC drivers (cpu\drcbex64.cpp) - i960kb CPU . Added scanbyte and IP-relative lda opcodes, masked low bits of branch targets. Removed printf. . Preliminary support for CALLS instruction and WIP on FAULTx instructions - M68020 CPU: Respect 68020 "freeze I-cache" bit; (MESS) 'Micro 20' 68020 cache test now passes. - M68705 CPU: Start putting some 68705 functionality in the CPU core rather than copy+pasted in all the drivers. As this is a lengthy task I've created a derived CPU type with the new functionality to aid in the process without disrupting existing drivers that haven't yet been updated. Started with Alcon/Slap Fight, Guardian, Tiger Heli and Tokio / Scramble Formation. - MB86235 CPU: Added preliminary recompiler, disable for now. Fixed PR updates. - PowerPC 4xx/6xx CPUs . Set DSISR to the DSI flags rather than the address on data access faults . Fixed DSI flag bits. Alignment exceptions will need more complex mask/shift depending on the instruction's addressing mode, but that's a job for another time; at any rate it uses the LSBs of the DSISR register. - TMS32025 CPU . Use the standard memory interfaces . Correct space of internal data maps - TMS32051 CPU: Removed address_spacenum. That's an elaborate way to do a nop. - DCS sound: Implemented proper ram bank switch for ADSP2181 systems - Votrax SC-01 sound: Simulated device (gorf, qbert, qbertqub, reactor, sqbert, tylz and wow). Complete simulation of digital section based on die imaging. Plosives are still imperfect. - 6840 PTM: Use standard device clock for internal clock - 8155 RIOT: Attempt at fixing 8155 timer behavior so 8085 doesn't lose interrupts in Equites - 8253 PIT: Reading back the count while in the middle of a 16-bit write returns a xor'ed version of the value written. Fixes (MESS) Apricot PC error 29. - ATAPI . Fixed issue with 68000 byte writes to sector count by only taking the bottom 8 bits from the bus (machine\atahle.cpp). Note: Don't use mem_mask as ATA doesn't have an equivalent mechanism for byte accesses and it could mask out data that real hardware would keep. . Fixed ATA Write Multiple (command c5) ignoring the block count on the first block (machine\idehd.cpp) - Discrete Netlist . Added simple ROM hookup capability . Device additions: 74161 Synchronous 4-Bit Binary Counter with Clock. 7473 Dual Master-Slave J-K Flip-Flops with Clear and Complementary Outputs. Am2847 Quad 80-bit Static Shift Register. DM9334 8-bit Addressable Latch. 82S126 1K-bit bipolar PROM device. 74174 Hex D-Type Flip-Flop with Clear. 2716 16 Kbit (2048x8) UV EPROM. 74166 Parallel-Load 8-Bit Shift Register device. 74260 Dual 5-Input NOR Gate device. Intel 2102A 1Kbit (1024x1) Static RAM. 74365 Hex Bus Driver with 3-State Outputs. Generic 2- and 3-terminal Tristate device. Note: Tristate device and 74365 do not actually tristate, they are simply a way of combining multiple outputs + chip enables. Added 74165, 74194, 7475, 7485, DM9322, uA741 in 8-, 10- and 14-pin DIP variants (netlist\macro\nlm_opamp.cpp), 4316 bilateral switch pack, 82S126 4kbit (512x8) TTL bipolar PROM and 82S123 256-bit (32x8) TTL bipolar PROM. . Added shared RAM pointer, for use by netlist RAM devices which need updating by non-netlist driver code. . Various fixes: 7473: Made device only transition on a falling clock. 74161: Inverted Clear and Clock inputs to match datasheet. 74260: Fixed number of inputs. Am2847: Fixed shift register size (was 160 bits, should have been 80 bits). DM9334: Inverted C and E inputs to match datasheet. . Added netlist-based video board emulation to (MESS) Hazeltine 1500 . Added inductor to netlist and some files to nl_examples. Fixed 74107 and 74107A timings to typical values. Leave more comments on differences between 74107 and 74107A. . Added proper connection information for a number of chips to net_lib.cpp. This allows to parse and run (MESS) nl_hazelvid.cpp using nltool: nltool -t 1 -f nl_hazelvid.cpp - Floppy: Added a configuration for disable the motor control when MO line is not connected (machine\wd_fdc.cpp) - Imgtool . Changed a number of declarations to use std::string instead of 'const char *. Removed dead strncatz() function. . Fixed a recently introduced error in the 'dir' command line command. Cleaned up the output of the 'dir' command. - MC68230 PIT . Improved reset, timer and port C behaviour. Fixed typo and removed uneeded counter in exchange for a more clear TIN pin clock update interface . Added bitwise update methods for all ports and moved register access methods to private section . Fixed bug in port A-C write and added check of DDR registers for bit updates . Added initial support for timer interrupts and embryonic support for port interrupts - Microtouch touch screen: Added output status command and fixed data transmission at 2400 baud (drivers\adp.cpp, cubo.cpp, magtouch.cpp, meritm.cpp, pcat_nit.cpp, tmaster.cpp and vlc.cpp) - Polygon rendering: Added method triangles_drawn to get private member m_triangles (video\poly.h) - TTL . Added 74LS157 Quad 2-Line to 1-Line Data Selectors/Multiplexers device . Created new 74LS157 device and hook it up to MSM5205 on Rastan. Use 74LS157 device also in Disco Boy and yunsung8.cpp. 74LS157-ization in clones Pang (bootleg, set 3) and Super Pang (World 900914, bootleg) with working sound. 74157 updates (Pinball division): Added 74HCT157 device type alias. Hook up 74HCT157 in inder.cpp and spinb.cpp as per schematics. Changed device and macro names. Stylistic cleanups; avert potential crash in some drivers. This doesn't seem quite right by the schematics, but gives better sound. - Z80 DART . Set the vector status bits to 1 at eoi . Only update serial line configuration if it actually changes. Allows the apricot serial port to work correctly. - Z80 SCC . Enabled more Rx interrupts and fixed FIFO error . Fixed a regression FIFO bug and a bug in the handling of Special Interrupts. Clean up some of this double paren nonsense. - 8080bw.cpp . Fixed loading of the colour proms for moonbase and moonbasea . Fixed colors don't change at certain areas of the screen for each player's turn in a 2-player game of sicv, sicv1, invadpt2, invadpt2br, moonbase and moonbasea. It fixes also the ship colour (the score was already ok) of galxwars, galxwars2, galxwarst, ozmawars, ozmawars and starw1 (ID 06449). - amusco.cpp: Added coin counter and dispenser - astinvad.cpp . Fixed incorrect colors in Space King 2 at certain areas of the screen (ID 06450) . Added bonus sound to Kamikaze and Space King 2 - atarittl.cpp: Added a chip burn-down list, listing which chips still need to be emulated for Indy 4 and Stunt Cycle. - atlantis.cpp, midzeus.cpp and seattle.cpp . Updated Midway Zeus2 Video coordinate scaling and increased Z buffer to 24 bits . Updated screen rectangle to keep Skins Game from crashing. Renamed UART ports in atlantis.cpp. . Added hooks for serial communication (machine\midwayic.cpp) - by6803.cpp, mcr.cpp, mcr3.cpp, mcr68.cpp and zwackery.cpp . Identify DAC (-> AD7533) for Midway Cheap Squeak Deluxe/Turbo Cheap Squeak . Moved the Cheap Squeak Deluxe sound board to its own file (audio\csd.cpp) and give it its's correct name. Updated CSD interface to better reflect real hardware, added address decoding PAL and verify memory map. . Removed "Artificial Artist" board PAL from Zwackery, now included in the CSD device. - cedar_magnet.cpp . Added fresh dump of the magnet system Exzisus disk. One sector different, fixes graphical glitches in first level. The Magnet System were being sold back in the day, so not protos despite the bugs. . Further attempts to improve accuracy of 40105 FIFO emulation - chihiro.cpp . Parametrize constants used in debug command routines to support different bios/kernel versions. Moved threadlist debug command to Xbox. . Enable clipping of vertices where w is negative. Updated w clipping and disable it since it still causes problems. . Added method triangles_drawn to get private member m_triangles (video\poly.h) . Added some debug checks and adjustments in graphics routines - chihiro.cpp and triforce.cpp: Redumped PICs & documented S/Ns for Quest of D, Key of Avalon 2.x and Virtua Striker 4 Ver.2006 (Japan) - darkmist.cpp and raiden.cpp: Added PCB notes - dec0.cpp . Sound improvements for clone Automat (bootleg of Robocop): Reduced YM2203 speed to match music pitch on reference video. Added second MSM5205 + two 74LS157 and fixed communications. Added sound banking (probably not entirely correct). . Don't apply H6280 decryption to sound Z80 in clone Secret Agent (bootleg). Incremental sound improvements. - dec8.cpp: Added id8751h dumps to 'csilver' and 'srdarwin', not hooked up yet. Dumps look good, hookups appears to be slightly different to other games due to different main CPU and interrupt schemes, still investigating. These can probably be used for the japanese clones if the ID byte is changed to create a fake rom, as was done for the other sets in the driver. - epos.cpp . Added multiplexed inputs for clone Beaste Feastie and Dealer . Dumped PAL10H8 for clone Beastie Feastie (conversion kit) . EPOS decryption simplification WIP (machine\epos.cpp) - fromance.cpp . Fixed OL gal display for Rettou Juudan Nekkyoku Janshi. Note: Hardware writes to a VRAM mirror for showing the OL gal. . Added visible horizontal parameter to CRTC - gaiden.cpp, spbactn.cpp and tecmo16.cpp . Final Star Force . Fixed the 'direct sum' of two ARGB colors (video\tecmo_mix.h). This corrected the wrong saturated colors in Level 2 (tank underwater,final boss). . Added a video reference ( for the wrong background in the title screen. . Fixed macro typo in video\tecmo_mix.cpp; renamed MCFG_TECMO_MIXER_BLENDSOUCE to MCFG_TECMO_MIXER_BLENDSOURCE. Corrected some sum_colors mistakes. Added extra parenthesis to std::min for sum_colors and removed 'extra spaces'. - gkigt.cpp: Fill in RAM areas so all sets make it to polling vbl instead of crashing - guab.cpp . Created a Thomson EF9369 video device and use it for the driver . Cleanup driver, hook up SN76489 ready signal, hook up some debug LEDs. . Hook up PPI and ACIA. Label some outputs. . Fixed and improved output labels, add ten up labels - iteagle.cpp . Cleaned up serial handling (machine\iteagle_fpga.cpp) . Remapped service buttons to standard location. Connected CDROM and started adding RS232 communication ports. Removed leftover debug print. - konamigx.cpp: Fixed CPU and sound CPU hanging on state load (video\k053246_k053247_k055673.cpp, sound\k054539.cpp and k056800.cpp) - legionna.cpp, raiden2.cpp and seicupbl.cpp: Fixed palette dimming by respecting a fade-me-not bit (seibucop\seibucop.cpp and seibucop_dma.hxx) - leland.cpp: Initial work towards save state support - mcr68.cpp: Replaced 6840 PTM custom implementation with the standard one - metro.cpp: Made sound output mono. None of these games are stereo. - mitchell.cpp: 74LS157-ization in clones Pang (bootleg, set 3) and Super Pang (World 900914, bootleg) with working sound - midwunit.cpp: Decapped and read out security PICs for Ultimate Mortal Kombat 3 (rev 1.2) and Rampage: World Tour (rev 1.3). Added proper PIC labels. - model1/2.cpp . M1COMM/M2COMM cleanups . Make clone Wing War R360 (US) playable - naomi.cpp . Guessing security PIC number of Shakatto Tambourine . Dumped 253-5508-0364 from unknown NAOMI satellite game and 253-5508-0422J from Quest of D (some undumped newer version) . Added Sega DIMM board architecture documentation - peplus.cpp: Documentation update - photon.cpp: Minor cosmetical cleanup, initial preparation for save state support. - segag80r.cpp: Added "Return 0xffff" HACK for the current program counter while fetching the vector as the segag80r protection currently relies on it. Reduced the number of extraneous reads that the segag80r protection performs. This fixed most/all Sega G-80 sets resets itself during play (ID 06440). - segas16b.cpp . Dumped I8751 317-0078 at location C2 for parent set altbeast. Also renamed the mc8123 regions to 'mc8123' instead of 'mcu' because it was confusing. . Dumped I8751 317-0123A at location C2 for parent set goldnaxe. Although I've had to added a dubious cycle steal change to prevent things from crashing, might need more testing / investigation / work with the PCB to verify interrupt sources and if there's a bus steal mechanism. . Added dump of I8751 '317-0112 at location C2 to clone goldnaxe2. Chip was faulty, some bit errors and internal checksum fails. Still using simulation for now. The code looks to be mostly the same as the goldnaxe set, not even offset, but unused garbage areas have different fills so tracking down exactly which bits are bad is difficult, as they're not neccessarily all in the used code. - slapfght.cpp: Start putting some 68705 functionality in the CPU core rather than copy+pasted in all the drivers. As this is a lengthy task I've created a derived CPU type with the new functionality to aid in the process without disrupting existing drivers that haven't yet been updated. Started with Alcon/Slap Fight, Guardian and Tiger Heli. - srmp2.cpp: Fixed regression with ADPCM playback on M68k based games - stv.cpp . Documented 315-5649 IO chip and fixed Astra SuperStars test mode hang . Fixed bad dumps in Choro Q Hyper Racing 5 . Redumped 'Print Club 2 2000 Summer' and 'Print Club 2 Vol. 8 Summer' using the heat-gun method to obtain valid dumps from fragile ROM chips - system16.cpp . Sound improvements for clones Altered Beast (Datsu bootleg), Mutant Warrior (Altered Beast - Datsu bootleg), Passing Shot (4 Players) (bootleg), Shinobi (Datsu bootleg, set 1) and Shinobi (Datsu bootleg, set 2). Hook up MSM5205 and 74LS157 on the 2xYM2203 bootlegs, all of which now have some imperfect samples playback. . Correct clone Golden Axe (bootleg) sound system configuration (2x YM2203 (4MHz) and MSM5205 (384000 Hz)) - tnzs.cpp . Added Taito M-Chip M-001 dump for Extermination. Also works for Dr. Toppel's Adventure and Plump Pop. . Various driver refactoring . Fixed MCU name in Plump Pop, and marked MCU as bad pending verification that it is the same which Dr. Toppel and Extermination use. . Updated a slew of comments, added most missing pals as undumped, fixed some rom labels, added a chart of the different Taito/Seta PCBs covered by TNZS driver and the differences between each. - toaplan1/2.cpp . Decapped, deprotected, dumped and hooked up the HD647180X MCUs for Vimana, Fire Shark and Teki Paki. . Fixed DSWB reading in toaplan1.cpp (seems to be inverted when read by the MCU), also reverted changes to TJUMP jumper settings and inverted those as well on read, though it still seems to be a bit screwy for some settings. Vimana regions should work fine now. - yunsung8.cpp . Fixed MSM5205 sounds. Simplified ADPCM write: No need for nibble swap. . Inputs clean up. Implemented main irq_ack. Better names for tilemap vars. . Fixed manufacturer in clone Cannon Ball (Yun Sung, vertical) (was "J" not "T"); also added 'Production' suffix. . Use 74LS157 device - 10-Yard Fight: Fixed flipscreen/cocktail mode offset (ID 04796) - AGEMAME . aristmk5.cpp . Added internal layout and connected microtouch to Magic Mask and Party Gras . Added default NVRAM to cuckoou, dolphntru, incasunu, magimask, magimaska, minemine, partygrs, pengpayu, qnileu and wcougaru so the games come up in a playable state. . Redumped clone Chicken (RHG0730-03, US) and Top Banana (0100550V, NSW/ACT), now passes checksum. . mpu4vid.cpp: Updated mpu4vid to use Thomson EF9369 video device - Amiga: Removed a couple of driver_data() calls - Archimedes (aristmk5.cpp and ertictac.cpp) . Make floppies work . Fixed vblank timings in Acorn Archimedes and enabled partial updates, VIDC definitely needs a device rewrite at this stage plus ARM timings are quite off unsurprisingly (machine\archimds.cpp). . Fixed Vertical Count Register and pixel clock timings . Fixed sound double-buffering . Fixed ertictac.cpp regression - Beezer: Rewrote driver. Uses the standard 6840 PTM core for sound generation. New MM583 Noise Generator device. New DAC-76 DAC sound. Use resistor network values for colors. Use bankdev device for banking. - The Berlin Wall: Fixed "Copy Board" error message in clones The Berlin Wall (bootleg?) and (Korea) (ID 00101) - Bombjack Twin: Hooked up OKI6295 in clone Atom (bootleg of Bombjack Twin), needs banking and improved sound tempo. Adjusted dipswitches as per dipsheet. - Burning Fight: Correct clone Burning Fight (prototype, ver 23.3, 910326) romlabels (thanks jackc) and added it to swlist (hash\neogeo.xml). - Crystal Castles: Clarified input situation by assigning port conditions/names to the button inputs so they have proper default mappings between Upright/Cocktail (ID 06451). - Disco Boy: Use 74LS157 device - Double Dealer: Fixed flip screen regression and removed prefixes/suffixes - Dream 9 Final: Set initial banking so Z80 doesn't run off rails - Dynamite Duke: Replacing parent with the set having the latest build date. Also added build dates to the description for all games in driver. - Equites: Use 8155 device. Attempt at fixing 8155 timer behavior so 8085 doesn't lose interrupts. - Final Fight: Fixed clone Final Crash (bootleg of Final Fight) sprites not flipped when flipscreen is ON (ID 04921) - Finalizer: Fixed flipscreen (ID 04922) - Game Magic: Removed unnecessary file machine\cr589.h - Ghouls'n Ghosts: Added missing PAL dump to clone Daimakaimura (Japan) - Hana Awase: Fixed credits dipswitch does not work (ID 02855) - Mustache Boy: Flip screen improvements. Fixed Y positions of flipped sprites. Implemented flip screen "Hard SW" as in Irem games. Correct polarity of all dipswitches. - NBA Jam Extreme: Added 4th button - Phoenix: Fixed cocktail mode displays incorrectly (ID 06452) - PinMAME . Added missing sound ROM for U-boat 65 . 74157 updates (Pinball division): Hook up 74HCT157 in inder.cpp and spinb.cpp as per schematics . Another attempt at improving accuracy of sound emulation in inder.cpp - Rastan: Created new 74LS157 device and hook it up to MSM5205 on Rastan - Shoot Out . Added a note that the PCB has only one 12 MHz XTAL, derived all clocks by this value and replaced 'old style' screen parameters with MCFG_SCREEN_RAW_PARAMS. . Removed m_bFlicker variable and used screen.frame_number instead. . Fixed missing title screen music, fixed coin counter and simplified rom loading. Skipping hex values is not so strange for a BCD counter (that would be invalid for a decoder IC). Clarified the coincounter_w comment. - Side Pocket: Fixed cocktail mode, added a note about the 'cooperative mode', implemented y scroll and added VRAM and CRAM mirrors. Small draw_sprites clean-up. Added a TODO node about possible unimplemented MCU simulation for "cocktail mode". - Sky Robo: Fixed Sky Robo doesn't boot since MAME 0.154 - Sunset Riders: Some input port cleanup/simplification for Sunset Riders (4 Player) clones. All inputs mappable are shown in the Test Mode even if they are not used for that particular versions/cabinet type. - Tail to Nose . Added sound semaphore hookup, fixes random BGM lockups. . Added alternative input method, selectable thru control panel dip-switch. Added DIP locations. - Tokio / Scramble Formation: Dumped 68705 MCU and hooked up. Fixed MCU clock rate based on comments in driver (Games now playable). - Turbo Force . Better documentation for the Turbo Force sets . Added correct and verified MASK roms. Fixed size for gfx rom U134 & U135 and added a redumped U180 sound rom at the correct size. - Vapor Trail . Fixed missing 'game over' animation and 'P3 coin' is 'Service Mode' dipswitch. . Implemented main irq acknowledge. Note about the service mode DSW + game alignment. - World Beach Volley: Added PIC16c57 dump. This gives partial sound. OKI banking setup for the game is incorrect in the driver so music doesn't currently play also I cleaned up OKI banking in the whole driver by using configured banking to make further work cleaner. - Zombie Raid: Hook NVRAM, added calibrated default. - Zwackery: Moved gamr to its own driver. It doesn't have much in common with the other games in the driver. Also clean up the implementation, make spriteram 8-bit, added some hardware info and button descriptions. - Dipswitch fixes in mjcamera, mustache.cpp, nmk16.cpp and tail2nos - Fixed rom names in aerofgt.cpp, dec0.cpp, momoko.cpp, neodriv.hxx, tnzs.cpp and zwackery - Description changes of Coccinelle (bootleg of Lady Bug, set 2), Danchi de Quiz: Okusan Yontaku Desuyo! (J 001128 V1.200), The Double Dynamites (Japan 13NOV89), The Double Dynamites (US 13NOV89), Dynamite Duke (Europe set 1 03SEP89), Dynamite Duke (Europe set 2 25JUL89), Dynamite Duke (Japan 03SEP89), Dynamite Duke (US 25JUL89), Exzisus (EX 1.0, Magnet System), Flicky (64k Version, 315-5051, set 1), Flicky (64k Version, 315-5051, set 2), Flicky (128k Version, 315-5051), Flicky (128k Version, not encrypted), Grand Cross v1.02F, Lost in Space (1.01, Display 1.01), Mahjong Clinic (Japan, set 1), Metal Slug 2 Turbo (NGM-9410) (hack), Momoko 120% (Japanese text), The NewZealand Story (World, prototype) (older PCB), The NewZealand Story (World, unknown version) (older PCB), Sega Rally Championship - TWIN/DX (Revision C), Sega Rally Championship - TWIN/DX (Revision B), Super Visual Football: European Sega Cup (Rev A), Time Scanner (TS 2.0, Magnet System) and Xain'd Sleena (SC 3.0, Magnet System) - Renamed (dynduke) to (dyndukea), (dyndukea) to (dynduke), (ladybgb2) to (ladybugb2), (sidebs2j) to (sidebs2ja), (srallyca) to (srallycdx) and (tnzso) to (tnzsoa) - MAME . Make -console start console LUA plugin . PLUGINS: Updated hiscore.dat . UI . Double-check key state before UI autorepeat, this fixed keyboard/gamepad game list selection jump every two games (emu\uiinput.cpp). . Added an associative LRU cache with map-like behaviour to util\coretmpl.h. Use LRU cache in ui\selmenu.cpp so icons don't all need to be reloaded on scroll. . Set default character for absent glyphs in uismall.bdf. . Encapsulate many BDF and BDC handling details (emu\rendfont.cpp). Make file I/O 64-bit clean, check for allocation errors. More solid BDF parser with error messages and trace logging. Fixed heap smash when building bitmaps for BDF fonts. Extended BDC format to support high planes and default character. Render default character if glyph not found for BDF/BDC. . Make bitmaps movable, allowing them to be used in vectors and emplaced easily. . Another attempt at sorting File Manager entries . Removed the magic bypass in emu\dimemory.cpp . XML refactoring: Moved stuff to namespace util::xml. Scope down some enums. Split config load/save delegate types. Make config load take const so it can't mangle data. . UWP (Universal Windows Platform): Added temporary signing key for MSBUILD support (uwp\mame_TemporaryKey.pfx) . HLSL: Make hlsl\phosphor.fx persistence independent of frame rate . MULTI-LANGUAGE: Update Catalan translation to 361t, 133u . Overhaul of emu\devcb.cpp . Allow stringing multiple callbacks together recursively. Chained callbacks will be read or written in sequence, and each can be configured with its own type and mask/shift/XOR parameters. . Chained input callbacks cannot have overlapping masks (there's no such thing as a free multiplex). Chained output callbacks have no such restriction. . Removed the constant parameter for the LOGGER callback type: It makes no sense for output, was always zero in existing usage, and is now unnecessary with callback chaining. . Changed LOGGER behavior for writes to log the user-defined message only if the output as masked is nonzero. With callback chaining, this can be used to monitor when individual bits become active. . Constant read callbacks can no longer have MCFG_DEVCB_XOR or MCFG_DEVCB_INVERT specified (makes no sense in this context). . Added a MEMBANK callback type to allow output bits to be used for bank-switching. . Added ASSERTLINE and CLEARLINE callback types that raise or lower an interrupt line if the selected bit of the written value is active. These are intended for where periodic or ready-pulse signals from devices are used to trigger IRQs that the CPU program will independently acknowledge. . Added MCFG_DEVCB_BIT as shorthand for masking and shifting out an individual bit for a callback. . Removed DEVCB_LINE_DISPATCH_. Where we're going, we don't need line dispatcher devices. . Note: The incompatibility of compilers with regard to post-C90 printf string formats is shockingly bad. There seems to be no easy way to format a 64-bit value and please both GCC and Clang, let alone MSVC. . Fixed for -romident misattributing device ROMs to alphabetically first driver using them (mame\media_ident.cpp) . Replaced a few debug asserts with friendlier error messages (makes validation less dangerous in debug builds) (emu\addrmap.cpp) - Compiling . Disable incremental linking for VS debug builds (scripts\genie.lua) . Created DYNAMIC_API macros for dynamic bind helper classes. Updated name of DYNAMIC_API macros. . Enable building projects that are separate of MAME but use same core and lives in separate git tree . Detect if SOURCES file do not exist . Don't crash on late binding if no object is actually needed (util\delegate.h) - Debugger . Added 'o' variants to memory debugging commands to request decrypted opcodes space . I8086/I80186/I80286 CPUs: Updated disassembly if IP or CS are changed in the debugger. Also update IP & CS when PC or CURPC changes (currently using a simple algorithm that may need to be improved). Added HALT to debugger state, so you can break out of a hlt instruction. Don't change CS if new PC/CURPC is within the current segment on i86/i186. Fixed i286 PC/CURPC in protected mode. . Lighten combo box list so that it's easier to read (debugger\debugimgui.cpp) . Sort directory entries in mount dialog, as zippath_readdir() does not guarantee entries are in any particular order (debugger\debugimgui.cpp). . Fixed uninitialised memory read as debugger command history and clean up a little 0.180 - New games: Draw 88 Poker (V2.0) and Shikigami no Shiro - internal build (V1.02J 2001/09/27 18:45) - New Working games: Go By RC/RC De Go, Number Crash and Space Lords - New Non-Working games: Meng Hong Lou - New clones: 1945k III (newer, OPCX1 PCB), Burning Fight (prototype, ver 23.3, 910326), Cosmic Invaders (bootleg of Space Invaders), Forgotten Worlds (USA, B-Board 88618B-2, Rev. E), Gran Premio F1 (Spanish bootleg of Pole Position II), Grand Prix Star (v3.0), Hit the Ice (US, with riser board), Metal Slug 2 Turbo (NGM-9410), Mustache Boy (Italy), Ozma Wars (Model Racing bootleg), Road Fighter (set 3, conversion hack on Hyper Sports PCB), Sol Divide - The Sword Of Darkness (Korea), Stone Ball (2 Players, v1-20 21/10/1994), Time Crisis II (US, TSS5 Ver. A), Vendetta (World, 2 Players, ver. ?) and War: The Final Assault (EPROM 1.3 Apr 7 1999, GUTS 1.3 Apr 7 1999, GAME Apr 7 1999) - New AGEMAME games: Cash Chameleon (0200437V, NSW/ACT), Cash Chameleon (0300781V, New Zealand), Chicken (0200530V, Queensland), Diamond Fever (0200302V, NSW/ACT), Inca Sun (CHG1458, US), Jungle Juice (0200240V, New Zealand), Player's Choice - Original (30143011, NSW/ACT), Unicorn Dreaming (0101228V, New Zealand) and Wild Amazon (01J01996, Venezuela) - New PEPlus games: Montana Choice (MG0025) Multi-Game, Montana Choice (MG0026) Multi-Game, Montana Choice (MG0182) Multi-Game, Player's Choice (MG0213) Multi-Game, Player's Edge (PK0885-PC056) Deuces Wild Poker (El Cortez), Player's Edge Plus (PP0001) Standard Draw Poker, Player's Edge Plus (PP0008) Standard Draw Poker (set 1), Player's Edge Plus (PP0008) Standard Draw Poker (set 2, El Cortez), Player's Edge Plus (PP0048) Joker Poker (set 1), Player's Edge Plus (PP0048) Joker Poker (set 2), Player's Edge Plus (PP0048) Joker Poker (set 4), Player's Edge Plus (PP0050) Joker Poker (set 4, El Cortez), Player's Edge Plus (PP0050) Joker Poker (set 1), Player's Edge Plus (PP0050) Joker Poker (set 2), Player's Edge Plus (PP0050) Joker Poker (set 3), Player's Edge Plus (PP0054) Deuces Wild Poker (El Cortez), Player's Edge Plus (PP0057) Deuces Wild Poker (set 2), Player's Edge Plus (PP0057) Deuces Wild Poker (set 3, El Cortez), Player's Edge Plus (PP0057) Deuces Wild Poker (set 4), Player's Edge Plus (PP0103) Deuces Wild Poker (set 1), Player's Edge Plus (PP0103) Deuces Wild Poker (set 2), Player's Edge Plus (PP0103) Deuces Wild Poker (set 3), Player's Edge Plus (PP0126) Deuces Wild Poker (set 1), Player's Edge Plus (PP0126) Deuces Wild Poker (set 3), Player's Edge Plus (PP0127) Deuces Joker Wild Poker (set 2), Player's Edge Plus (PP0188) Standard Draw Poker (set 3), Player's Edge Plus (PP0195) 4 of a Kind Bonus Poker, Player's Edge Plus (PP0218) 4 of a Kind Bonus Poker, Player's Edge Plus (PP0232) Patriot Poker, Player's Edge Plus (PP0294) Aces and Faces Bonus Joker Poker, Player's Edge Plus (PP0295) Super Deuces Wild Poker, Player's Edge Plus (PP0434) Bonus Poker Deluxe (set 2), Player's Edge Plus (PP0445) Aces and Faces Bonus Joker Poker, Player's Edge Plus (PP0447) Standard Draw Poker (set 3), Player's Edge Plus (PP0450) Loose Deuce Deuces Wild! Poker, Player's Edge Plus (PP0452) Double Deuces Wild Poker (set 1), Player's Edge Plus (PP0453) Joker Poker, Player's Edge Plus (PP0542) One Eyed Jacks Wild Poker (CG1199) and Player's Edge Plus (X002240P+XP000038) Joker Poker (Two Pair or Better) - New PinMAME games: Rider's Surf and Star God (variable replay score) - New devices: 136094-0072, 136095-0072, rax_audio, rtc62421, rtc62423, rtc72421, segadimm, sei80bu, taito_cf, taito_pccard1 and taito_pccard2 - New mame.ini options: homepath - ARM CPU . Implemented Transfers to User Bank in LDM/STM and fixed flags corruption in branch opcodes . Fixed register-base shift with a value >= 32, this fixes the RISC OS graphics issues. . Fixed carry for ROR and preserve IRQ_MASK in LDR R15,*** - M6809/HD6309/KONAMI CPU: Merged the M6809, HD6309 and KONAMI CPU disassemblers and changed to properly use streams. - M68000 CPU: Changed (MESS) drivers apollo.cpp and fccpu30.cpp from accessing has_fpu directly to use new set and get methods. FPU enable/disable methods (cpu\m68000\m68000.h). - SH-4 CPU: Begin SH4 MMU improvements (with a view to seeing what Aristocrat MK6 needs). Allow table upload by LDTLB opcode in SH4MMU. Allow experimental SH4 MMU test code to be turned on / off on a per-driver basis. - CD Audio and MSM5205: Removed volume trampolines - DISCRETE sound: Use osd_getenv instead of getenv - N2A03 APU sound: Fixed crash because nes_apu was always binding to root_device() before the n2a03 took over - Q-Sound: Fixed a bug in DSP16 caused by incorrect use of macro - Seibu Sound System (cleanup) . Eliminate SEIBU_SOUND_SYSTEM configuration macros hiding details of device construction . Start using devcb for generic YM hookups. Use device finder to connect seibu_sound_device to audiocpu. . Kyuukyoku no Othello has only one YM2203 and one ADPCM, not two of each . Moved SEI80BU encryption out of the SEIBU_SOUND device and make it a device of its own . Future changes planned: Separate SEI0100BU and SIE150 types; Cabal and Dead Angle should each be using two of the former. Separate SEI80BU device to handle Z80 decryption (Mustache Boy uses this for its main CPU). - 8155 RIOT: Removed unnecessary tag() parameter from logerror calls - 8253 PIT: MSB-only counter writes need to lower outputs in mode 0 - 8259 PIC: Use resolve_safe to protect against segfaults - 8279 KDC: Unify read/write handlers for standard A0-to-A0 hookup - ATAPI: Made constructor protected in machine\atahle.h. - Discrete Netlist: Fix up pstring code: Instantiate static constant members for ODR context. Declare static members of template classes properly. Declare external template instantiations. Fixed blind use of autocomplete ("treats" really?). Fixed ptype_traits on platforms where char is unsigned. Signed char is never an alias for char even if char is signed. Even if eclipse doesn't like using type, surely it supports typedef. - Harddisk . Fixed heap corruption when loading a new CHD fails . Throw CHDERR_FILE_NOT_WRITEABLE rather than CHDERR_UNSUPPORTED_VERSION if you try to open an old version for writing (imagedev\harddriv.cpp and util\chd.cpp) - Imgtool . Consolidated logic for default implementation of imgtool::image::list_partitions() . Changed imgtool::stream::open*() to return imgtool::stream::ptr . Fixed a recently introduced bug which caused image types that do not support partitions to function incorrectly - Laser Disc: Made ldplayer regular driver - MC68230 PIT: Small fixes - MSM5832 RTC: More accurate WR emulation - MSM6242 RTC: Added pin diagrams for good measure - SCN2674 Display Controller . Correct the row on which a split occurs, fixes (MESS) Octopus display of the last row before the status line split. . Added command 0xA6, fixes (MESS) Octopus status line in Concurrent DOS and BIOS character block write function. - TTL . Added 7400 Quad 2-Input NAND Gate . Added 7404 Hex Inverter . Added 74160/161/162/163 device emulation (BCD decade counter / 4-bit binary counter) . Added 74174/175 Hex/Quad D Flip-Flops with Clear . Added DM9334 8-Bit Addressable Latch . Added 82S126/82S129 256x4-bit PROM - Z80 DART: Finalized conversion to use util::fifo. Refactored FIFOs using new template based FIFO class. - Z80 SCC . Added support for RTxC as BRG clock source, allows the SGI Indy to have a console. . Fixed a bug in read register 15 support, allows macplus, etc. to boot now. . Improved interrupt handling, allows mouse pointer to move in macplus driver for System 6.0.8. . Fixed init state of latched rr0 values, improves the success ratio of getting the mouse working in both X and Y on macplus, etc. . Improved LOG printouts for synchrounous features of WR4 and WR10. Added external clock to SCC and decoded SCC synchronous init for (MESS) MacOS 7. Added minimal support for SYNC/HUNT mode to allow MacOS7 to boot to desktop. - Z80 SIO: Added UPD7201 device type and used it in (MESS) Mizar VME8105, plus some maintenance. - 8080bw.cpp: Fixed black screen in 2-Player game in cocktail mode on games using the multi-colored overlay, such as sicv or invadpt2 (ID 06418). - aleck64.cpp . Give priority to current transfer when reading AI length register. Eliminate explicit temps in AI length calculation. Only SP DMA skip for DRAM address, regardless of transfer direction (machine\n64.cpp). . Added Vivid Dolls dipswitches, note digital joystick support needs adding, game is switchable. . Added delayed carry signal for AI address. The AI address register is split into a low half and a high half. A hardware bug allows the carry signal from low to high to persist through a reload of this register. - aristmk5.cpp . Hooked-up EEPROMs, UARTs and some inputs. Fixed video DMA when vidstart != 0. . Added coin input, logic door input and RTC. . Fixed SRAM banking - aristmk6.cpp . Extended MK6 rom area so that the bigger games map properly and pass their checksums. Added several sets from Heihachi_73. . Clean up rom loading. Fixed rom loading in Bob and Dolly, The Buck Stops Here, Flame of Olympus - Cash Express, Player's World - Super, Rumble Reels and Sun & Moon - Bank Buster. . Fixed rom loading in Rumble Reels and switched 1x and 2x IC positions around (passes test and is consistent with others now). . Show framebuffer? instead of debug viewer.. can see startup text at least, games enable the SH4 MMU tho. Begin SH4 MMU improvements with a view to seeing what Aristocrat MK6 needs. Hook IRQ registers, actual sources still unknown. Allow table upload by LDTLB opcode in SH4MMU. Allow experimental SH4 MMU test code to be turned on / off on a per-driver basis. - cedar_magnet.cpp: Preliminary Magnet System sound. Removed unnecessary call to device(). Moved cedar devices out of drivers. - clshroad.cpp . Fixed Fire Battle music tempo. Align background with sprites. . Doc update - crystal.cpp . Fixed VRender0 timers . Added new user1 rom and mahjong control to Crazy Dou Di Zhu II - equites.cpp: Fixed cocktail mode video isn't working correctly in Splendor Blast and High Voltage (ID 06411) - gaiden.cpp: Fixed flip screen slightly offset down (ID 04933) - goodejan.cpp: Improved PCB documentation - gottlieb.cpp: Added (missing?) & to MCFG_LASERDISC_AUDIO - lsasquad.cpp: Refactored priority prom usage for Land Sea Air Squad and Daikaiju no Gyakushu - model3.cpp: Replaced custom RTC-72421 emulation with device - namcos21.cpp: Remap controls to use pedals and paddles for Driver's Eyes, Winning Run, Winning Run '91 and Winning Run Suzuka Grand Prix - naomi.cpp . Various naming changes: Added supported regions info. Changed all to "Export name / Japan name" template and correct few names as per title screens. . Added missing PICs for dragntr3, wccf116 and wccf1dup . Moved DIMM firmwares to device and docs update . Added unused/unknown security PIC dumps 253-5508-0352E, 253-5508-0456J and 253-5508-0506J. - peplus.cpp: Added in known flags. Documentation update & misc fixes. - psikyosh.cpp: Corrected all games to mono - skylncr.cpp: Slight cleanup - stv.cpp/saturn.cpp . Worked around VDP1 timings in Sega Saturn, fixes regression with (MESS) Batman Forever gameplay speed (video\stvvdp1.cpp). Added Rotation Parameter read control register, fixes at least Riddler stage ROZ positioning in Batman Forever (video\stvvdp2.cpp). . Fixed visible area in stv.cpp - taitogn.cpp . Implemented G-NET BIOS flashing, games that require the v2 BIOS now require you to update the BIOS and turn off JP1 as part of the installation. A v1 BIOS flash is included, but you aren't forced to use it. . Moved G-NET protection out of ATAFLASH and into individual devices for each type of card . Implemented enough analogue control reading for Go By RC and clone RC De Go (Games now playable) . Added build dates and times to G-NET game descriptions . Added JP1 location for UI and fix digit transposition - tumbleb.cpp . Corrected Choky! Choky! OKI xtal. Note: Some PCBs have left factory with a 3.57mhz while some have a 4.096 which matches other games, assuming the former are factory errors. TODO: MAME sound cores doesn't handle on-the-fly sound frequency changes, I guess best action here is to make the sound chip a slot option, assuming it's worth emulating a factory error in the first place. . None of games in the driver are stereo PCBs, corrected to mono. - zn.cpp . Added MACHINE_NOT_WORKING flag to clone Psychic Force EX (Ver 2.0J). Note: Exception in attract after reading 0xbbbbbbbb from 0x8025ed18 leads to watchdog reset. . Fixed ZN1/ZN2 DSW descriptions - Archimedes (aristmk5.cpp and ertictac.cpp) . Reworked Archimedes 310 HLE keyboard and added mouse input . Fixed horizontal display position and cursor position in VIDC . Added new NOT WORKING machines (MESS): Archimedes 305, Archimedes 440, Archimedes 3000, Archimedes 410/1, Archimedes 420/1, Archimedes 440/1, Archimedes 540, Acorn A5000, Acorn A4, Acorn A4000 and Acorn A5000 Alpha. Renamed a310->aa310 to avoid conflict with Amiga machines. Added all missing OS releases Arthur 0.30, RISC OS 2.01, RISC OS 3.00, RISC OS 3.10 and RISC OS 3.19 (German). All machines default to OS (Arthur, RISC OS 2, RISC OS 3) they were shipped with. Corrected ROM labels/locations. Added default CMOS to boot to desktop. Mapped Acorn A4 Power Management extension. Added RISC OS 3 Applications to hash\archimedes.xml and removed some bad dumps. - Altered Beast: Fixed missing graphics in the crystal ball of clones altbeastj and altbeast6 (ID 03646) - American Music Poker . Identify and hook up 8155 interface chips for LPT & RTC . Added button-lamps and coin counter support . Fixed PIT8259 IRQs; game speed is much better now. . Coin inputs now read properly through IRQ4. Removed spurious coin counter. . Updated notes on printer - Batman Forever and NBA Jam Extreme . Emulated the Acclaim RAX sound board (audio\rax.cpp), fixing sound in Batman Forever and NBA Jam Extreme. . Hooked up extra NVRAM in NBA Jam Extreme. This fixed game crashes and NVRAM gets corrupted (ID 05928). - Bionic Commando: Added precise video signal timings. MCFG_SCREEN_RAW_PARAMS() still missing. Added proper frame timings. - Dream 9 Final: Hook up RTC-62421 and correct a few input types - Dynamite Duke: The Double Dynamites is actually more like Dynamite Duke TE, promoted to parent. - Fighting Roller: Hooked up coin counters - Gemini Wing: Fixed input issues (ID 06436) - Great 1000 Miles Rally / Mille Miglia 2: Unswapped button mappings for gtmr games so that they match the PCB/manual correctly - Lost Castle In Darkmist . Added real transparent pen mixing from proms, fixes ranking screen and gameplay area. . Added sprite chip fetch from top to bottom, fixes sprite-sprite priorities. - Marvel Land: Tagged as imperfect sound. Note: The sound in this version does not match Japan or any of the ports and sounds incorrect. Needing redump of sound rom. - Mirage Youjuu Mahjongden: Added 93C46 EEPROM hook-up - Mr. Do!: Fixed flipscreen regression - Number Crash: Redumped 2x maincpu roms (Game now playable) - Poker Ladies: Standardise inputs and removed P2 inputs - Power Drift: Made 'Power Drift - Link Version' not a clone since it's a very distinct rereleased version of the game - Pro Mahjong Kiwame: Added backup RAM hookup, fixes "BACKUP RAM ERROR" at first boot. - Puzzle Yutnori: Replaced MACHINE_NOT_WORKING flag with MACHINE_UNEMULATED_PROTECTION. Note: Protection appears to handle the sound, should check if it's just a block of code that is conditionally executed like some of the Semicom titles. - Quiz Punch . Dumped the 68705 MCU for Quiz Punch, protected by an epoxy block. . Hooked up MCU to the driver, improved graphics and sound. - Space Lords . Reverse-engineered Space Lords security FPGA and implemented decryption code (Game now playable) . Fixed input - Super Game (Sega Master System Multi-game bootleg): Added the missing maincpu rom. Note: This is actually quite interesting, this is a 512KB MASK rom, hence why it got missed the first time around. It actually appears to have been pulled straight from a home Sega Master System mulit-game cartridge and used on the arcade PCB. The rom contains another copy of the games menu in the first bank, except this copy of the menu has no timer/credit support and only references games in this specific rom. It is completely ignored by the arcade hardware which uses the game data part of the rom only, never banking this copy of the menu in. As this almost certainly came straight from a bootleg cartridge, this specific rom could also be added to the softlist with a custom mapper for the banking. - Tekken 3: Added Namco Cyber Lead cabinet JVS IO and LED controller PCB dumps. Typically was used with System12 games, put it to Tekken 3 for now. - Teenage Mutant Ninja Turtles: Changed visible screen back to 320x224 (ID 04790). Note: The 8 pixels on the left are being drawn in the overscan area, some monitors are correctly not drawing them, others do. It's clear the intent is for the player not to see them, but the fact remains they're there, on bad monitors. This as an aside is probably the reason for the infamous and much complained about 'shadow' problem on real hardware - the shadows match up with whatever is being drawn into the overscan area, stretched as a faint shadow across the whole screen. - Vigilante: Fixed visible screen area (PCB comparison) - Williams Multigame: Small refactor. Btw, bankdev was tried, but too many bugs resulted. - Input port . Polymorphize input_device and input_class and moved to separate source file (emu\inputdev.cpp/h) . Fixed key names with -keyboardprovider win32 (input\input_win32.cpp) . Drop invalid input tokens when parsing configuration, fixes uncaught exception error when writing configuration. - Dipswitch fixes in aleck64.cpp, dcon.cpp, jangou.cpp, nbmj8891.cpp, nbmj8991.cpp, nbmj9195.cpp and zn.cpp - Fixed rom names in clshroad.cpp, ddragon3.cpp, midvunit.cpp, twincobr.cpp and zaxxon - Description changes of Burning Fight (prototype, older), Chaos Heat (V2.08J 1998/09/25 17:00), Chaos Heat (V2.09O 1998/10/02 17:00), Fighting Fantasy (Japan revision 3), Flip Maze (V2.04J 1999/09/02 20:00), Go By RC (V2.03O 1999/05/25 13:31), Grand Prix Star (v2.0), Kollon (V2.04JA 2003/11/01 12:00), Kollon (V2.04JC 2003/11/01 12:00), Lots of NAOMI games, Mahjong Oh (V2.06J 1999/11/23 08:52:22), Mustache Boy (Japan), Night Raid (V2.03J 2001/02/26 17:00), Otenami Haiken (V2.04J 1999/02/01 18:00:00), Otenami Haiken Final (V2.07JC 2005/04/20 15:36), Otenki Kororin (V2.01J 2001/07/02 10:00), Peter Pack Rat (ID 06427), Player's Edge (PK0719-PC092) Standard Draw Poker (El Cortez), Player's Edge (PK0756-PC011) Standard Draw Poker (El Cortez), Player's Edge Plus (PP0008) Standard Draw Poker (set 3), Player's Edge Plus (PP0048) Joker Poker (set 3), Player's Edge Plus (PP0055) Deuces Wild Poker (set 1), Player's Edge Plus (PP0055) Deuces Wild Poker (set 3), Player's Edge Plus (PP0055) Deuces Wild Poker (set 4), Player's Edge Plus (PP0057) Deuces Wild Poker (set 5), Player's Edge Plus (PP0060) Standard Draw Poker (set 4), Player's Edge Plus (PP0103) Deuces Wild Poker (set 3), Player's Edge Plus (PP0126) Deuces Wild Poker (set 2), Player's Edge Plus (PP0127) Deuces Joker Wild Poker (set 1), Player's Edge Plus (PP0130) Aces and Faces Bonus Poker, Player's Edge Plus (PP0434) Bonus Poker Deluxe (set 1), Player's Edge Plus (PP0452) Double Deuces Wild Poker (set 2), Player's Edge Plus (PP0733) Double Aces and Faces Bonus Poker, Power Drift - Link Version (Japan, Rev A), Psyvariar -Medium Unit- (V2.04J 2000/02/15 11:00), Psyvariar -Revision- (V2.04J 2000/08/11 22:00), Quiz Punch II, Time Crisis II (US, TSS3 Ver. B), Ray Crisis (V2.03J 1998/11/15 15:43), RC De Go (V2.03J 1999/05/22 19:29), Shanghai Sangokuhai Tougi (Ver 2.01J 2002/01/18 18:26:58), Shanghai Shoryu Sairin (V2.03J 2000/05/26 12:45:28), Shikigami no Shiro (V2.03J 2001/08/07 18:11), Soutenryu (V2.07J 2000/12/14 11:13:02), Stone Ball (2 Players, v1-20 7/11/1994), Stone Ball (4 Players, v1-20 13/12/1994), Super Puzzle Bobble (V2.04J 1999/2/27 02:10), Super Puzzle Bobble (V2.05O 1999/2/24 18:00), Usagi (V2.02J 2001/10/02 12:41:19), World Club Champion Football European Clubs 2004-2005 (Japan) (CDV-10013), World Club Champion Football European Clubs 2004-2005 Ver.1.1 (Export) (CDV-10015), World Club Champion Football European Clubs 2004-2005 Ver.3.22 (Export) (CDV-10015P), World Club Champion Football European Clubs 2005-2006 (Export) (CDV-10027), World Club Champion Football Serie A 2001-2002 Ver.2 (Japan) (CDP-10001C), World Club Champion Football Serie A 2002-2003 Ver.2.12 (Export) (CDV-10002), World Club Champion Football Serie A 2002-2003 Ver.2.34 (Japan) (CDV-10008), WWF WrestleFest (US), WWF WrestleFest (World), XII Stag (V2.01J 2002/6/26 22:27), Zaxxon (set 1, rev D), Zaxxon (set 2, unknown rev), Zaxxon (set 3, unknown rev)', Zoku Otenamihaiken (V2.03J 2001/02/16 16:00) and Zooo (V2.01JA 2004/04/13 12:00). - Renamed (f1gpstar) to (f1gpstaro), (forgottnu1) to (forgottnuc), (pepp0008) to (pepp0008b), (pepp0048) to (pepp0048b), (pepp0055) to (pepp0055b), (pepp0055a) to (pepp0055), (pepp0055b) to (pepp0055a), (pepp0057a) to (pepp0057d), (pepp0103) to (pepp0103b), (pepp0126) to (pepp0126a), (pepp0127a) to (pepp0127b), (pepp0452) to (pepp0452a), (wwfwfest) to (wwfwfestu) and (wwfwfesta) to (wwfwfest) - MAME . VIDEO RENDERING SYSTEM . Fixed the D3D9 issues people are having (d3d\d3dcomm.h and drawd3d.cpp) . HLSL . Fixed games with off-screen backdrop artworks (e.g. Atari Football and Bowling Alley) that white out the screen when you enable HLSL. . Corrected HLSL documentation: Removed -antialias option (does not exist anymore). Added missing -vector_beam_smooth option. Fixed suggested default values for -bloom_lvl_weights options (were messed up in the last update). . UI . Fixed MESS and MAMEinfo.dat display. Passing an empty string uses the current game name for infos so don't do that while in the main menu, since there's further check just below, removing these should be fine (ui\selgame.cpp and selsoft.cpp). Removed extra newlines (plugins\data\data_mameinfo.lua and data_messinfo.lua). . Cache texture/surface were not released when render target was destructed (render\drawd3d.cpp). This fixed MAME crashed with UI and HLSL (ID 06417). . Fixed a bug in parsing the software name option that prevented the loading of slot defaults for software selected from the internal UI (mame\mameopts.cpp) . Encapsulate a bit more of the menu base class to control when layout changes can happen. Encapsulate mouse translation in the menu code, make more stuff const. A bit of prep for making selected index private. . Fixed the mouse hover state drawing (ui\datmenu.cpp) . 3rdparty . Updated BGFX and BX and recompiled shaders. Fixed GLSL. Updated BGFX shader path for Emscripten build (src\main.lua). . Updated to latest GENie. Patches to keep same behavior as we had before. Finally sync with GENie, no more local changes. . ASIO: Header only mode in osd\asio.h. Fixed clear typo in ASIO, sent upstream. Added _WIN32_WINNT so asio.h file could be used and outside OSD section. Added ability to use ASIO in all core MAME parts (scripts\src\devices.lua, emu.lua, frontend.lua). . LUA engine . Replaced LUAbridge in Luaengine with Sol2. Removed non-operational LUA console code. Fixed save_item in Luaengine. Updated Sol2, made LUA console not crash for nil data. Removing SOL_CHECK_ARGUMENTS till we figure all consequences. . Added LUA-linenoise . Hide stuff that shouldn't be touched directly in registry . Updated PugiXML library, no override patches anymore. . Readded sqlite3 and lsqlite3 . UWP (Universal Windows Platform) . Make 3rdparty compile for UWP and start adding new OSD for UWP based on previous Brad work. Added video and window code to UWP. MALLOC_DEBUG part is not able to compile on UWP. Added clipboard handling. Added basic keyboard input. Enable sound. Added support to store files on Local storage. . Added OPTION_HOMEPATH to point to read/write folder, for now used by LUA scripts. Copied all needed files so plugins could be started under UWP. . Implemented GetFileSize and and proper winrt file open . New UWP icons/images . Output verbose to debug plus turn off view scaling (windows\winmain.cpp). Different default font. Tahoma not available on XBOX (font\font_dwrite.cpp). Enable gamepad support and update keyboard support. Better keyboard key names. Hotkeys for gamepad plus more time for gamepad discovery. Removed explicit links for winstore builds. . Keyboard scancodes start at 1. Also thread synchronization which will be needed later when we have multiple windows. . Make executable for scripts\src\tests.lua follow rules for main file. Make normal notation for require. Split properly tests. Added more applicable Catch testing framework and converted all tests to be done properly by guidelines. Still needs TESTS=1 to enable build of tests. . Updated LZMA to 16.04 (security and portability fixes) . Fixed make VERBOSE=1 not showing archive commands for static libraries (3rdparty\genie\src\host\scripts.c) . PLUGINS . Fixed driver info (plugins\data\data_mameinfo.lua and data_messinfo.lua). Stored data in database. . Updated hiscore.dat . Made timer plugin use sqlite3 (plugins\timer\init.lua) . Make console a LUA plugin (plugins\console). This fixed CONSOLE does nothing but allow "EXIT" (ID 06413). Further improve completions by removing break chars from linenoise.cpp that hide the full type. Do not take Ctrl-Z since that have it's behavior defined for Linux. Exit on Ctrl-C in console without crashing. . MULTI-LANGUAGE: Updated German translation . Added basic HTTP server (lib\http\), not active yet, based on ASIO example with small refactoring included. . Ability to show custom menu using LUA (ui\pluginopt.cpp) . Address map refactoring: Removed device parameter. De-hand-templatized address_map_entry, removed then unneeded entry parameter. Simplified constructor, thanks Micko. Changed setters into passthroughs. Stream it. Changed to use dot syntax rather than -> syntax for chaining. Made obvious renames and added helpers. . Eliminated attaching memory maps to driver_device . Simplified memory allocation for osd_module . No need for osd_malloc, osd_malloc_array and osd_free. MALLOC_DEBUG not applicable anymore since we use new to allocate in 99.9% of cases. . Let osd_process_kill just kill, rest is on osd users, watchdog only in this case. . Changed window handle storage to template instead of void* . Don't do the periodic_check before every timeslice (emu\machine.cpp) . Rewroted (Compressed layouts) to parse/minify layout XML. Doesn't make much difference to executable size, but it catches XML errors at build time rather than waiting for you to try the system. . 32 bit windows monitor module fix (monitor\monitor_win32.cpp) - SDLMAME: Updated SDL2 to 2.0.5 - MAC OS X: Fixed MacOS build (scripts\genie.lua) - Compiling . Prevent -Wexpansion-to-defined warning in recent Clang (modules\file\posixdir.cpp) . Experimental support for compiling to WebAssembly using Emscripten (not yet working) . Added a fifo template in util\coretmpl.h. Added 'poke' and 'clear' methods to fifo template. . Added delegate support for lambdas and std::functions in general, also supporting const members now (emu\devdelegate.cpp) - see drivers\statriv2.cpp. . Do not use FUNC in delegate where applicable . Fixed building on IBM S390x and PPC64le . Lambda always have object in util\delegate.h . Hack to allow building with SOURCES=src/mame/drivers/cps2.cpp (ID 06407) . Make shaders compile DX9 and DX11 only on windows . Fixed USE_DISPATCH_GL compile, seams no-one is actually using it since it is broken for a while (render\drawogl.cpp) . XML . Turn xmlfile API into something that looks like C++ and allowed use of const data node objects. It's still a bit quirky but it's far better encapsulated before, and it plays nice with const. Patch up Qt debugger for new xmlfile API. . XMLfile cleanup: An empty tag and a self-closing tag are semantically equivalent, so std::string can be used saving some manual allocation. A valid tag can't have an empty name, so that can be std::string too. Still expose empty strings as nullptr to API users. Scope down the int_format enum. # is not ffs. Work around buggy standard libraries. . Added VS2017 support into project files. Fixed compilation under VS2017, default_semantics is used by apply so need to be public. Generated proper SLN header. . Introduced u8/u16/u32/u64/s8/s16/s32/s64: New abbreviated types are in OSD and util namespaces and also in global namespace for things that #include "emu.h". Removed the cstdint types from everything in emu. Removed U64/S64 macros. Fixed a bug in dps16 caused by incorrect use of macro. Fixed debugcon not checking for "do " prefix case-insensitively. Fixed a lot of messed up tabulation. Changed many macros and constants to constexpr. Fixed up many __names. . Removed generic_ptr in emu\emucore.h . Added typographical characters to uismall.bdf, including the hair space used by the internal UI. . Removed Connection Manager part since it is used for compilers check, no need for this to be in release. - Debugger . Changed the 8085A, ARM, ARM7, ASAP, CCPU, COP420, Cosmac, Cube Quest, DSP16A, DSP32C, DSP56k, ESRIP, G65816, H6280, H8, Hyperstone, I386, I4004, I8086, I860, i960, Jaguar GPU, M37710, M6502, M6800, M68000, M6805, MB86233, MB86235, MB88xx, MCS48, MCS51, MC68HC11, MIPS3, MN10200, NEC Vxx, PDP1, PIC16C5x, PowerPC, PPS4, PSXCPU, R3000, RSP, S2650, SC/MP, SC61860, SHARC, SCUDSP, SE3208, SPC700, SH2, SH4, T11, TLCS-90, TLCS-900, TMS32025, TMS3203x, TMS32051, TMS32082, TMS34010, TMS57002, TMS7000, TMS99xx, TX0, uPD7725, uPD7810, V60, V810, Z180, Z80CPU and Z8000 CPU disassembler to use 'std::ostream &' internally . Fixed a number of identifiers beginning with underscores in the M6805 disassembler. Changed m_* ==> md_* (m6805\6805dasm.cpp). . Further cleanups to the TLCS900 disassemlber. Fixed spacing issues, converted a char[] buffer to std::string. . Changed all disassemblers to use output stream rather than character buffer. Changed disassembler overrides to use 'std::ostream &' internally. Changed disassembler infrastructure to not use char buffers internally. . Fixed a recently introduced bug in the 6x09 disassembler that could cause asserts when hitting what would be a legal 6309 instruction when disassembling non-6309 code. . Moved device_memory_interface from driver_device to dummy_space_device. Exposed the dummy_space_device as machine().dummy_space(), with a trampoline in driver_device for existing callers. Debugger no longer needs to special case root_device() to avoid showing the dummy address space. Replaced machine().driver_data()->generic_space() with machine().dummy_space(). Removed some driver_data<> calls. . Moved the declaration for dasmmips3(), ppc_dasm_one() and rsp_dasm_one() to a header file . Fixed debugcon not checking for "do " prefix case-insensitively . Eliminated 'ppc_dasm_one(std::string &string,...' and 'rsp_dasm_one(std::string &string,...' trampolines. Removed 'ppc_dasm_one(std::string &string,...' declaration and updated caller. Changed buffer.vec() to &buffer.vec()[0]. . Eliminated 'device_disasm_interface::disassemble(std::string &buffer, ...'. Moving disasm.clear()/disasm.seekp(0) out of if statement, so the stream is always reset. Refactored device_disasm_interface::disassemble() and dasm_override_delegate to take string buffers as std::string. . Eliminate static char[] buffers in the MB86235 disassembler


0.183: Updated to MAME 0.183 ( Added Source/Listinfo changes. Newest Bugs (22nd Feb). Added/Reorganized 'Recommended Games'. Fixed Mameinfo.dat infos.
0.182: Updated to MAME 0.182 ( Added Source/Listinfo changes. Newest Bugs (24th Jan). Added/Fixed 'Recommended Games'. Fixed Mameinfo.dat infos.
0.181: Updated to MAME 0.181 ( Added Source/Listinfo changes. Newest Bugs (27th Dec). Added/Fixed 'Recommended Games'. Fixed Mameinfo.dat infos.
0.180: Updated to MAME 0.180 ( Added Source/Listinfo changes. Newest Bugs (29th Nov). Added/Fixed 'Recommended Games'. Fixed Mameinfo.dat infos.


MAMEINFO.DAT 0.183  (2.62 MB)

MAMEINFO.DAT 0.182  (2.61 MB)

MAMEINFO.DAT 0.181  (2.60 MB)

MAMEINFO.DAT 0.180  (2.58 MB)

   MASH's Driver WIP

   News Submission Board
   MAME Testers
   MAME Download
   MAME Frequently Asked Questions