- 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), Karnov (Japan, bootleg with NEC D8748HD), NBA Play By Play (ver AAB), OutRun 2 Special Tours (GDX-0014), Phoenix (IDI bootleg), 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), 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, Hustler (alternate set), 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: tms1025
- ARM7 CPU: Repair broken ARM (arm7\arm7ops.cpp)
- Dynamic Re-Compiling: Fixed MAME crashed running scud with -bench 90 (cpu\drccache.cpp) (ID 06492)
- MIPS CPUs: Retry fixing FPU register aliasing (mips\mips3.cpp and mips3drc.cpp)
- 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.
- 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.
. 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)
- 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.
- ambush.cpp: Driver state cleanups
- blockade.cpp: Rewrote driver
- chihiro.cpp: Redumped Ollie King (GDX-0007)
- deco32.cpp: Comment out popmessage
- docastle.cpp: Read inputs through TMS1025. Added input callbacks and read handler to TMS1024/TMS1025. Clean up code a little.
. 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
- 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
. 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
- peplus.cpp: Fixed CID: 138606 "Logical vs. bitwise operator"
- polyplay.cpp: Hook up the SIO
- seicross.cpp: Added XTAL
- sg1000a.cpp: PSG is SN76489AN, just like the console.
- AGEMAME: New aristmk5.cpp sets, layouts and documentation
- Alpha One: Adjusted screen size
- Area 51: Site 4: Documented an earlier BIOS version. Doesn't seem compatible with the HDs available.
- 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).
- Mario Kart Arcade GP 2: Added security PIC dump 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.
- Phoenix: Dumped/redumped the PROM for some of the bootlegs. Also started documenting the differences.
- PinMAME: Added program ROMs and corrected title for Volley. Redumped Columbia.
- Poizone: Fixed 'Setting 2' dipswitch
. 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)
- Space Warp: Added Hunchback (Galaxian hardware) color prom
- Time Attacker: Update notes
- 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, neopcb.cpp and suprgolf.cpp
- Description changes of CoMOTION, Dynablaster / Bomber Man (bootleg, set 1), Dynablaster / Bomber Man (bootleg, set 2), 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)
. 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 (https://github.com/mamedev/mame/pull/2075).
. 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 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<:string>. 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 (0.9.8.5 pre-release), fixes build with MacPorts Clang.
. 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
. Fixed null pointer bug when -verifyroms is used without a driver spec
. Include devices in -listxml with * or no argument
. 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 &'
. 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
"Theory is when you know everthing but nothing works. Practice is when everything works but no one knows why.
In our lab, theory and practice are combined: nothing works and no one knows why."