Release Date

MAME 0.175 was released on 29 June 2016.


MAMETesters Bugs Fixed



Contributions

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


  • Felipe Sanches provided further improvements to the Patinho Feio driver & CPU.
  • O. Galibert updated the atarigen device: Remove the slapstic direct update handler, which hasn't been necessary since direct access has been enhanced to work correctly on handlers, years ago.
  • O. Galibert updated the sloop device: Direct update handler unneeded too.
  • O. Galibert updated esb.cpp: Direct update for slapstic gone too.
  • Tauwasser updated the gameboy driver: Improved support for M161 and MMM01 mappers.
  • Happy updated the n64dd device: Change N64DD to use harddisk device instead of quikload device. Updated checksum for Randnet disk, previous conversion was faulty.
  • AJR provided West Story improvements:
    • Thoroughly reworked weststry memory map based on M68000 code.
    • FG tilemap scrolling implemented for weststry.
    • Sound hooked up, but doesn't fully work (YM3812 stops sending IRQs).
    • Various things documented in other bloodbro.cpp games.
  • MASH added color proms to Ozma Wars.
  • Tafoid merged ataxx.cpp into leland.cpp as they had a completely shared main header file (leland.h).
  • Vas Crabb did some ui refactoring.
    • Make ARRAY_LENGTH cause a compile error if used with a pointer/vector.
    • Move menu classes into ::ui namesapce and reduce scope of many symbols.
    • Clean up text input code, move common operations to inline templates.
    • Fix numerous one-byte buffer overruns.
    • Don't flat-out ignore input beyond the C1 hole.
    • Fix decoding of SDL text input.
  • Ville Linde added highly experimental SHARC recompiler.
  • Fabio Priuli updated psx.xml: Added more information and small fixes to Japanese discs.
  • Ioannis Bampoulas provided Tetris + Cherry Master (+K, Canada Version, encrypted) hidden switch documentation.
  • Roberto Fresca updated the Merit Match Games driver:
    • Added technical notes and corrected CRT 810 layout + old notes.
    • Some cleanup for coding standards, and fixed Coinage DIP switches.
  • Roberto Fresca updated the Magic Fly driver: Refactored PCB layout and pinout with new findings and PCB trace. Also added some technical notes.
  • Roberto Fresca updated Major Poker:
    • Added missing G2 gal16v8d.
    • Added missing PLDs, plus technical notes.
  • Roberto Fresca updated Royal Card (Austrian, set 8):
    • Added mirrored VRAM to $4000/$5000.
    • Worked and added a default NVRAM. The game now is working properly.
  • Roberto Fresca updated Buena Suerte: Completed the Protel PCB set. Rearranged the graphics ROMs to get accurate gfx banks. Discrete sound needs to be traced. Game is working properly.
  • Roberto Fresca and Gaby updated Buena Suerte (Protel PCB): Added technical notes and a WIP edge connector and mech counters pinout.
  • Roberto Fresca updated the Flaming 7 driver:
    • Added new technical notes.
    • Flaming 7: Decrypted the graphics ROMs & fixed the gfxdecode. Bipolar PROM decode is still wrong.
    • Graphics Bank 1 is color-accurate. Added some technical notes about the missing extra layer for bonus graphics with the related VRAM used range.
    • Dedicated inputs + DIP switch bank #1.
    • DIP switches bank #2: bonus pay & internal progressive.
    • DIP switches bank #3: Maximum Bet, Coin-In Timeout, Denomination, and Progressive Sign.
    • DIP switches bank #2: Notes about Bonus Pay.
    • DIP switches bank #3: Added Progressive Sign notes.
    • Added a DIP switches table ASCII layout.
    • Added Pay Table Diagram.
    • Added Pinout Diagram.
    • Documented the Cyberdyne Printer Harness circuitry.
    • Fixed the bipolar PROM load. Also improved both graphics banks colors. Colors now are close, but still imperfect.
  • Roberto Fresca updated Flaming 7 (Taiwanese): Splitted a new machine driver, and added proper gfxdecode. Improved the GFX bank #2. Still needs work.
  • Roberto Fresca updated Flaming 7 (W-4 hardware):
    • Added hand made electronic serial DS2401 dump, as a start of electronic serial number support. Added technical notes.
    • Added electronic serial DS2401 device. Still remaining the connection and read routines.
    • Connected the electronic serial DS2401 device to the proper PPI8255 (PC6) line.
  • Vas Crabb updated Flaming 7 (W-4 hardware): correct DS2401 hookup and reverse-engineer protection to get required serial number.
  • Ken White added Commodore PET Joysticks and Sound Device.
  • R. Belmont updated the sun2 driver: Preliminary MMU implementation, still has issues.
  • R. Belmontfurther updated the sun2 driver: MMU fixes, both VME and Multibus variants now POST and show something.
  • Fabio Priuli updated gbcolor.xml: Documented more Game Boy Color PCBs, based on no-intro pictures.
  • Fabio Priuli updated vboy.xml: Documented a few Virtual Boy PCBs, based on no-intro pictures.
  • smf made chdman ignore cylinders, heads and sectors from identify device data, based on the ATA 5 specification.
  • smf added CHS and LBA limits when the chd doesn't contain identify device data.
  • fuzzbop fixed NeoGeo CD P2 inputs.
  • Angelo Salese added comlist and commit commands to debugger. comlist prints available comments in debugger console, commit will do a bulk comadd and comsave operation.
  • O. Galibert updated some driver to not use AM_MASK on ram, since the risk is ending up with an incorrect allocation size.
  • Baverese updated the rainbow driver: led polarity.
  • R. Belmont updated the sun2 driver: fixed more MMU issues, added serial ports.
  • SailorSat fixed TGP parser crashing in Model 1.
  • headkaze fixed network output to include all data.
  • f205v and ShouTime updated the naomi docs: 'Samba de Amigo Rev.A' cartridge contents identical to already dumped Rev.B.
  • Lord Nightmare updated the lk201 driver: fix 6805 clock to verified value.
  • R. Belmont provided sun3 updates:
    • Split sun3 and sun3x archiectures, they're different enough.
    • Sun3 MMU and unique hardware implemented, all models now POST including 3/2xx.
  • R. Belmont provided sun4 updates:
    • Preliminary implementation of sun4c MMU and related hardware.
  • Fabio Priuli updated gba.xml: documented some more Game Boy Advance PCBs.
  • Fabio Priuli updated gba.cpp: several improvements
    • Implemented emulation of the "General Purpose I/O" port (GPIO) of GBA.
    • Hooked up S-3511 RTC emulation through the GPIO port. This allows to avoid the "Internal battery has run dry [...] clock-based events will no longer occur" messages in Pokemon Emerald / Ruby / Sapphire. This also promotes Sennen Kazoku to working state.
    • Hooked up Boktai Light Sensor emulation through the GPIO port. This allows to avoid the "Solar Sensor is broken" message in Boktai / Bokura no Taiyou, which is now playable and to recharge your weapons in all three games of the series. Light level has to be chosen via the "Machine Configuration" menu, until we get some kind of camera input.
    • Hooked up Warioware Twist Gyroscope emulation through the GPIO port. This allows to play the minigames, even if in some case the input sensibility might need a few tweaks.
    • Hooked up Warioware Twist & Drill Dozer Rumble emulation through the GPIO port. MAME will now output a "Rumble" output bit (0 for Rumble=OFF and 1 for Rumble=ON) whenever the games try to access the Rumble component… third party applications can now listen to the output and redirect it to some hardware that can "rumble" in sync with the gameplay.
  • Fabio Priuli updated gba.cpp: implemented emulation of the Tilt sensor used by Yoshi's Universal Gravitation / Yoshi Topsy-Turvy / Yoshi no Banyuuinryoku (and by Koro Koro Puzzle). Note that the calibration can seem a bit tricky at first, because the emulated screen does not turn as the GBA would... In order to properly calibrate the sensor, just keep pressed right for a few seconds when requested to calibrate right inclination (first calibration screen in Yoshi Universal Gravitation) so to get the full right range; then keep pressed for left for a few seconds when requested to calibrate left inclination (second calibration screen in Yoshi Universal Gravitation) so to get the full left range.
  • Fabio Priuli updated gb.cpp: Added Rumble emulation to the MBC-5 Game Boy Color games which supported it. MAME will now output a "Rumble" output bit (0 for Rumble=OFF and 1 for Rumble=ON) whenever the games try to access the Rumble components¦ third party applications can now listen to the output and redirect it to some hardware that can "rumble" in sync with the gameplay.
  • Fabio Priuli updated gb.cpp: Added partial RTC emulation to the MBC-3 Game Boy Color games which supported it. Clock proceeds a bit too fast during gameplay, but at least it is not stuck anymore to the time of first configuration.
  • Couriersud provided Netlist library changes.
    • Introduced HINT(device, hint) to clarify that hints are inheritent and not specific to devices.
    • Added improved profiling support to netlist. Statistics output now proposes devices for which whole device activation/deactivation be disabled. No significant improvement for pong, but breakout experiences a 10% improvement.
    • Introduced perftime_t and perfcount_t for gathering statistics. These templates do not create any code if statistics are not kept.
    • Make help2man ./nltool produce usuable output.
    • Replaced shared_ptr by unique_ptr.
    • Better seperation of setup_t and netlist_t.
    • Fixed bugs in rdtsc code. Refactored timer code.
    • Moved options code from include to cpp file.
    • More truthtable refactoring. Removed half-finished code for internal state support. As implemented, this would have had no support for timing delays.
    • All netlist device setup is now done in the device constructor. This significantly increases readability and stability and allowed to remove init_object calls and start calls.
    • Removed a significant amount of dead code.
    • Remove ATTR_HOT and ATTR_COLD. Refactored netlist_time.
    • More STL usage and c++11.
    • Get rid of nl_math. Remove nl_util.h and moved contents to plib/putil.h.
  • Ryan Holtz did a major refactoring of debugger core.
    • Eliminate globals/file statics.
    • Remove lots of stuff from global scope.
    • Use std::function for custom command registration.
    • Eliminate some trampolines.
    • Build fixes from Vas Crabb and balrog.
  • Ryan Holtz updated n64.cpp: Disabled fast RAM, as it prevents watchpoints from working and doesn't gain much on the interpreter core.
  • Lord Nightmare updated rainbow.cpp: add 23-090b1 z80 arbitrator PROM dump.
  • AntoPISA did a small update of italian traslation.
  • Vas Crabb fixed keyboard shortcuts for disassembly comments pane.
    • Win32 previously recognised Ctrl+N but menu incorrectly showed Ctrl+M.
    • Qt showed Ctrl+C but it was swallowed by text editing and didn't work.
    • Ctrl+N is now shown/used by Win32 and Qt (matches Cmd-N on OS X).
  • Vas Crabb fixed git version.
    • git version is set by top-level make, not just when GENie runs.
    • can set IGNORE_GIT=1 for make to ignore git.
    • git ignored/unavailable uses "unknown" in version string.
    • mark modified trees as dirty.
    • note that version now comes from makefile.
  • F.Ulivi provided a little change to device_image_interface::call_display to better decouple UI fronted and image devices.
  • PeT and James added the rom for GameKing 3.
  • Fabio Priuli updated fmtowns_cd.xml: added more info, based on Breiztiger's research.
  • Fabio Priuli updated fmtowns_flop.xml: added a new software list for floppy-only FM Towns games (boot disks for CDs remain in the CD list, for easier launching). Many thanks to r09 and Breiztiger for help with info and images.
  • gekkio updated the gameboy driver: Added DMG v0 boot rom.
  • Anders Sandahl updated the abc80x driver: Added ROM version 1.05 for the 55-21046 disk controller.
  • Nigel Barnes updated the sdk80 driver: Added correct monitor ROM.
  • Nigel Barnes updated the imds2 driver: Added monitor versions 1.1 and 1.2.
  • Nigel Barnes updated the terminal device: Fixed Color configuration.
  • O.Galibert updated the memory system:
    • Added AM_SELECT/addrselect field. Replaces the old AM_MIRROR/AM_MASK combo used to mirror a handler and get the mirrored bits in the offset.
    • Removed mask and/or mirror from where it didn't belong. Simplified a lot of instances of mask that just weren't needed, especially in bus handlers. Used the short forms of install handlers where possible.
    • Replaced the 60s hippy, "It's cool man" range parameter handling in map_range that tried to guess what was meant when the values passed were not entirely sensible, by a cranky, diner waitress-turned IRS auditor curmudgeon. Main control function has a series of 14 tests just to find a reason to fatalerror out your requests. You have been warned.
  • belegdol fixed double hyphen in -pipe.
  • Anders Sandahl updated the abc802 and abc806 drivers: Added LUXNET BIOSes.
  • Angelo Salese added command strobe callback interface for LDV1000, and hooked it up to esh.cpp driver.
  • Angelo Salese updated raiden2cop.cpp: Fixed BCD overflow score bug in Godzilla.
  • O. Galibert removed device_memory_interface from the eeprom device.
  • Fabio Priuli updated cdi.xml: added info about original disks.
  • O. Galibert removed device_memory_interface from the intelfsh and i2cmem devices.
  • Heihachi_73 provided aristmk5.cpp improvements:
    • reorganized sets based on their actual description.
    • added proper descriptions to most sets.
    • unified rom naming and added a few sets that were missing.
  • Heihachi_73 provided aristmk6.cpp improvements:
    • reorganized sets based on their actual description and removed a few sets which were hacked or incomplete, compared to their parents.
    • unified rom naming and fixed loading offset in games which use the expansion board. Also added a few sets that were missing.
  • Heihachi_73 and Fabio Priuli updated aristmk6.cpp: fixed BIOS loading and some BIOS naming; removed an overdumped BIOS and moved qnilese base PCB ROMS to the BIOS set.
  • Lord Nightmare updated decwritr.cpp: update the la120 driver documentation a bit, fixed memory mirror related issue.
  • NeXT updated decwritr.c: documented the Caps Lock key being a physical toggle.
  • O. Galibert updated emumem.cpp: Handlers on different subunits of the same address with different address masks are now supported.
  • O. Galibert updated halleyc.cpp: Some steps towards a better readability of the video code.
  • Fabio Priuli updated megadriv.cpp: improved description of many taiwanese unlicensed titles + added dump of Ju Ji Ma Jiang II by Sun Green.
  • O. Galibert updated the newbrain fdc device: fix mirrors w.r.t mask.
  • O. Galibert updated the apollo driver: install the unmapped handler in the correct post-trampoline range.
  • O. Galibert updated the l9nibble driver: If it's a tms9900, put one, because the 9980 address space is too small.
  • O. Galibert updated the prox180x and pve500 driver: Map fix.
  • O. Galibert fixed the tms57002 core following changes to the memory subsystem.
  • Vas Crabb improved the SPARC disassembler:
    • Support SPARCv9.
    • Allow plug-in ASI comments.
    • Fix format of some opcodes.
    • Produce clr synthetic.
    • Allow running in v7, v8 and v9 modes.
    • Fix addcc/andcc in SPARCv7 mode and simplify integer op tables.
    • Allow ASI descriptions to be supplied with MCFG macro.
    • VIS I (UltraSPARC) and II (UltraSPARC III) support.
    • VIS 2+, VIS 3 and VIS 3B support.
    • Add several SPARC models to unidasm.
  • O. Galibert updated banctec to usce the correct CPU (M6803).
  • Ariane Fugmann did some WIP work on the M2COMM device: hook up comm board in model2.
  • Angelo Salese updated seibucop.cpp: Prevent cop_angle to overflow byte range. Fixes III to I quadrant movements in Legionnaire and Heated Barrel.
  • Vas Crabb updated the sun4 driver: add SPARC ASI descriptions.
  • O. Galibert updated the mac driver: Fix interactions between mirror and range.
  • Ryan Holtz rewrote SPARC emulation based on detailed descriptions from SPARC manual.
  • Bavarese updated the dec_lk201 driver: keyclick.
  • Angelo Salese added "return to origin point (0,0)" feature to Tilemap Viewer (tied with HOME key).
  • Alex Miller improved workaround for missing cbegin/cend in glibstdc++.
  • Enik Land updated sg1000.cpp: many improvements.
    • Create a SG-1000 expansion slot.
    • Hook up the SG-1000 expansion slot to sg1000.cpp and sms.cpp (sg1000m3).
    • Split the sk1100 code from sg1000.cpp and attach it to the new expansion slot.
    • Create a new FM Sound Unit device and attach it to the new expansion slot.
    • For the sc3000 driver, re-add sk1100 as a fixed SG-1000 expansion device.
    • Add sg1000 software list to sg1000m3 and Japanese/Korean SMS drivers.
  • Enik Land updated sms.cpp: implemented some new findings.
    • Remove some mirrors for ports $DC/$DD on SMSJ based on Charles' hw tests.
    • Add basic C-Sync callback to 315_5124.cpp, based on Charles' hw tests.
    • Add built-in Rapid Fire (uses C-Sync) for SMSJ and Korean SMS1 drivers.
    • Add new SMS drivers due to XTAL differences: sms1br - Tec Toy Master System I (Brazil) sms2br - Tec Toy Master System II (Brazil) smsbr - Tec Toy Master System III Compact (Brazil) sms1paln - Tec Toy Master System I (PAL-N) sms2paln - Tec Toy Master System II (PAL-N) smspaln - Tec Toy Master System III Compact (PAL-N) Brazil is PAL-M TV system, but I decided to call it by the country name, seems to be better recognizable and for emulation looks more like a NTSC system. PAL-N is used in Argentina, Paraguay and Uruguay and looks closer to the European PAL system when compared to PAL-M.
  • Nathan Woods did some load save state preparations:
    • A number of changes and refactorings in preparation for a new load/save state menu. Most notably, I am C++-ifying osd_directory (now osd::directory) and changing osd_stat() to return std::unique_ptrosd::directory::entry.
  • Vas Crabb provided a POSIX implementation for new directory read features, cleanup of Windows implementation, return directory handle as smart pointer, fix full build.
  • O. Galibert updated the cop device: nicer sorting routine.
  • Vas Crabb supplied modified time for files in archives.
  • Ryan Holtz fixed LDUH, LDSH, LDUHA, and LDSHA opcodes in the SPARC core.
  • Barry Rodewald provided ImGui debugger improvements.
    • Memory views now control their own position, removing the scrollbar, allows finer control of large memory areas.
    • Pressing Enter on an empty debugger console input now does a single step.
    • Disassembly and Memory expression inputs now auto-select all.
    • Fix various key inputs.
    • Send character inputs to views, allowing memory editing to be possible in a memory window.
    • Show a rectangle around the view with focus.
    • Add history functionality (press up/down in the debugger console input widget).
    • Allow log windows and debugger console scrollbars to stay at their maximum value, if moved there.
  • Roberto Fresca updated Flaming 7 (original): Fixed the Paytable DIP switches.
  • Lord Nightmare added older version SPARCstation IPX (Sun 4/50) ROM as an alt bios, and add ROM locations.
  • Robbbert updated the trs80 driver: fixed loss of keyboard control on some games.


Game Support

New machines added or promoted from NOT_WORKING status


New clones added or promoted from NOT_WORKING status


New machines marked as NOT_WORKING


New clones marked as NOT_WORKING


Notable new WORKING software list additions


Notable new NOT_WORKING software list additions