- New games: El Fin Del Tiempo
- New Working games: Head On (Sidam bootleg, set 2), Head On 2 (Sidam bootleg) and War Mission
- New Non-Working games: Mad Dog II: The Lost Gold (3DO hardware)
- New clones: Air Hockey (6.12?, encrypted), Bubble Memories: The Story Of Bubble Bobble III (Ver 2.5A 1996/02/21), Come-Cocos (Ms. Pac-Man) (Cocamatic bootleg), Galaxy Wars II (Defender bootleg), Ghost Pilots (prototype), Golden Tee Golf (Joystick, v3.3), Gran Rally (Spanish bootleg of Pole Position II), The Key Of Avalon - The Wizard Master (client) (Rev C) (GDT-0006C), The Key Of Avalon 2.5 - War of the Key (client) (Rev A) (GDT-0019A), The Key Of Avalon 2.5 - War of the Key (server) (Rev A) (GDT-0018A), 'Knights of Valour 2 Plus - Nine Dragons / Sanguo Zhan Ji 2 Qunxiong Zhengba / Sanguo Zhan Ji 2 Feilong Zai Tian / Sangoku Senki Busyou Souha (ver. M200XX, 200, 100CN)', Metal Slug 3 (NGM-2560, earlier), Raiden Fighters (US, newer) and Viper Phase 1 (New Version, Germany)
- New drivers: efdt.cpp and nichild.cpp
- New devices: buggyboyjr_sound, bus_mouse, dcs2_audio_denver_2ch, fantasy_sound, isa8_ec1841_0003, monsterb_sound, mtrap_sound, neocart_mslug3a, nibbler_sound, pballoon_sound, reel, sasuke_sound, satansat_sound, tx1j_sound and vanguard_sound
- Intel 4004 CPU: Cleaner boilerplate (mcs40\mcs40.h)
- Intel I486 CPU: Don't mask top 8 bits of sgdt for 486 too, fixes win32s (cpu\i386\i486ops.hxx)
- AD1848 16-bit SoundPort: Swapped the crystals so it's playing at 32Khz instead of 22.05. This fixed all sounds playing too fast in mtouchxl.cpp (ID 06983)
- CD Audio: Added missing header bytes to mode sense, fixes audio playing with common DOS CDROM drivers (machine\t10mmc.cpp).
- DCS2 Audio Denver: Updated DCS audio to get San Francisco Rush 2049 closer to working (audio\dcs.cpp)
- Sound Blaster 16: Implemented direct DAC mode
- TMS5220 sound: Converted logging calls to logmacro.h standard
- 3dfx Voodoo Graphics: Reinstate texture address masking. Fixes segmentation fault in War: The Final Assault.
- Intel 8275 CRTC: DMA refinements: Excluded FIFO characters from counting towards filling character buffer. Extended DMA up to one character past an "end of DMA" control code.
- MC146818 RTC: Don't restart timer unnecessarily
- PSX GPU: Added missing primitives (video\psx.cpp)
- Serial EEPROM: Prevent ambiguity between clock and streaming enable
- Z80 SCC Channel
. Removed generic device type 'Z80 SCC' (which nothing was using) and custom MCFG_SCCXXXX_ADD macros
. Actually clear interrupt state
. Dumped BIOS for ALG 3DO based arcade games
. Disallow md23do to write to ROM region via mirror, boots to 3do logo and fails extended RSA check.
- alpha68k.cpp: Added addressable latch for type II and V configurations
- balsente.cpp: Use Intel 8253 PIT device and clean up names. Splitted NVRAM between two X2212 devices.
. Separated parts specific to Exciting Soccer from Champion Baseball state
. Fixed missing AY-3-8910 sound in clone Champion Base Ball Part-2 (Japan) (ID 06989)
- chihiro.cpp: Moved ids into constructors (machine\xbox_pci.cpp)
- exidy.cpp and victory.cpp: Full encapsulation of audio devices
- gaiden.cpp: Added undumped MCU to wildfang and stratof configuration and correct size of internal ROM region. Note: Regarding the MCU type: This was reported as "NEC D8749HC" back in 2001 by Yasuhiro Ogawa, but the location (unpopulated on Ninja Gaiden) is silkscreened "uPD8049" on the PCB.
. Added separate dipswitch settings for Gradius IV
. Allows gun to work with default settings in Silent Scope and Teraburst. This fixed analog inputs do not function in Silent Scope (ID 06992).
. Use Gradius IV dips for NBA Play By Play and removed periodic interrupt
. Added input port definitions for NBA Play By Play and Teraburst
- jaguar.cpp: Use ioport finders for joysticks/buttons
- kinst.cpp: Killer Instinct driver needs to stay in machine_reset(). Fixes game hangs during attract mode (ID 06988).
- ksys573.cpp: Cleanup driver
- leland.cpp: Removed more literal tags, splitted redline/offroad/etc. out of Leland state.
- megaplay.cpp: Demoted Mega Play games with MACHINE_IMPERFECT_GRAPHICS, because overlay bitmap is wrong (title screen, Mega Play logo, etc...). Added notes of overlay.
- ms32.cpp: CPU type identification
- ninjakd2.cpp: Attempt fixing bullets not shot by enemies in Omega Fighter + basic inheritance
- segas24.cpp: Further cleanups
- seta.cpp: Added seperate value for tilemap banks. Added user_data for tilemap banks. Minor cleanups. Added seperate value for rambank. Added output_finders. Break up the "vregs" handler. Acknowledge more interrupts.
. Removed some tag lookups. Added more device finders.
. Improved 'SNK6502 Custom Sound' encapsulation and fixed BGM. Frequency/rate should be set in config, not reset handlers. Speech should be moved into a separate device for the games that have it. Probably should be specialisations for sasuke and satansat. Not all games have three channels.
. Replaced machine().device with finders
. Fixed ROM loading bug in The Empire Strikes Back
- stv.cpp: Removed tag lookup from machine\saturn.cpp
- taito_b.cpp: Identified TC0180VCU as source of interrupts and change these into callbacks. The interval between the two has been changed (no longer being an arbitrary multiple of the CPU clock), but the timing is still more or less guesswork.
. Made a massive order cleanup
. Removed an ugly kludge in Round Up 5, fixes soft resets. Demoted game to not working for obvious reasons. Added vertical text scrolling. Fixed video priority on map screen after a play. BG gfxdata, needs decoding. Also cleaned up text gfx data. Added background bitmap layers. Improved road clipping. Misc I/O. Added SCREEN_RAW_PARAMS. Apply proper shadow sprites.
. Fixed Apache 3 out of bounds colors for sprites (trees and buildings). Apply proper shadow sprites.
. Make Cycle Warriors sub CPU to not stall at soft resets
. Merged Cycle Warriors/Big Fight memory maps
. Some video fixes to Cycle Warriors and Big Fight: Marked first drawn layer as opaque. Added row and col scroll register select.
. Added shadow sprites. OKI status is actually reversed active wise for Cycle Warriors and Big Fight, fixes "we got em" sample playback in former.
. Bit 15 of tilemap code is per-tile high priority with regards to sprites. Fixes several priority glitches.
. Bit 14 of tilemap is per-tile opacity enable. Color banks are HW configured. Fixes fade in/out effects and CRT test colors.
. Apply page wraparound for backgrounds, fixes various glitches in Big Fight and Cycle Warriors.
. Inverted shadow product when a specific register is enabled, used by Big Fight when player fights against Chen to simulate disco strobe lights.
- tx1.cpp: Refactored TX-1 to have separate sound-board devices. Removed tag lookups. Fixed layout for new tag lookups.
- AGEMAME: Separated reel and stepper devices to an extent, cleaned up use of custom mcfgs for them (machine\steppers.cpp).
- Asteroids Deluxe: Documented (rev 3) change and correct 'Difficulty' dipswitch
- BanBam: Protection checkpoint for BanBam and clones, improved simulation. Still imperfect, but all graphics are correct and the games no longer crash. Marked MCU as good dump from observation and Phil Bennett's comments.
- Buggy Challenge: Fixed MCU to run at 3MHz as shown on the schematic, and added sound address map and other comments.
- Crystal Castles: Added addressable latches
- Cyber Tank: Cleanup duplicates. Reduced runtime tag lookups. Fixed sound output (related to OST)
- Ferrari F355 Challenge 2: Added alternate program ROM dump
- I, Robot: Use X2212 device for NVRAM
- Jumping Pop: Fixed missing graphics in first stage (ID 06984)
- Keirin Ou: Attempt to fix garbage graphics after a bonus stage
- Kick Start: Added input buttons mode
- Major Havoc: Use parallel EEPROM device
- Monster Bash: Splitted sound board into a proper device
- Portraits and Quiz de Hyuu!Hyuu: Demoted games to not working.
- Quantum: Use X2212 device for NVRAM
- Reality Tennis: Use parallel EEPROM device. Fixed device finders. Minor cleanups
- Renegade: Fixed in-game music stops playing after a while (ID 07007)
- Return of the Jedi
. Moderate driver overhaul. Splitted NVRAM between two 4-bit X2212 devices. Guarantee an invalid checksum when default NVRAM data is used (so that the manufacturer's high scores will be installed).
. Soundlatch modernization. Use WSQ handler to drive TMS5220.
- Star Force: Simplified background color swap
- Tetris (set 1): Replaced NVRAM with parallel EEPROM. Hook up I8749 MCU to get working sound in clone Tetris (bootleg set 3)
- Truco Clemente: Allow multiple coin insertion
- Video Poker: Clean up
- War Mission: Added new disk image (Game now playable). Note: Data after 0xd56b0 would not read consistently, however the game only appears to use the first 24 tracks (up to 0x48fff) as it loads once on startup, not during gameplay, and all tracks before that gave consistent reads. There is data after this point but it is likely leftovers from another game / whatever was on the disk before, so for our purposes this should be fine. Some bullets do seem to spawn from locations where there are no enemies, but I think this is just annoying game design. 2 player mode can be enabled in service mode for War Mission, it is disabled by default (settings are stored on the disk).
- Xain'd Sleena: Clean up. Reduced code duplication and literal tags.
- Dipswitch fixes in asteroid.cpp, tatsumi.cpp, trucocl.cpp and vicdual.cpp
- Fixed rom names in bking.cpp, itech8.cpp and neogeo.cpp
- Description changes of Cabaret Show, Raiden Fighters (US, earlier), Raiden Fighters (Japan, earlier), Raiden Fighters (Japan, earliest), Raiden Fighters (Japan, newer), Trophy Hunting - Bear & Moose V1.00, Trophy Hunting - Bear & Moose V1.00 (location test) and Turkey Hunting USA V1.00
- Renamed (dynamoah) to (dynamoaha) and (gtg) to (gtgj31)
. Use plural names for output finders when there are multiple outputs
. Assorted cleanup involving driver_init for 1942.cpp, 2mindril.cpp, 3do.cpp, 40love.cpp, 4enraya.cpp, 4roses.cpp and taito_f3.cpp
. Move the +1 to the proper place in the ROM BIOS macros (emu\romload.h and romentry.h) - that's been confusing people for far too long.
. Added a valdiation check for ROMs with BIOS flag set that are unselectable, fix the things it uncovers.
. Allow BIOS declaration before first ROM region
. Improved validation and fixed formatting (emu\diexec.cpp and screen.cpp)
. Eliminated customized MCFG_DEVICE_ADD macros (AT28C16, C352, DS1302, DS1386, DS2404, MC146818, MCD212, MSM5832, Timekeeper, WD1773, WPC_DMD, WPC_LAMP, WPC_OUT, WPC_PIC, WPC_SHIFT and YGV608)
. Added customized MCFG_DEVICE_ADD macros (asuka.cpp, goldstar.cpp, hornet.cpp, ksys573.cpp, model1.cpp, model2.cpp, ninjaw.cpp, othunder.cpp, segahang.cpp, segam1.cpp, segaorun.cpp, segas16a.cpp, segas16b.cpp, segas18.cpp, segas24.cpp, segaxbd.cpp, segaybd.cpp, stfight.cpp, system16.cpp, taito_f2.cpp, taito_z.cpp, vicdual.cpp, warriorb.cpp, video\sega16sp.h, segaic16.h, segaic16_road.h, segaic24.h, stfight_dev.h and tc0110pcr.h)
. Use device finder for deco_mlc.cpp, dogfgt.cpp, drw80pkr.cpp, gaelco3d.cpp, magmax.cpp, mediagx.cpp, mpu4.cpp, snk6502.cpp, starwars.cpp and trackfld.cpp
. Miscellaneous machine().device and MCFG cleanups (cclimber.cpp, crystal.cpp, galaga.cpp (Battles), gaplus.cpp and video\tia.cpp)
. Removed machine().device lookups (konamigx.cpp, midyunit.cpp, model2.cpp and video\k054338.cpp)
. Removed machine().device usage from cps3, dkong, gridlee, hyprolyb, irobot, jedi, mario, phoenix, pleiads, polepos, redalert, scramble, segag80r, segag80v, segas24, sis85c496, snk6502, starwars, toaplan1, trackfld, tx1 and audio\segasnd.cpp. src/mame/audio is now clean of machine().device.
. Replaced machine().device with subdevice for NVRAM installation (esripsys.cpp, hitpoker.cpp, magtouch.cpp, meritm.cpp, namcos2.cpp, pcat_dyn.cpp, pcat_nit.cpp, s7.cpp, segas24.cpp, tmnt.cpp, triplhnt.cpp, ttchamp.cpp, twin16.cpp, upscope.cpp, videopkr.cpp and zn.cpp)
. MEMORY SYSTEM
. Reduced code duplication and added support for device finders in more places in memory maps (emu\addrmap.h)
. Make address map config look like Next-gen
. Added streamline templates in addrmap.h. Get rid of overloads on read/write member names - this will become even more important in the near future.
. Prevent segfault at stop and when selecting device from menu (emu\dinetwork.cpp and osd\osdnet.cpp)
. Fixed connecting to existing socket (osd\modules\file\winptty.cpp)
. Added discord presence plugin. Use domain sockets and pipes.
. Use explicit integer sizes rather than "native" types (plugins\cheatfind\init.lua)
. VGM player: Added Stop, Pause, Play, Restart and Loop controls. Added rudimentary layout using default font symbols to provide clickable buttons for the new media controls recently added. The cursor doesn't seem to show up, but I'm sure one of the layout wizards can quickly remedy that. Added LEDs.
- SDLMAME: GetCurrentProcessId is valid on lib\osdlib_uwp.cpp
. Added asserts to detect tag being set after object resolution and resolved multiple times
. Added AppVeyor config (appveyor.yml)
. Fixed SUBTARGET=virtual (cripts\target\mame\virtual.lua)
. Fixed m68000 makefile not respecting the VERBOSE build option (m68000\makefile)
"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."