- New games: Cosmo Gang (US)
- New Working games: Star Wars Arcade and Wing War
- New Non-Working games: 21 (Sigma), Buttobi Striker, Chameleon RX-1, Fantasy Story, Golden Winner, Kattobase Power Pro Kun, Pub Time Darts, Super Mario Fushigi no Korokoro Party (center), Super Mario Fushigi no Korokoro Party (satellite), Sweet Land and 'unknown VRender0+ bowling game'
- New clones: Arlington Horse Racing (v1.40-D), Blood Bros. (Modular System), Gondomania (World), Magic Bubble (Adult version, YS1302 PCB, set 2), Megatouch 5 (9255-60-50 R0G, Bi-Lingual GER/ENG version), Poitto! (revision C), Raiden (Modular System), Star Horse Progress Returns (live and voice), Star Horse Progress Returns (main screen left), Star Horse Progress Returns (main screen right), Star Horse Progress Returns (sound), Tetris (bartop, prototype) and Tron (5/12)
- New drivers: bloodbro_ms.cpp, cgang.cpp, chameleonrx1.cpp, pubtimed.cpp, raiden_ms.cpp, sigma21.cpp, sweetland.cpp, v0bowl.cpp and zpinball.cpp
- New devices: arm_7500fe_soc, arm_iomd, arm_vidc20, ms32spr, pic16c620, pic16c620a, pic16c621, pic16c621a, pic16c622, pic16c622a and pwm_display
. Intel I386: Show status of some cpu flags in the state debugger view
. Motorola MC6802 and NSC8105: Internalized internal RAM
. Motorola MC68000: Fixed issues with Domain/OS and its installer crashing (m68000\m68kmmu.h)
. Motorola MC68HC11: Fixed disassembly and execution of BRCLR/BRSET (IND, Y)
. Texas Instruments TMS9995: Make address visible on address bus during on-chip operations
. Philips SAA1099: Modernized struct member save registration. Use narrower types for members. Clean up code slightly.
. SN76496: Use an emu_timer to control the READY line
. Use fill_n and resize to zero memory instead of memset (emu\disound.cpp, sound.cpp and speaker.cpp)
. 3dfx Voodoo Graphics: Some cleanup and fixes. Hopefully enough to stop it from crashing when device memory isn't pre-cleared.
. Discrete Netlist
. Moved nl_examples folder to src\lib\netlist\examples
. Changed visibility to private for some members. Interesting observation to note: Since MAME 0.208 bench 30 results for pongf increased from 450% to 580%.
. Flash ROM: SST 49LF020 Flash does not support certain commands in certain states
. Namco C355 (Sprites): Fixed priority when pri 0 sprite isn't drawed first
. NB1414M4 Mahjong Custom: Fixed text attribute reference when erasing of blinking. Fixed kozure_score_msg when score is 0, the tens place is blank. Fixed insert_coin_msg and credit_msg if the in-game flag is on, "INSERT COIN" etc. is not displayed. Get the in-game flag bit 0200 from sent at command. Removed duplicate bit 0200 operations to make code easier to read. Draw the score when the game over display bit 0e00 is set. The flashing bit 0e00 is no longer applied to game over. Improved notes. Added stub for frame synchronization.
. Sega DIMM Board: Added a SH-4 and a PIC16C621A, both disabled. They are disabled, so they shouldn't slow the sytem, but they appear in the list at start and you can look at their rom disassembly (for the SH-4 set the address to 0).
- aristmk5.cpp, ertictac.cpp and ssfindo.cpp
. Initialized some stuff (machine\acorn_vidc.cpp)
. Rewrote ARM IOMD/VIDC20 chips into own devices, merged implementations from ssfindo.cpp & (MESS) riscpc.cpp.
. Added preliminary sound for Pang Pang Car
- armedf.cpp and galivan.cpp
. Adjusted DAC gain compared with PCB movies
. Major video config cleanups. Converted to screen.set_raw() parameters.
- batman.cpp, cybstorm.cpp, offtwall.cpp, relief.cpp, shuuz.cpp and thunderj.cpp: Fixed fulltag == ':' assert in debug builds
- bnstars.cpp, ms32.cpp and tetrisp2.cpp: Device-fied sprite hardware (video\ms32_sprite.cpp). Fixed zooming algorithm. Use shorter/correct type values. Verify clock related to XTAL. Fixed sprite delaying.
- calchase.cpp and voyager.cpp: Added NVRAM device
- calchase.cpp, igs_fear.cpp, mquake.cpp, upscope.cpp and voyager.cpp: Fixed region width/endianness
. Removed some problems (machine\xbox_usb.cpp). Supported IO port 61 (machine\xbox_pci.cpp). Set interrupt pin configuration byte (machine\xbox_pci.cpp).
. Replaced Ghost Squad security data with real PIC16 key firmware, dumped from original but non-protected device. Note: Firmware is same as the one used in NAOMI DIMM PIC16 keys, which means - old rumors about Chihiro uses a bit different keys/firmwares - is not correct.
. Found gpio pins mode registers (machine\xbox_pci.cpp)
. Minor cleanups
. Marked clone Cliff Hanger (set 3) as not working (ID 07523). Seems to fail the third startup check, bypassable by doing bpset 0x3f5 and at the third occurance do PC = 0x3f.
- cps3.cpp: Tweak frame rate based on more precise measurements, early boards docs.
- crgolf.cpp: Fixed coinage dipswitch
- dkong.cpp: Removed diag.bin rom (NO_DUMP), it did not ship with the boards.
- fcrash.cpp and segas16a.cpp: Fixed assert Expression: dest.cliprect().contains(cliprect) in debug builds
. Added hide text layer support and fixed text color attributes. This fixes missing black screen between areas (black hole warp) in dangar (ID 06946), some text colors in dangar and galivan (ID 07493) and corrupt title logo in dangar.
. Fixed dusts in lower left (video\galivan.cpp). This is for hide custom chip communication.
. Added irq acknowledge signal
. Fixed display bug when insert 10 or more credits in Ninja Emaki
- galpani3.cpp, jchan.cpp and suprnova.cpp: Correct algorithm for high precision shrink sprite. Use 10.6 fixed point for position value. Added notes (video\sknsspr.cpp).
- jaguar.cpp: Memory-related refactoring. Set width and endianness for regions, including cartridges. Make init code safer and more efficient. De-duplicate some memory maps. Separated state class for jaguarcd. Keep the driver from regressing any further than it already has while cleaning up the code and adjusting region usage to comply with the soon-to-be-committed "truth in endianness" requirement. It's possible that some regions should really be 16 bits instead of 32 or vice versa, and/or that DSP endianness may be incorrect.
- kickgoal.cpp: Added PCB layout of PRO-3/B board used by Action Hollywood and Kick Goal
- metro.cpp: Updated to use standard ROM loading macros
- midxunit.cpp: Added sound board ASCII layout
. Added internal TGP programs to Sega NetMerc, Star Wars Arcade, Virtua Fighter and Wing War, drop the HLE.
. Fixed Star Wars Arcade and Wing War (Games now playable). Removed MACHINE_IMPERFECT_GRAPHICS flag in Virtua Fighter.
. Slightly hacky background color fix
- model2.cpp: Added DIP switches to all Model 2 board per research. Updated dipswitch label and changed to 'unknown' instead of 'unused'. Use actual silkscreen label for dipswitches and restrict this set to CRX boards.
- namcofl.cpp: Use address_map_bank_device for ROM/RAM swapping. Use raw parameter for screen. Fixed sprite delaying and namings. Added MACHINE_IMPERFECT_GRAPHICS to 'Final Lap R' related to sprite disappearing issue.
- namconb1.cpp: Fixed Player 3 inputs
- namcos2.cpp: Reduced duplicates related to CPU Board components and Configuration duplication
- neogeo.cpp: Fixed stretch view not hiding edges when MAME is fullscreen (layout\irrmaze.lay and neogeo.lay)
- play_3.cpp: Moved games on "Z-Pinball" hardware to new driver (zpinball.cpp)
- segas16a.cpp and segas16b.cpp: Added save state. Partially fix reset behavior. Move dfjail related handlers/variables into dfjail_state, related to sound hardware differs.
- shangha3.cpp: Don't map 8-bit ROM directly into 16-bit space
. Increased CPU clock speed for fantasyu, nibbler, pballoon and vanguard to match available schematics. Fixes snake warping in Nibbler's animation runs too fast, causing it to finish before the triple sweep does. On real hardware, it syncs precisely with the sound effect (ID 05387). Fixes also Nibbler slows down periodically in 2-player mode (ID 07196). Insert wait states when reading from upper memory.
. Fixed Nibbler 2player sound problem (ID 07501). Added conf switch for the debug controls.
- suprnova.cpp: Random cleanup
- tasman.cpp: Read graphics ROMs through device. This is a flawed solution: The graphics ROM self-test fails both before and after this change. The mapping isn't properly understood yet and seems to involve some weird interleaving and/or address line swapping.
- tecmosys.cpp: Use gfxdecode for sprite gfxs. Cleanup sprite drawing routine (and Screen cliprect related). Use shorter/correct type values. Reduced unnecessary lines/arguments. Added notes.
- terracre.cpp: Added hide text layer support used in Coffee break of horekid (after clearing round 2) (ID 07494)
- triforce.cpp: Mark mkartagp, mkartag2 and mkartag2a flash dumps as bad, as all of them have the end of the data missing, and one is completely blank. Fixed the mapping/interleave of the mkartagp roms, and added some notes about how the flash block remapping lookup rom works, and the way data and metadata is stored in the flash roms.
. Added base clock speeds on actual OSCs. Clocks based on OSCs actually on the PCB. OSCs determined by info within the driver & pictures of of PCBs. OSCs listed as comment in "&config" for easy reference [Brian Troha].
. Decapped Choky! Choky! I87C52 MCU
- Card Line: Removed post_load workaround for outputs
- Daytona USA: Dumped drive board ROM epr-16488
- Desert Patrol [TTL]: Added netlist
- F-1 Super Battle: Fixed flags (ID 07502)
- Final Fight: Added imperfect graphics flag to clones fcrash, ffightbl and ffightbla
- Kung-Fu Roushi: Probably mono sound
- Magic Reels: Tentatively identify the CPU rom
- Marble Madness: Removed ADC inadvertently added during MCFG removal
- Miss Bamby: Added missing PROM
- Operation Tiger: Added PLDs
- Poker Ladies: Make clone Poker Ladies (Censored bootleg, not encrypted) boot. Note: Needs inputs, sound and GFX fixes.
- Rotary Fighter: Different fix for coincounter at boot
- Sky Fox
. Improved background based on PCB. The previous background implementation was completely wrong. Found stars position stored in memory and used them to rewrite the background drawing code. Reference PCB video: https://www.youtube.com/watch?v=oyE1CfcVrDc
Splitted background VRAM and work RAM from addresses map. Adjust sprite position. Removed background flip.
. Fixes some group of stars placed horizontally should scroll with a 3-4 layer parallax effect (ID 00232)
. Background pattern adjustment compared to PCB strictly
- Speed Attack: Fixed tilemap wrong bit assignment. By this bonus rate are displayed correctly.
- Super Dead Heat: Changed dipswitch service mode definition
- Super Speed Race Junior: Enable 'Difficulty' of DIPSW even if operation type is 2-4.
- TH Strikes Back: Fixed game running half speed
- Victorious Nine: Updated DIPs for Victorious Nine, taken from manual.
- Vs. Janshi Brandnew Stars: Fixed clock related to on-board XTALs
- Win Cherry: Make show RAM initialization screen
- Fixed rom names in cps1bl_5205.cpp, dec8.cpp, itech32.cpp, karnov.cpp, meritm.cpp and vp101.cpp
- Dipswitch fixes in crgolf.cpp, flstory.cpp, meritm.cpp, mitchell.cpp, model2.cpp and spdheat.cpp
- Description changes of 1000 Miglia: Great 1000 Miles Rally (Taiwan 94/07/18), Cane (prototype), Magic Bubble (Adult version, YS1302 PCB, set 1), Magic Number (Italian gambling game, Ver 1.5), New Quiz (Modular System bootleg), Nibbler (rev 6, Pioneer Balloon conversion), Nibbler (rev 8, Olympia), Nibbler (rev 9, set 1), Nibbler (rev 9, set 2), Orbite (prototype), Poitto! (revision D), Poker Ladies (Censored bootleg, encrypted), Poker Ladies (Censored bootleg, not encrypted), Puzzle Bobble (Italian gambling game), 'unknown H8 Italian gambling game', 'unknown TMS9980 poker game' and Wacky Gator (US)
- Renamed (gondo) to (gondou), (magicbubb) to (magicbubc) and (masmario) to (masmario2)
. VIDEO RENDERING SYSTEM
. Clean up render_screen_list code, replacing simple_list with std::list.
. Added wrapper for using STRUCT_MEMBER with an indeterminate length array (emu\diexec.cpp). Examples in YM2612 family and MultiPCM. Also used STRUCT_MEMBER to reduce clutter in diexec save state registration.
. Added -lowlatency option to UI (ui\submenu.cpp)
. Find software lists attached to devices that aren't in any system by default (e.g. spectrum_mgt_flop) (mame\media_ident.cpp)
. Allow slot options with -listsoftware so stuff like spectrum_mgt_flop can be discovered (emu\emuopts.cpp and mame\clifront.cpp)
. Permit entry of cheat names (plugins\cheatfind\init.lua).
. Loading fixes (plugins\data\data_command.lua, data_marp.lua and load_dat.lua)
. Various fixes (plugins\data\data_hiscore.lua and load_dat.lua)
. Removed an unnecessary separator is displayed at the top of the cheat menu (ui\cheatopt.cpp) (ID 07510).
. hiscore.dat update. Fixed old parsing errors (plugins\hiscore\hiscore.dat).
. Start experimenting with auto-template driver form, this file can be considered deprecated and its contents to be moved on a specific Python tool folder (etc\template_driver.cpp)
. Get some stuff out of the global namespace (emu\softlist_dev.cpp)
. Allow saving members of structures in n-dimensional arrays, even if the members themselves are n-dimensional arrays - see qsoundhle.cpp for an example of loops disappearing. This can greatly reduce the number of save state registrations in some cases.
. Try the new save state possibilities (cpu\dspp\dspp.cpp, cpu\i386\i386.cpp and cpu\i8089\i8089_channel.cpp). Reduced the number of save registrations (video\snes_ppu.cpp).
. Modernized struct member save registration (machine\i8257.cpp, machine\am9517a.cpp, machine\scc68070.cpp, sound\ay8910.cpp, sound\es5503.cpp and sound\saa1099.cpp)
. Added save/restore output values in save states. Save states should not be break when changing output. Also get rid of a few dozen output().set_value(...) calls in favour of output finders. This has the detrimental effect that outputs used in layouts will get the default value from the last element in the last view that uses them _after_ devices are started. If drivers/devices set initial output values on start rather than reset this could cause a problem.
. Enforce that width and endianness of directly-mapped ROM regions should match those of the address space (emu\addrmap.cpp). All of the once-numerous validation failures that this change induced have been fixed in preceding commits. Unmerged drivers may need to be modified to comply with this.
. LISTXML: Output software lists for devices (mame\infoxml.cpp). This will at least let a front-end work out that a slot card allows the use of an additional software list (e.g. spectrum -exp plusd enables spectrum_mgt_flop.xml).
. MiniMAWS: Load and index some software list data (no way to display it yet). Also fix up some software lists with duplicate part features. Added rudimentary listing of software lists to web UI and work around a python issue on loading; also fix up more software list issues. Fill in software list pages and load software list ROM information. Added software list support to web-based romident. Identify software list dumps in CLI as well. Refactored digest code and identify fixed bit patterns (scripts\minimaws).
. Initialized some stuff in audio\tx1.h, cpu\i960\i960.cpp, cpu\sh\sh2.cpp, drivers\segas32.cpp, machine\acorn_vidc.cpp, machine\6821pia.cpp, machine\vrender0.h, sound\mea8000.h, sound\ym2151.cpp, sound\ym2413.cpp, sound\ymz770.cpp and video\ygv608.cpp
. Updated MAME documentation: Added FAQ question about autofire with walkthrough of setup process. Added VSCode .gitignore for RST compilation temporary folder (docs/source/_build). Added a caveat about autofire+normal fire mapping. Added -lowlatency to the docs.
- SDLMAME: Ignore joystick buttons beyond maximum supported number (input\input_sdl.cpp). Note: The code to map excess buttons to switches doesn't actually do anything useful while INPUT_MAX_BUTTONS and MAX_BUTTONS happen to be defined to the same number.
. Added BGFX artwork path for Emscripten build (scripts\src\main.lua)
. Get rid of deprecated universal newlines open flag in Python scripts (io module is present as of Python 2.6) (scripts\build\verinfo.py, cpu\m6502\m6502make.py, m6809\m6809make.py, mcs96\mcs96make.py and tms57002\tmsmake.py)
. Removed some cases of visual studio warnings 4805 4389 4065 (i386\cpuidmsrs.hxx and video\xbox_nv2a.cpp)
. Pre-fill things allocated with operator new with 0xcd in debug builds (value can be changed by setting global g_mame_new_prefill_byte with a debugger) - this is gonna hurt performance, but it will help catch issues exposed when we remove pre-clearing before constructing devices.
. Use std::forward_list instead of custom linked structure and eliminate last use of auto_alloc (debug\debugcon.cpp)
. Added cpulist command to debugger (debug\debugcmd.cpp)