- New games: Anime Champ (GCA07 VER. JAA), Goori Goori, Great Bishi Bashi Champ (GBA48 VER. JAB), Gulun.Pa! (Japan 931220 L) (prototype) and Speed Race (Seletron / Olympia)
- New Working games: Atom (bootleg of Bombjack Twin), Lady Gum, Professor Trivia (set 1), Professor Trivia (set 2) and Sangokushi II (bootleg)
- New Non-Working games: EuroPlay 2001, Happy Skill (Italy, V611IT), Master's Fury, Montana Super Draw (4436-05, U5-0), Pacman BALL (PMB2 Ver.A.), Scorpion DX and unknown Recreativos Franco slot machine
- New clones: Alligator Hunt (protected, prototype?), Big Run (11th Rallye version, US?), Cobra-Command (Japan, bootleg), Crazy Bonus 2002 (Ver. 1, set 3), DoDonPachi Dai-Ou-Jou (Japan, 2002.04.05 Master Ver, location test), Final Fight (bootleg with single OKI), Frantic Fred (Release 2), Front Line (AA1, 4 PCB version), G.I. Joe (US, UAA), Galaxy X (bootleg of Galaxian), Gun.Smoke (Germany, censored), Jumping Break (set 2), Jurassic 99 (Cadillacs and Dinosaurs bootleg with EM78P447AP), Koutetsu Yousai Strahl (Japan, bootleg), The Mah-jong (Japan, set 2), Mario Kart Arcade GP (Japan, MKA1 Ver.C, update), Metal Slug 5 (bootleg), Mighty Monkey (U.Games bootleg), Moon Cresta (Nichibutsu USA, encrypted), Pang! 3 (bootleg, set 3), Perfect Billiard (bootleg), Pro Tennis (Japan), Raiden Fighters 2 - Operation Hell Dive (Switzerland), Route 16 (Sun Electronics), Space Invaders Part II (Taito, smaller ROMs), Street Fighter II: The World Warrior (World 910411), Super Contra (set 2), T.A.N.K (bootleg, 8-way joystick), Touchmaster 5000 (v7.11 U.K.), Turbo (encrypted, program 1363-1365 rev C), Vanguard (Germany), Warriors of Fate (bootleg), Warriors of Fate (bootleg with PIC16C57) and X-Men (4 Players ver UEB)
- New PinMAME games: Striker Xtreme (1.00)
- New drivers: goori.cpp, meritsdx.cpp, rfslots8085.cpp and startouch.cpp
- New devices: ad_59mc07, ad_60mc01, atarisac, atariscom, hd6435208, hd6475348, hd6805s1, mm58274c, n8097bh, neocart_mslug5b, p8798, s_dsp, s_smp, tc0090lvc, upd7001, upd72067, upd7811, upd78c10 and ym2414
. ADChips SE3208: Use callbacks for interrupt acknowledgment
. AM9517A: Assert EOP during rather than after final DMA transfer. uPD765 may not care much about the timing of this signal, but other devices (notably NCR5380) expect it to occur simultaneously with the read/write strobe. This *might* break drivers/devices that expect EOP to be continuously active as it was previously emulated, rather than pulsed. Those likely need to latch the edge of EOP or one of the ACK signals.
. Intel I386: Added alias for fstp st(i) (cpu\i386\x87ops.hxx)
. Intel P8x9x: Added more device types, some with 16-bit buses. Implemented quasi-bidirectional port structure (cpu\mcs96\i8x9x.cpp). Location 0 is just 0 (mcs96\mcs96d.cpp). Fixed EXTINT and added some very preliminary HSI stuff. Implemented HSO CAM status flags in IOS0 (cpu\mcs96\i8x9x.cpp).
. Motorola MC6800: Removed unneeded 6800ops workaround
. Motorola MC68000
. Don't iterate to save arrays. Eliminated legacy prepost registration (m68000\m68000.h).
. Pload does an explicit table walk (m68000\m68kmmu.h)
. Motorola MC68010: Correct DBcc timings. This fix prevents certain Marble Madness clones (e.g. marble2) from watchdog resetting while cheksumming the ROM (m68000\m68k_in.lst and m68kops.cpp).
. Motorola MC68705: Added more documentation of mask ROM versions. Added HD6805S1 device for future use.
. Motorola MC68HC05: Support M68HC705C8A internal banked RAM (cpu\m6805\m68hc05.cpp). Only reset due to NCOP when it's enabled.
. NEC uPD7810/11: Nominally distinguish NMOS and CMOS device types
. NEC Vxx: Added 8080 mode (nec\nec80inst.hxx)
. Signetics 2650: Get the vector from the IRQ ack request, removed use of set_input_line_and_vector and HOLD_MODE. Fixed interrupt-related regressions in 2650-based games.
. Zilog Z8000/Z8002
. Clean up reset sequence (don't read program space at device_reset time). Use callbacks to vector all external interrupts; correct data pushed during acknowledgment. For NMI and NVI, a vector is read from the bus but merely stored on the stack (most Z8000 systems seem to just leave the bus open here). For VI, the vector offset calculation has been changed for the Z8001: the low byte is multiplied by 2, not 4, so AD0 generally must be driven low.
. Fixed unreliable order of operations in operand calculation for certain instruction modes (z8000\z8000cpu.h)
. Memory access refinements. Implemented byte smearing for memory and I/O writes. More accurately handle unaligned word I/O without breaking PCOS-M24.
. Z8001: Expanded address space to 23 bits
. Z8002: Correct width of I/O space (16-bit, not 8-bit). Documented pinout.
. Zilog Z80180: Internalized certain registers and make clock divider software-selectable
. Atari C012294 POKEY and Yamaha YM2414 OPZ: Modernized struct saving
. Discrete Sound: Documented DISCRETE_FILTER1 and DISCRETE_FILTER2 better (sound\disc_flt.hxx)
. 7474 TTL: Changed output to deliver either 0 or 1, not -1.
. 74161 TTL: Fixed state machine and made TC signal asynchronous
. 74543 TTL: Added octal registered transceiver
. Atarigen and Atariscom (General functions for Atari games)
. Separated various drivers from atarigen_state (machine\atarigen.cpp; drivers\arcadecl.cpp, eprom.cpp, klax.cpp, shuuz.cpp, toobin.cpp and vindictr.cpp)
. Moved interrupt handling down into drivers (machine\atarigen.cpp; atarig1.cpp, atarig42.cpp, atarigt.cpp, atarigx2.cpp, atarisy1.cpp, atarisy2.cpp, blstroid.cpp, cyberbal.cpp, gauntlet.cpp, rampart.cpp, skullxbo.cpp and xybots.cpp)
. Eliminated ATARI_CLOCK_xxxMHz macros in favor of standard XTAL constants (machine\atarigen.cpp)
. Separated 'Atari Sound Communications' from machine\atarigen.cpp. Moved IRQ handling to audio\atarijsa.cpp (not a property of the actual device)
. DECO 55 / 56 / 74 / 141 Tilemap Generator: Added notes of Locked 'n Loaded PCBs. Fixed transparency/transmask handling in custom draw case.
. DECO BAC06 Tilemap
. Fixed flagsmap handling. Reduced unnecessary values.
. Updated drawing behavior. Use tile callback. Converted pen masking into set_transmask behavior. Added notes. Reduced duplicates and unneeded values.
. DCS Audio: Removed some dummy_space() calls. Fixed reset control. Changed DCS reset control to active low in Midway drivers (atlantis.cpp, kinst.cpp, midvunit.cpp, seattle.cpp, vegas.cpp, midtunit.cpp, midwunit.cpp and midxunit.cpp).
. Discrete Netlist
. Fixed parsing of netlists by nltool. Reduced memory allocation calls in non-core code. Performance improvement.
. Fixed netlist syntax errors (machine\nl_dpatrol.cpp). Fixed standalone build and doxygen mainpage (netlist\build\makefile and netlist\documentation\mainpage.dox.h).
. Improved performance up to 65% on audio netlists. This commit introduces precompiled static solver code. Due to additional optimizations the compiler can use because the detail calculation steps for the solution are known e.g. the kidniki netlist sees a 100% speed increase. In all environments (windows/*nix/osx) the source for the static solver code can be created using bash lib\netlist\nl_create_mame_solvers.sh. This will create lib\netlist\generated\static_solvers.cpp which is compiled into the mame binary. The script is just a temporary workaround. The intention is that nltool whill be able to create this file with one call. There are other improvements in this commit speeding up the processing of timestep and dynamic calculations.
. Documented alternative approach to CD4016. The CD4016 is an analog switch IC. Document an experimental approach to implement the analog switch as a 3 terminal element which is completely being dealt with as part as the linear system. The intention was to improve convergence when the switch is in a feedback loop. One example are two-opamp tridiagonal wave generators. Unfortunately the approach did not work out and in addition was performing far worse than the net-separating original code. Also updated comment in nld_generic_models.h.
. Fixed linking order of netlist. Moved netlist between dasm and utils,expat,... link statements. This fixes the resolution of symbols in netlist code which may be used in machine\netlist.cpp. Changed tested on Ubuntu, Windows and MacOSX. Removed a FIXME in plib\pmain.cpp.
. Added parameter to split_paragraphs to allow passing in a custom line end string (plib\poptions.cpp). Basename function now accepts a suffix to remove (plib\putil.cpp). Move macros where they belong. Fixed a macro expansion bug. Fixed alternative LM3900 implementations (macro\nlm_opamp.cpp).
. nltool usage and static compile changes. This commit simplifies the creation of static solvers. For this to happen the following changes were made: nltool does no longer support the "-f netlist_file.cpp" option. All parts of netlist which used the option now expect the file to be specified after all other options. The static compile command now supports an "--output" option to specify the file to be created and accepts multiple input files. To be create the static solver file for MAME use the script provided or: nltool --cmd static --output=src\lib\netlist\generated\static_solvers.cpp. Updated documentation and examples provided by nltool --help.
. Removed code duplication. Clang-tidy, srcclean and pedantic warnings fixed. Code maintenance on plib\pfunction.cpp.
. Compile time improvement and code maintenance. Added a define NL_USE_ACADEMIC_SOLVERS and disabled it in the build. This will not compile in solvers which are either illustrative or only perform for large sparse matrices like GMRES.
. Simplified object structure a bit
. Code maintenance and edge case fixes. "Edge cases" are compiles were the floting point type used for the core may be different from the one used by solvers, e.g. double/float. This does not happen in MAME, here currently this is always double/double. Since floats are better suited for GPUs whose double performance is limited it was time to review the code. This commit fixes warnings about type conversions and precision loss. In addition there is better support for INT128 and FLOAT128. The MAT solver has seen some minor performance increases.
. Fixed a segfault happening only under for certain netlists (netlist\nl_setup.cpp). This seems to be a compiler/standard library issues.
. Documentation update (netlist\documentation\mainpage.dox.h, primer_1.dox.h and test1-50r.svg)
. Documented trapezoidal capacitor integration (netlist\analog\nld_generic_models.h)
. Improved readability. The purpose is to make clear what is actually done and to reduce usage of calls to update.
. Unify solver calls. Calls to the solver used different paths. These changes unify these calls and provide a common call for discontinuous state changes on analog components (change_state).
. Epson RTC-65271 RTC: Added intrq_r method to query interrupt state. Use existing interrupt flag for intrq_r (machine\rtc65271.cpp).
. Floppy: Save INTRQ and DRQ states (machine\wd_fdc.cpp). Case of the missing floppies solved (isa\fdc.cpp).
. Hitachi HD63484 ACRTC: Simplified and unified handlers. The actual bus interface makes no provision for the upper/lower byte masking performed by the previous implementation.
. MC6850 ACIA: Prevent transmission of a spurious character following master reset
. Microchip PIC16: Added PIC16 generic disassembler with extended instructions (tools\unidasm.cpp)
. MOS 6551 ACIA: Clear IRQ state upon hardware reset. Not doing this at device_start time avoids a race condition in digel804 that was causing the Z80 interrupt to be raised in advance of machine_start.
. Namco Custom
. Namco custom chip improvements. Wire up reset lines on Namco custom chips. Removed debug logging.
. Emulated Namco 51xx via low level cpu. Previously, this was using high-level emulation. This had some game-specific hacks.
. Emulated Namco 06xx the NMI and chip select lines more accurately. Three control bits are used for the clock divider. Clarify timer delay is zero.
. Fixed MB88xx MCU interrupt handling. m_nf is basically the IF flag. It should be set when the int line is active (when its low). Only trigger an int when the line was previously high.
. Removed quantum hacks in galaga and polepos. With the better Namco custom chip emulation, this doesn't seem to be required anymore.
. PC hardware: Fixed faulty EOP propagation that broke floppy disk loading (machine\genpc.cpp)
. PCI: Fixed 'Fatal error: install_ram_generic: In range cdcdcdcc-9b9b9b98 mirror 0, start address is after the end address' for pcipc in devnoclear debug builds (machine\pci.cpp).
. PLA: Allow reparsing after device started (machine\pla.cpp)
. Taito Ensoniq Sound System: Removed obsolete workaround for M68000 reset issue (audio\taito_en.cpp)
. Taito TC0030CMD (C-Chip): Fixed typo in taito_cchip_device (upd7811->upd78c11)
. Z80 SCC Channel: Test the correct bit
- 2mindril.cpp, 3x3puzzl.cpp, alpha68k.cpp, alpha68k_n.cpp and crystal.cpp: Added DIP locations
- 39in1.cpp: Added notes about actual PCB boot process and unimplemented DIPs
- 8080bw.cpp: Updated hardware info
. Removed TMS5220C and VIA from configuration in marble and peterpak. Downgrade indytemp to MACHINE_IMPERFECT_SOUND with note on regression.
. Correct DBcc timings in MC68010 CPU. This fix prevents certain Marble Madness clones (e.g. marble2) from watchdog resetting while cheksumming the ROM (m68000\m68k_in.lst and m68kops.cpp).
- atarisy1.cpp, atarisy2.cpp, gauntlet.cpp: Modernization. Use generic latch devices for sound communications. More accurate handling of programmed sound resets. Added the other LS259 to gauntlet.cpp. Correct watchdog timeouts for all three drivers. General code cleanup.
- atarisy2.cpp: Fixed regression with soft reset (VBLANK interrupt wasn't being cleared). Octalized T11 CPU map as in Atari docs. Fixed regression in APB clones.
- btime.cpp, shadfrce.cpp, shangkid.cpp and taitosj.cpp: Added DIP locations and verified DIPs
. Log unimplement videoregs. Added notes. Fixed sprite position handling related to videoregs and tilemap offsets in Poka Poka Satan (video\tmap038.cpp).
. Implemented hardware sprite limitation and added notes (video\cave.cpp)
- chihiro.cpp: Some adjustments. Differentiate between object classes. Added simple blitting to show xbox error screen (includes\xbox_nv2a.h and video\xbox_nv2a.cpp). Set dma_get to 0 when FIFO is enabled (video\xbox_nv2a.cpp).
- chihiro.cpp, naomi.cpp and triforce.cpp: Added DIMM SDRAM configuration register (machine\naomigd.cpp)
. Correct sound routes for PCBs without stereo sound output. Reduced unused gfx layout. Updated Mutant Fighter and clones year (ID 07615).
. Correct 8bpp tilemap drawing behavior in Robocop 2 (same data in both tilemap RAM for tilegen, only tile bank is different in 8bpp tile).
. Added cps-b-03 id register
. Added PLD dumps and gfx mappers to many games
- csplayh5.cpp: Converted the gal16v8b.jed files to binary format (sengomjk, nuretemi and konhaji)
- cubo.cpp: Eliminated deprecated machine().device calls (machine\akiko.cpp)
- cyberbal.cpp: Fixed interrupt-related regression. Converted sound board into JSA-derived device
- ddealer.cpp, nmk16.cpp, powerins.cpp and quizpani.cpp
. Use scrolldx for tilemap shifting in some NMK hardwares
. Fixed visible area in quizpani.cpp (same as nmk16.cpp?)
. Use generic gfx layout in patapata.cpp and ddealer.cpp
- dec0.cpp: Reduced duplicates. Moved shared video_start under protected section.
. Dumped PROM for the original Cobra-Command PCB
. Correct Super Real Darwin's MCU label & PCB location
- dfruit.cpp, lastbank.cpp and taito_l.cpp
. Device-fied TC0090LVC for taito_l.cpp. Reduced duplicates.
. Implemented bitmap layer for Cachat
. Taito TC0090LVC and TC0091LVC: Use callback for tilemap offset and external bankswitching. Implemented device_reset needs for taito_l.cpp driver. Restrict bitmap and sprite drawing behavior into cliprect (machine\tc009xlvc.cpp).
. Reduced unnecessary trampolines for dfruit.cpp and lastbank.cpp
. Fixed offset for Gemcrush flipped screen
- dgpix.cpp: 'Decrement and branch' goes to 0, not -1. Make some noise (cpu\ks0164\ks0164.cpp)
. Dumped Alpha-8505 MCU for Bingo Time. Note: Needs more work, possibly by someone who knows how Bingo plays. Added skeleton device for the Bingo Time sound board (Alpha Denshi 60MC01 sound board). Dedicated inputs for Bingo Time. Seems mostly playable except for the missing sound.
. Use the new Alpha-8505 MCU for Gekisou (Japan), High Voltage and Koukou Yakyuu, seems to work.
. Deviceified sound board emulation (Alpha Denshi 59MC07 sound board). Also added skeleton device for the Bingo Time sound board (Alpha Denshi 60MC01 sound board).
- fcrash.cpp and cps1bl_pic.cpp: Make some of the bootlegs not use the brightness values as some don't have the h/w for it on the real pcbs (the 74ls07's and resistor arrays/dacs are unpopulated).
- gaelco2.cpp: Added notes
- galaga.cpp and polepos.cpp
. Removed quantum hacks. With the better Namco custom chip emulation, this doesn't seem to be required anymore. Fixed bootlegs. For both, set sub & sub2 reset lines. Wire up 51xx cs and rw lines for galaga bootlegs.
. Fixed clone Battles (set 1) crashed at start. Sounds are missing though, to be investigated.
. Append, not set, the reset line to the latch in polepos.cpp
- gstriker.cpp, pcktgal.cpp and wc90b.cpp: Added PAL's dumps to twcup94, pcktgalb, twcup90b1, twcup90b2, twcup90ba, twcup90bb, twcup94a, twcup94b, vgoalsca and vgoalsoc
- homerun.cpp: Updated hardware info, TODO list and DIPs.
- kikikai.cpp: Added MCU dump to Kick and Run, not yet working. Updated comments.
. Rework dipswitches for all games and added DIP locations. Fixed sprite DMA transfers for type 3/4 right monitor, and fixed right screen protection in Rushing Heroes and Run & Gun 2. This makes dual monitor 4 players play possible (and enabled by default).
. Fixed clone 'Golfing Greats 2' inputs
- konamim2.cpp: Fixed some deprecations (drivers\konamim2.cpp and machine\3dom2.cpp/h). Removed last remaining use of driver_data().
- ksys573.cpp: Removed the MB89371 UART from the 573 memory map as it's clearly not correct, however 'Great Bishi Bashi Champ (GBA48 VER. JAB)' does initialize it at another address.
- lsasquad.cpp: Added DIP locations
- mcr.cpp: Simplified handler signatures
- mcr3.cpp: Simplified handler signatures. Splitted MCR3 state class a little.
- namcos23.cpp: Less MCU Log
. Use timer for sprite DMA behavior. Reduced duplicates. Added notes.
. Implemented Saboten Bombers vertical scrolling, noticeable when explosion occurs. Fixed hardware configuration. Fixed Saboten Bombers sprite delay. Reference: https://www.youtube.com/watch?v=lljCeUfCMDQ
- nss.cpp, sfcbox.cpp and snesb.cpp
. Splitted audio\snes_snd.cpp/h (S-SMP and S-DSP) into machine\s_smp.cpp and sound\s_dsp.cpp
. Converted both memory handler into device_memory_interface. Internalized ROM region of S-SMP. Use callback for S-DSP interface.
. Splitted internal and external memory space. Converted WRAM into shared_ptr. Reduced #define macros (sound\s_dsp.cpp).
. Converted WRAM into shared_ptr
- nycaptor.cpp, route16.cpp and timeplt.cpp: Added DIP locations and improved documentation
- playch10.cpp: Fixed Player1 labels to match function
- polepos.cpp: Make ROM region tags explicit. Correct mirroring and update notes.
- psikyo.cpp: Updated driver and minor cleanup drawing behavior. Moved dynamic tilemap size behavior into TILEMAP_MAPPER_MEMBER. Correct notes and VRAM/Sprite LUT data type. Converted drawing behavior into bitmap_rgb32. Reduced unnecessary gfx layout.
- rpunch.cpp: Updated drawing behaviors and misc updates. Use pdrawgfx for sprite priority. Use bitmap_ind16 for drawing framebuffer behavior. Fixed notes and variable names. Use set_rom_bank for upd bankswitching. Reduced unnecessary includes. Fixed spacing and address map related to framebuffer exists. Use shorter/correct type values. Simplify handlers. Cleanup gfx layouts. Use shorter type value.
. Wrap back layer colors on 512 boundaries, fixes Arabian Fight and Soreike Kokology erratic black pens.
. Pinpoint transparency pen, more accurate guess wrt Title Fight. Added mixer reading missing from multi32 map. Updated TODO (video\segas32.cpp).
. Fixed 'AS-1 Controller' program rom loading (makes the logo to appear on POST)
. Redumped Rad Rally sound roms (ID 07616)
- shaolins.cpp: Added hardware info, corrected DIPs and rom labels.
. Major documentation overhaul
. Dumped 2x rotary joystick decoding proms for Victory Road and added some prom labels
- ssv.cpp: New device (NEC uPD7001 A/D Converter). Splitted state class up a bit.
- stv.cpp: Moved all commands into functions. Moved communication interface to device_memory. Moved note on top, make some basic QA (machine\stvcd.cpp).
- taitosj.cpp: Consistency and better documentation of 4 PCB vs 5 PCB sets
- terracre.cpp: Added DIP locations. Corrected ROM labels. Added notes.
- yunsun16.cpp: IRQ modernization
- Air Walkers: Fixed rom loading. Fixes polygons and textures. Redumped a couple of Air Walkers's rom.
- Bad Lands: Use generic communications latches. Added mirroring to M6502 map. Clean up various handlers.
- Big Karnak: Added PCBs ASCII layout for clone Big Karnak (Modular System)
- Bombjack Twin: Adjusted offsets for clone Atom (bootleg of Bombjack Twin), also removed MACHINE_NOT_WORKING flag since it is playable, with maybe some smal GFX and sound glitch.
- Carrera: Dumped BPROM of clone Bomberman (Version 6.6) and verified it matches the one from Carrera (Version 6.7)
- Dark Seal: Cleanup gfxdecode layout. Correct palette entries.
- Deal 'Em: Adjusted CRTC clock to make refresh rate more reasonable. Fixed tile background colors. Use tilemap system to draw. Added screen raw parameters.
- Dirt Dash: Mark pointroms as bad
- DoDonPachi III: Added redumped sprite rom b04401w064.u1. NOTE: b04401w064.u1 on all the other ddpdoj sets was found to be corrupt (doesn't match checksum on ROM) this was redumped and replaced in the sets, exept for in the bootleg set, which is based around the corrupt dump.
- Drift Out: Updated clocks and rom labels for clone Drive Out (bootleg). Added UM5100 voices.
- Express Raider: IRQ cleanup
- Filetto: Identified UM5100 sound chip control ports (8923S-UM5100 is a HC55536 with ROM hook-up). Added UM5100 voices.
- Golfing Greats: Fixed inputs
- Great Swordsman
. Decapped, dumped and hooked up AA-017 microcontroller, fixes coin handling. Confirmed microcontroller roles/locations.
. Updated clone Great Swordsman (Japan?) with new AA-017 dump and updated notes.
- Gun Fight: New netlist-based audio implementation for Gun Fight, derived from Midway audio schematics. Sound checked against several YouTube videos and seems to match, apart from acoustic effects of cabinet. Removed the old sample-based sound, which is no longer necessary (The samples for that version were actually from the newer game Boot Hill and didn't match Gun Fight's sound hardware; they even included Boot Hill's funeral march tune!). Although the netlist version has much greater overhead, performance is still acceptable on modern hardware.
- Ken Sei Mogura: Verified PAL
- Lady Gum: Fixed driver (Game now playable)
- Long Beach: Crop right side of screen. Small cleanup.
- Lord of Gun: Added a default EEPROM
- Mad Donna: Correct rom labels and PCB locations for the Mad Donna parent set
- Mad Motor: Cleanup gfx layouts
- Magic Bomb: Added preliminary decryption. Marked maincpu rom1 as bad dump.
. Added default NVRAM to clone Malzak II so that it boots in version II as intended.
. Converted playfield to tilemap. Improved playfield colors. Added playfield tile bank, base mixing and priority. Misc cleanups.
- Match It: Verified clocks for Match It and Sichuan II clones. Updated ROM labels and added PALs placeholders for clone Sichuan II.
- Mirage Youjuu Mahjongden: Use pri_callback for sprite priority
- Moon Patrol: Added missing PROM dump to Moon Patrol and clone Moon Patrol (Williams)
- Naomi DIMM Firmware Updater (2.13): Redumped GDROM, previous dump had bad audio track.
- Parallel Turn: Added DIP locations
- Paint 'N Puzzle: Connect MCU to 93C46 EEPROM
- Pocket Gal: Added proper ADPCM reset bit routing, fixes annoying whistle heardable from title screen and on other places.
- Power Instinct: Reduced duplicates related to nmk16.cpp. Moved subclass into nmk16.h (Similar hardware design). Added notes. Simplified handlers. Use screen raw params for bootlegs. Fixed state.
- Pro Tennis (DECO Cassette): Verified DIPs
- Quake Arcade Tournament: Updated PC specs
- Quiz Panicuru Fantasy: Fixed visible area (same as nmk16 ?)
- Raiden II: Converted the JEDEC files to binary format
- Renegade: Fixed sprite vertical alignment and added irq acks. Demoted also driver to MACHINE_IMPERFECT_SOUND given it has clear sound issues. Moved around irq sources (NMI -> vblank, IRQ -> coin triggers), added coin counter.
- Route 16: Added missing MCU region to the Route 16 original sets, corrected PROM type on the newly dumped set.
- Run and Gun: Fixed graphic/sprite offsets (selection screen) (ID 07617)
- Space Stranger
. Measured CPU clock. Replaced I8080 CPU1 with I8080A. Added PCBs layout and DIP locations.
. Expanded hardware notes, updated layout to match pics. Added preliminary sound support via samples.
- Star Wars Arcade: Improved analog range for throttle
- Super Shanghai Dragon's Eye: Cleanup gfxdecode layout. Correct palette entries. Both chip and PCB hasn't any stereo sound output. Correct sound output routes.
- Super Tarzan: Completed decryption of the program rom
- Tarzan Chuang Tian Guan: Hopefully completed decryptions for 'Tarzan Chuang Tian Guan (V109C, set 1)' and clone Tarzan (V107). The former probably needs just the correct parameters for the IGS0031 protection, the latter has additional IGS0029 protection. Sprites rom hasn't been decrypted yet.
- Trivia Quiz: Hook up question ROMs. Fixed address map. Added NVRAM (Game now playable).
- unknown 1980 poker game: Identified some inputs
- Warriors of Fate
. Removed sprite artifacts in clone Sangokushi II (bootleg) (Game now playable)
. Removed EEPROM device in clones Sangokushi II (bootleg) and Warriors of Fate ('sgyxz' bootleg) (real PCBs have 3x8pos dipsw and no EEPROM)
- Wheels Runner: Updated game to use measured clocks and added the 2x SN76489A sound. Better description of components.
- Zhaoji Fengdou: Added PCB ASCII layout
- Input port: Correct the double key assignment acceleration and shifting in bigrun, buggyboy, buggyboyjr, buggychl, changela, f1gpstar, f1gpstr2, pdrift, pdriftl, polepos, polepos2, terracre.cpp and tx1
- Fixed rom names in gsword.cpp, ksys573.cpp, oneshot.cpp, snk.cpp, taito_f2.cpp, terracre.cpp, tmaster.cpp and wiping.cpp
- Dipswitch fixes in 2mindril.cpp, 39in1.cpp, 3x3puzzl.cpp, alpha68k.cpp, alpha68k_n.cpp, btime.cpp, cps1.cpp, crystal.cpp, decocass.cpp, konamigx.cpp, lbeach.cpp, pgm.cpp, pturn.cpp, lsasquad.cpp, nycaptor.cpp, route16.cpp, shadfrce.cpp, shangkid.cpp, sstrangr.cpp, taitosj.cpp, toaplan1.cpp, timeplt.cpp and triviaquiz.cpp
- Description changes of Big Run (11th Rallye version, Europe?), Elevator Action (EA, 5 PCB version, 1.1), Elevator Action (BA3, 4 PCB version, 1.1), Front Line (FL, 5 PCB version), Jumping Break (set 1), Kick Off - Jaleco Cup (Japan), Kick Off - World Cup (bootleg), Magic Bomb (Ver. BR4.4), The Mah-jong (Japan, set 1), Missile Attack (U.Games bootleg of Missile Command), Pac Man (U.Games bootleg of Puck Man), Pocket Gal (Yada East bootleg), Route 16 (Centuri license, set 1), Route 16 (Centuri license, set 2), Route 16 (Centuri license, set 3, bootleg?), Space Invaders Part II (Taito, bigger ROMs), Super Contra (set 1), The Tin Star (TS, 5 PCB version) and The Tin Star (A10, 4 PCB version)
- Renamed (elevator) to (elevatora), (elevator4) to (elevator), (franticf) to (franticfa), (frontlin) to (frontlina), (mooncrstu) to (mooncrstuu), (route16a) to (route16b), (route16) to (route16a), (tinstar) to (tinstara), (tinstar2) to (tinstar), (turbod) to (turboe), (turboc) to (turbod), (turbob) to (turboc), (xmen) to (xmenu) and (xmene) to (xmen)
. VIDEO RENDERING SYSTEM: Initialization outer box darkened/less distracting (emu\render.cpp)
. MEMORY SYSTEM: Fixed memdump command causes MAME crash (MAME 0.209: Removed obsolete alignement limit (emu\emumem.cpp) and correct start/end on big endian (emu\emumem_mud.cpp)) (ID 07560). Removed obsolete logging (emu\emumem_hedw.ipp).
. ROM loading cleanup: More flexible constructors for path_iterator and emu_file. More straightforward system/device ROM loading and software loading when using ROM loader. Proper parent walk when searching for identical CHDs with different names from software list. Fixed hangs if software item parents form a loop. Fixed layouts being loaded from bogus empty paths. Note that there are changes in behaviour: For software list ROMs/disks, MAME will now search the software path before searching the machine path. The search path for the owner of the software list device is used, which may not be the driver itself. MAME will no longer load loose CHDs from the media path - it's just too unwieldy with the number of supported systems. MAME will no longer search archives above the top level of the media path.
. Eliminated pulse_input_line_and_vector (emu\diexec.cpp; cvs.cpp, galaxold.cpp, scramble.cpp and zac_2.cpp)
. Don't clear the input queue on reset (emu\diexec.cpp). This fixes problems where devices are input line changes are missed because a device was reset. One case is at startup, where one device's output is wire to another's input. During start the first device adds, eg, a RESET assertion to the second. When that device starts, it resets itself and clears the pending RESET assertion.
. LUA engine: Enhancing LUA video:begin_recording() function with optional format parameter.
. Get rid of a temporary that clang 10 doens't like (emu\mconfig.h)
. Removed auto pause (ui\about.cpp). NOTE: Inconsistent with other Tab menu entries including the fullscreen popup for selecting new machine, and also a bug where it refuses to unpause when closing About popup with Tab.
. Removed clock freqs trailing 0s on machine info screen (ui\devopt.cpp and info.cpp)
. Simplified cpu handlers (cpu\ccpu\ccpu.cpp, cop400.cpp, es5510.cpp, h6280.cpp, mcs48.cpp, mn10200.cpp, ppc.cpp, st62xx.cpp, tlcs870.cpp, tlcs900.cpp and upd7810.cpp)
. Simplified machine handlers (machine\315_5195.cpp, 315_5296.cpp, 315_5338a.cpp, 315_5649.cpp, 3dom2.h, 40105.cpp, 6532riot.cpp, 6821pia.cpp, 68230pit.cpp, 74153.cpp, 74161.cpp, 8042kbdc.cpp, alpha8201.cpp, am53cf96.cpp, c117.cpp, cdp1852.cpp, cedar_magnet_flop.cpp, cedar_magnet_plane.h, cedar_magnet_sprite.h, decocass.cpp, decopincpu.cpp, ds2404.cpp, gaelco_ds5002fp.h, gaelco3d.cpp, i8214.cpp, i8257.cpp, k053252.cpp, k054321.cpp, ldvp931.cpp, m1comm.cpp, m2comm.cpp, mathbox.cpp, mb89352.cpp, mb89363b.cpp, mie.cpp, model1io.cpp, model1io2.cpp, mos6530.cpp, mpu401.cpp, msm6253.cpp, namco06.cpp, namco50.cpp, namco51.cpp, namco53.cpp, namco65.cpp, namco68.cpp, namcoio.cpp, nb1412m2.cpp, nmk004.cpp, pcecommn.cpp, pcshare.cpp, r10696.cpp, ra17xx.cpp, s2636.cpp, s32comm.cpp, serflash.cpp, st0016.cpp, tait8741.h, taito68705interface.cpp, taitosjsec.cpp, tms6100.cpp, tms9901.cpp, upd4701.cpp, upd7004.cpp, v3021.cpp, vs9209.cpp, wpc.cpp, wpc_lamp.cpp, wpc_out.cpp, wpc_pic.cpp, wpc_shift.cpp and z80scc.cpp)
. Simplified video handlers (video\airraid_dev.cpp, alpha68k_palette.cpp, antic.cpp, arcadia.cpp, atarivad.cpp, bfm_adr2.cpp, bfm_dm01.cpp, combatsc.cpp, contra.cpp, deco_ace.cpp, decocomn.cpp, decodmd1.cpp, decodmd2.cpp, decodmd3.cpp, decrmc3.cpp, dynax_blitter_rev2.cpp, edevices.cpp, flkatck.cpp, gtia.cpp, hcastle.cpp, k007121.cpp, k007342.cpp, k007420.cpp, k051733.cpp, kan_pand.cpp, ladybug.cpp, namco_c116.cpp, namco_c123tmap.cpp, namcos2.cpp, naughtyb.cpp, orca40c.cpp, phoenix.cpp, rpunch.cpp, seta001.cpp, snk6502.cpp, stfight_dev.cpp, tia.cpp, vsystem_gga.cpp, wpc_dmd.cpp and ygv608.cpp)
. Simplified audio handlers (audio\arcadia.cpp, atarijsa.cpp, cage.cpp, cps3.cpp, csd.cpp, dsbz80.cpp, efo_zsu.cpp, exidy.cpp, exidy440.cpp, flower.cpp, galaxian.cpp, gottlieb.cpp, hyprolyb.cpp, irem.cpp, laserbat.cpp, namco52.cpp, nichisnd.cpp, phoenix.cpp, pleiads.cpp, rax.cpp, s11c_bg.cpp, segag80r.cpp, segam1audio.cpp, segasnd.cpp, sente6vb.cpp, snk6502.cpp, t5182.cpp, taito_en.cpp, taito_zm.cpp, tiamc1.cpp, timeplt.cpp, trackfld.cpp, wpcsnd.cpp and zaccaria.cpp)
. Programmable Logic Device (PLD): New device for jedutil and rom name changes: Initial support for viewing the logic equations of the PLS100, 82S100, PLS101 and 82S101. Added support to view the the logic equations of the PALCE22V10 device. Improved the documentation on the Magix game and the undumped PAL's (security fuses blown). Added PAL22V10 as another device that is equivalent to the PALCE22V10 device. Added initial registration test for the PALCE22V10/PAL22V10 devices. Adding PAL22V10 combinatorial regression test data. Updated jedutil with a new command that will take a JED file and list the devices that the JED file could represent.
. Work around deprecation warning - Removing something in 3.9 when the replacement was only added in 3.2 is typical of Python's disregard for stability (scripts\build\msgfmt.py)
. Added template save/load code (emu\save.cpp)
. attotime::zero is not a valid arugment for as_hz et al (emu\attotime.h)
. Re-Implemented SHA-1 and get rid of the two third-party implementations (util\hashing.cpp)
. Reduced dependencies on libemu (lib\formats\*.cpp)
. Software List: Start adding validation for data areas (emu\softlist_dev.cpp). Fixed the errors found by adding validation to software list data areas. Most of them seem to be simple copy-paste errors hidden by the fact that the default device_image_interface loader ignores the data area size (as opposed to the "ROM" loader). Validate ROM labels.
. Fixed smartquotes by disabling them: While smartquotes are somewhat configurable, it's better if we don't use them at all. Makes sure there are no hidden pit traps for the users (docs\source\conf.py).
. Fixed assert when starting empty driver - the empty driver magically has no search path, and hence can't have any ROM data regions (emu\drivers\empty.cpp)
. hiscore.dat update (plugins\hiscore\hiscore.dat)
. Refactoring of AVI/MNG recording code: Initial refactor of AVI/MNG movie recording, consolidation of copy and paste code, hiding of AVI/MNG behind interfaces. Extracted recording specific code out of emu\video.cpp and put into emu\recording.cpp. Took the opportunity to move slightly more logic out of video.cpp into recording.cpp. Consolidated frame counting logic.
- MAC OS X
. Use Arial Unicode MS as the default font (fixes missing glyphs in many layouts) and fixed deprecation warnings
. Avoid crashing in OS X debugger when a nonexistent disassembly or memory view is selected (which may happen automatically with .cfg files)
- VGM player
. Added multiple spectrogram visualization modes (sound\vgm_visualizer.cpp). Fixed DC offset issue and added more visualization modes.
. Added rate controls and hold button (drivers\vgmplay.cpp)
. Added recent Project2612 releases consisting of many New and Updated entries (hash\vgmplay.xml)
. Removed last remaining uses of generic_space() and many dummy_space() calls
. Fixed some Clang-tidy-10 warnings
. Revert "Fixed some modernize-use-equals-default clang-tidy warnings" from MAME 0.218
. Fixed hang with Emscripten's "upstream" backend (scripts\genie.lua)
. Fixes for Clang 10.0.0 misleading indentation and XOR used as a pow warnings (src\3rdparty.lua, cpu\z8000\z8000ops.hxx and machine\stvcd.cpp). Fixed VS2019_Clang with LLVM 10.0. Fixed stray character (src/3rdparty.lua).
. Centralised instantiation of more of the util::strformat engine (util\strformat.cpp)
. Fixed some deprecations (debugger\qt\debuggerview.cpp)
. QT debugger: Added '#define horizontalAdvance width' to QT debugger (debugger\qt\debuggerview.cpp and memorywindow.cpp)
. Misc fixes for bugs that showed up in devnoclear debug builds (cpu\lr35902\lr35902.cpp/h, machine\ds1994.cpp, tc009xlvc.cpp, drivers\megaphx.cpp, machine\inder_sb.cpp and taitosjsec.cpp)
. Make expressions octal for applicable address spaces in disassembly view. General cleanup (debug\express.cpp, debugcpu.cpp): Changed default base from hardcoded macro to dynamic parameter for parsed_expression. Changed symbol table parameters and variables to references or std::reference_wrapper. Removed the (unused) ability to construct a parsed_expression without a symbol table. Eliminated symbol_table &table and void *memory_param arguments from callbacks (superfluous now that std::function can bind everything necessary). Eliminated globalref pointer from symbol_table. Added explicitly defaulted move constructor and move assignment operator.