Release Date

MAME 0.183 was released on 22 February 2017.


MAMETesters Bugs Fixed


Machine Support

New working machines


New working clones


Machines promoted to working


Clones promoted to working


New machines marked as MACHINE_NOT_WORKING


New clones marked as MACHINE_NOT_WORKING


Notable new WORKING software list additions


Notable new NOT WORKING software list additions

Contributions

The known contributions for this version are, in the order specified in the whatsnew:


  • Dirk Best provided aAmiga updates:
    • Converted the Amiga keyboards to a bus interface with slot devices.
    • Addes a German A500 keyboard variant, keyboard fixes.
    • Moved and renamed Amiga sound device, added pinout and description.
    • Moved audio related registers into Paula device, now independent from Amiga state class.
    • Made Akiko independent from driver state.
  • Dirk Best rewrote the ambush 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 these haven't been dumped, currently using the PROMs from the original.
    • Updated and corrected DIP switches.
    • Documented tile attribute RAM and sprite RAM layout bits.
    • Use screen raw parameters.
    • Added connector layout, updated TODO list and ROM filenames.
  • Curt Coder updated the thayers driver: Fixed keyboard scanning, inputs and communication.
  • Curt Coder provided vic20 updates:
    • Emulated the PPP SpeakEasy (Votrax SC-01-A) cartridge.
    • Emulated the Data 20 Display Manager 40/80 column video cartridge.
  • Curt Coder updated the c64 driver: Emulated the PPP Speakeasy 64 (Votrax SC-01-A) cartridge.
  • Curt Coder updated the abc800_dsk format: Fixed sector interleave.
  • hap provided PIC16C5x updates:
    • Added basic support for the old GI PIC1650 and PIC1655.
    • Made RTCC (aka T0CKI) pin an input line handler.
  • Luca Elia updated the PIC CPU core: Fixed 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.
  • Luca Elia added 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).
  • shattered updated ms0515.cpp: Hooked up keyboard and floppy, improved video emulation etc.
  • shattered updated the dsk_dsk format: Propagate CRC error flags.
  • shattered updated the ms7004 keyboard: Handle incoming serial data via INT pin.
  • TeamEurope, Brizzo and Vas Crabb updated tigerroad.cpp: replaced bballs MCU simulation with dump from MC68705R3, added to parent set as BAD_DUMP.
  • Vas Crabb and CAPS0ff provided dec0.cpp updates:
    • Added dump for baddudes MCU with note about likely bit error.
    • Replaced drgninja MCU simulation with hacked version of baddudes dump.
    • Latch cleanup: 'LS374 senses positive edge, others are educated guesses.
  • Vas Crabb updated the m6805 core: Added CMOS devices, miscellaneous fixes.
    • Added m146805 and m68hc05 to unidasm.
    • Fixed disassembly of BIT opcodes.
    • Fixed burning cycles on disabled interrupts.
    • Cleaned up BIH/BIL handling.
    • 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.
    • Implemented 'HC05 edge-sensitive external interrupts.
    • Added partially implemented MC68HC05C4, MC68HC05C8 and MC68HC705C8A devices.
    • Fixed problem with edge case in 68705 timer overflow interrupt when TDR=0.
      • Fixes Zorba keyboard and MT6499.
  • Vas Crabb fixed crash on loading invalid cheats, MAME now logs an error and continues.
  • Vas Crabb made 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.
  • Vas Crabb provided natural keyboard fixes:
    • Fixed Shift-Alt combinations.
    • Fixed modifiers with LLE keyboards (shift/alt now work reliably with Sun, Amiga, RM Nimbus, etc.).
    • Fixed crash on keyboard inputs with four characters.
  • Vas Crabb provided Amiga keyboard updates:
    • Corrected polarity of KB_DATA from Amiga to keyboard.
    • Completely rewrote 68HC05CxA-based A1200 keyboard device, now working.
    • Fixed KB_DATA mixing in A500 keyboard.
    • Made A500 keyboard caps lock LED output name consistent with A1200.
    • Added Alt- and Alt-Shift- characters to A500 US keyboard.
    • Factored out matrix keys to a common module shared by A500/A1200.
    • Made new German matrix based on US matrix with Alt-chars hooked up.
    • Added layouts for France/Belgium, Italy and Sweden/Finland, Spain, Denmark, Switzerland, Norway and UK.
      • Switzerland has French/German config option, natural mode only works for French.
    • Added borderline usable dead keys for natural keyboard.
  • Vas Crabb provided Osborne-1 updates:
    • Added Osborne-1 with Nuevo Video board as a clone.
    • Made Alpha Lock a toggling key rather than a fake DIP switch.
  • Vas Crabb made object finder arrays meet more Container/Sequence requirements (allows use of range-based for and many standard algorithms).
  • Vas Crabb updated the dl1416 device: Split interface into signal-level and bus-level APIs, improved support for different variants.
  • Vas Crabb provided sitcom driver updates:
    • Implemented Boot and Reset buttons and remapping of low 32kB.
    • Hooked up PIA, I/O space mirrors, and RS232 interface for downloading programs.
      • PIA ports connected to LED outputs and keypad inputs.
    • Added camera shutter speed measurement rig as a clone.
    • Added a software list with example programs from web site.
      • Software list is not connected yet, need to load software by full path.
  • Vas Crabb cherry-picked some features from self-registering drivers PoC:
    • Use size_t for sizes and <algorithm> for algorithms.
    • Fixed up some files that were getting linked into multiple libraries.
    • Added missing virtual method to sh2 peripheral class.
    • Put shortname in driver struct for locality.
    • Made LRU cache use shared pointers for safety.
  • Vas Crabb used known plaintext attack to obtain Omega program encryption key.
  • Robbbert converted many naked pointers to required_region_ptr.
  • Robbbert updated the m6845 device: Fixed starting address in row/column mode (used by osborne1nv).
  • Tafoid provided 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.
  • belegdol fixed building using system portaudio and utf8proc.
  • Brizzo confirmed MC68705R3 bootstrap program matches MC68705U3 (and U5 for that matter).
  • Heihachi_73 identified bad dumps and fixed info for a number of Aristocrat games.
  • Heihachi_73 updated the aristmk5 driver: Rearranged controls to be more playable and added PORT_NAMEs.
  • SailorSat updated the polyplay driver: Added light organ and layout.
    • Traced the lines on the board to figure out how the lightorgan worked - a zero crossing detector triggers NMI on the CPU, which then operates the light organ.
  • Sandro Ronco updated the aristmk5 driver: Added SPI and hopper emulation - allows non-US games to boot.
  • Nathan Woods updated the imgtool utility: Fixed recently introduced bug that could cause hex numbers to be incorrectly emitted in usage text.
  • Jepael and Lord Nightmare updated saa1099.cpp: Use correct LFSR polynomial for SAA1099 noise generation, added some notes about an unemulated undocumented feature of the noise clock.
  • Couriersud provided netlist library improvements:
    • Refactored netlist pmf code.
    • Small optimization for diode calculations.
    • Remove virtual from some destructors and make them protected.
    • Various cleanups and performance improvements.
    • Fixed some inconsistencies.
    • Reduced overhead to load data (ROMs) in netlist significantly.
      • Previous solution involved a significant amount of redundant replication of information and objects. Now, a ROM name specified as SOMEROM(x21, "romlabel") will be automatically be loaded from region "netlisttag:romlabel" (see hazl1500 and stuntcyc).
    • Fix warning about non existing memory space when netlist is used.
    • Logging enhancements.
    • 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.
    • Made it possible to have multiple update handlers per device.
      • Makes device implementation more flexible and faster and improves performance slightly.
      • Each input is now assigned a notification handler. Currently this is update, but going forward it may be a custom handler.
    • Fixed MEMPOOL on OSX.
    • Added delegate support for Emscripten, ARM processors and VS 2015 x64.
    • Made sure netlist includes are not found directly on include path.
    • Made Windows builds of nltool and nlwav understand Unicode.
    • Added standalone VS2015 build file in src/lib/netlist/build.
    • Added state saving and loading to nltool.
    • Optimized 7493 device - gives some 5 to 10% improvement to pong.
    • Reworked truthtables a bit: moved 9312 and 74279 to TTL macro library, renamed TTL_9312_* to more appropriate DM9312.
    • Fixed a number of warnings from latest Ubuntu clang 5.0.
  • Angelo Salese updated huc6261.cpp: Fixed YUV colors, added palette offset and HuC6261-A mixing - fixes PC-FX boot screen graphics/colors.
  • Angelo Salese updated namcond1.cpp: Enabled preliminary ROZ effects in ygv608 core.
  • Angelo Salese updated segas16b.cpp: Improved inputs for Excite League / Super League.
  • MetalliC updated the sh4 core: Fixed FMOV* opcodes.
  • MetalliC provided naomi.cpp documentation updates:
    • Added two Japan Mushiking cart serial numbers.
    • Documented Atomiswave game exe Build timestamps shown in Test Mode.
    • Corrected few game years.
    • Sorted game list by build dates.
  • Roberto Fresca updated Arrow Bingo: Fixed clocks to be more accurate, hooked principal inputs to make the game playable, added technical notes.
  • Team Europe and Roberto Fresca updated Power Card (Ver 0263, encrypted): Dumped the CY7C291A from inside of the custom CPU, added technical notes.
  • Roberto Fresca updated Arrow Bingo: Added a new input requested by the code, added more technical notes about the program.
  • R. Belmont updated the mac driver: Fixed NuBus memory stomp.
  • R. Belmont updated the konmedal driver: Improved screen display, added ROM banking, started implementing VROM readback.
  • David Haywood added Preliminary TLCS-870 CPU core - work in progress.
  • AJR updated the spacecr driver: Added continue button.
  • AJR de-hardcoded service inputs for gekisou and Atari games.
  • AJR updated polepos.cpp input improvements:
    • Corrected DIP switches and locations for polepos2bi and polepos2bs.
    • Fix bootleg manufacturer info for polepos2bs.
    • Use modern DEVCB features to make extra 4-bit input ports unnecessary.
  • AJR updated lastbank.cpp: Working sound and music.
    • ES-8712: Added busy status read and notes on device.
    • Allow sound CPU to reset the ES-8712 and M6295.
    • Added NVRAM, remapped/renamed inputs, added RTC notes.
  • AJR updated bcruzm12: Changed PSGs to AY8912, added notes on PCB.
  • AJR updated the dblcrown driver: Simplified code by adding 8255 PPI, PSG type is YMZ284.
  • AJR provided gcpinbal modernization and sound improvements:
    • Broke up the bogus IOC structure and used 8-bit handlers where appropriate.
      • Fixes a music playback glitch due to the old handler's failure to account for byte mirroring.
    • Improved OKI M6295 sounds by using correct bit for banking.
    • Load more music by sending interrupt when ES-8712 finishes playing sample.
    • Added interface for 93C46 EEPROM and HCT157.
    • Updated machine flags to better reflect current emulation status.
  • AJR updated kothello: Added DIP SW2 and identified DIP switches and locations.
  • AJR provided vmetal sound improvements:
    • Implemented IRQ used to loop ES-8712 music (much like gcpinbal) - all extant samples should be playable now.
    • Reduced unreasonably high OKIM6295 volume.
    • Removed MACHINE_IMPERFECT_SOUND flag.
    • Added a reset line callback for the ES-8712.
      • 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.
    • Removed the auto-repeat feature from the ES-8712 device. All known games that loop samples do so by status polling or IRQs.
  • AJR updated the upd7810 device: Replaced fake I/O space with callbacks.
  • AJR identified DAC type for capbowl, bowlrama.
  • OzFalcon updated 5clown.cpp, bzone.cpp: Correctly assigned service buttons.
  • Joakim Larsson Edstrom updated the Force CPU-20 driver: Added board variant handling and a few variants.
    • cpu-21, cpu-21a, cpu-21ya, cpu-21b, cpu-21yb and cpu-21s, differs in CPU speed and memory mainly.
    • Added logging.
  • Joakim Larsson Edstrom updated the Prodigy driver: Added netlist for BCD display, got correct boot up display but no interaction yet as keypad is missing, added layout.
  • Joakim Larsson Edstrom updated the VME bus: Added default bus address space and prepared for bus-specific features.
  • Joakim Larsson Edstrom provided via6522 updates:
    • Improved logging.
    • Fixed 50/50 duty cycle for T2 and O2 driven CB1 shift IN & OUT on CB2.
    • Added stop of device_timer when going from internally to externally 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 respectively.
  • Osso made mcombat, mcombata and mcombats boot. They still need inputs/sound (AY8912).
  • Mark Garlanger updated the Heathkit H19/H89 driver: A few fixes and more documentation, cleaned up ROM definitions.
  • Mark Garlanger updated the mc6845 device: The device should not scan out more lines than programmed into the 'visible' register.
  • Nigel Barnes updated the zx81 driver: Added tzx cassette format, changed default ramsize to 16K.
  • Nigel Barnes updated the z88 driver: Fixed expanded video addressing in RAM carts.
  • Nigel Barnes allowed 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 approximate matches.
  • Nigel Barnes updated the aim65 driver: Added 16K PROM/ROM module, 4 extra sockets required for Instant Pascal.
  • Brian Troha updated lastbank.cpp: Filled in Coinage and Demo Sounds DIP switches.
  • Brian Troha updated aquarium.cpp: Documentation and clock update.
    • Replaced PCB layout with with a more informational version, listed out major chips on the PCB including customs.
    • Corrected OKI M6295 clock with actual resonator.
  • Barry Rodewald updated the t10mmc device: Added Play Audio MSF (0x47) command, used by Another CD Player and Astrocounter of Crescents.
  • O. Galibert updated the portaudio module: Minimal const-correctness.
  • Lord Nightmare updated the Apple Laserwriter II NT driver: Updated driver quite a bit, improved the overlay emulation and ram mapping, passes more self tests, added as much info about memory maps as could be easily derived without PAL dumps.
  • Lord Nightmare updated the Apple LaserWriter II NT driver: Hooked up interrupts to 68k, got more self tests to pass.
  • Lord Nightmare updated freekick.cpp: Fixed sprite rom load order in omega, derived input ports from gigas rather than fully redefining everything.
  • Lord Nightmare updated arkanoid.cpp: Added detailed memory map with proper mirroring; documented and mapped the joystick ports which, while present and fully functional on the pcb, are unused by the game code.
  • Luke-Nukem updated FSF address in a few files' license headers.
  • Alex Marshall updated the arm7 core: Added support for the second BLX form for ARMv5 and fixed behavior of second BLX form in THUMB.
  • Frank Palazzolo provided intvkbd driver improvements:
    • Corrected screen alignment.
    • Changed to use generic TMS9927.
    • Aligned STIC and TMS9927 graphics properly.
    • Added preliminary support for testing intvkbd printer.
    • Added proper documented memory addresses for tape drive.
    • TMS9927: added support for driver-specific overscan areas.
  • Alex Marshall updated the pgm2 driver: Fixed address map up a little bit and added notes.
  • superctr updated the namcos22 driver: Added per-game speaker configurations based on manuals and test messages.
  • superctr updated the namcos22 driver: Added 'bodysonic' speaker to airco22b (name comes from test mode).
  • superctr provided C352 improvements:
    • Implemented volume ramping behavior confirmed with recording from real hardware.
      • Example: Tekken 3, reduced pops in especially King's stage BGM.
    • Rewrote mu-law algorithm - might not be quite perfect yet, but is closer to recordings and sounds a bit clearer.
      • Example: Time Crisis.
    • Byte-swapped sample ROMs as necessary.
  • intealls updated the portaudio module: Fixed issues causing crash with 32-bit builds, clamp latency.
  • MASH fixed Battle Cruiser M-12 sprite colors.
  • Guru updated dec0.cpp: Added new and improved readme for the DEC0 based games.
  • F.Ulivi provided hp9845 updates:
    • Fixed parallel poll logic in PHI.
    • Working support for HP9895 dual floppy drive with MFI image format.
    • Corrected aspect ratio of alpha and graphic video modes using a layout file.